Montaggio di un clone di un disco rigido esterno che condivide la stessa partizione GUID del disco rigido di origine / host

4

Recentemente il disco rigido del mio Macbook ha iniziato a subire blocchi e sono riuscito a creare un clone di disco con ddrescue in un'unità esterna tramite una sessione live di Ubuntu. Ho clonato con successo tutto senza troppi problemi.

Quando collego questa unità esterna usando Ubuntu posso accedere a tutte le partizioni. Ma sfortunatamente quando provo ad accedere a questa unità su macOS, la partizione Apple_CoreStorage non viene montata.

Ecco il mio output diskutil list :

paulofreitas@Paulos-MacBook-Pro:~$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +498.9 GB   disk1
                                 Logical Volume on disk0s2
                                 F0CA4975-A73D-46D6-92AB-4A4DDF3DFFF7
                                 Unencrypted

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *2.0 TB     disk2
   1:                  Apple_HFS Storage                 2.0 TB     disk2s1

/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2:          Apple_CoreStorage                         499.2 GB   disk3s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk3s3
   4:                  Apple_HFS Time Machine            1.5 TB     disk3s4

Il disco rigido esterno è /dev/disk3 . Le prime 3 partizioni sono una copia esatta di /dev/disk0 nel momento in cui ho fatto il clone. L'ultima partizione Time Machine è stata successivamente creata con lo spazio libero su disco rimasto.

Non posso montare /dev/disk3s2 all'interno di macOS, anche se posso farlo quando uso Ubuntu. Mi sto perdendo qualcosa? Cosa devo fare per montare questa partizione?

Aggiornamento

Da quello che ho capito il problema si verifica perché sia /dev/disk0s2 + /dev/disk3s2 che /dev/disk0s3 + /dev/disk3s3 condivide la stessa etichetta del disco. Il mio /Volumes/Macintosh HD elenca il filesystem Macbook stesso, es. è il /dev/disk1 (da /dev/disk0s2 ).

In realtà ciò accade perché sia il GUID GPT del disco che le GUID GPT delle partizioni condividono gli stessi UUID. Non ho ancora trovato un modo o uno strumento per modificare i GUID delle partizioni in modo sicuro (dove posso montarli senza compromettere i loro dati).

    
posta Paulo Freitas 04.09.2017 - 19:22
fonte

2 risposte

6

Ho testato il tuo set-up in una macchina virtuale con lo stesso risultato: il secondo volume CoreStorage non verrà montato. La clonazione di un contenitore CoreStorage su un altro disco con dd non modifica gli UUID degli elementi CoreStorage. Quindi è davvero un problema degli UUID duplicati del gruppo di volumi logici / Volume fisico / Famiglia di volumi logici / Volume logico di disk0s2 e disk3s2.

La buona notizia è: c'è una voce man per uno strumento che può cambiare gli UUID di tutti gli oggetti di metadati CoreStorage: man csunique .

Controlla l'identificativo del disco del duplicato con diskutil list . Nel tuo esempio è disk3s2 .

Quindi il comando nel tuo caso sarebbe:

csunique -v -n /dev/rdisk3s2 #dry-run
csunique -v /dev/rdisk3s2

La cattiva notizia è: non riesco a trovare lo strumento / lo script. Non è né sul percorso né posso trovare un file con questo nome altrove sul disco. Ho controllato questo in 10.9 / 10.10 / 10.11 / Recovery HD cercando l'intero disco anche all'interno di pacchetti con FileBuddy. Una ricerca su Google non ha avuto esito positivo.

Lavori in corso

È possibile modificare manualmente i vari UUID modificando il contenuto del disco grezzo con uno strumento come HexEdit o wxHexEditor, naturalmente. AFAIR il pvUUID e il lvgUUID si trovano al primo blocco di disk3s2. Il pvUUID / lvgUUID ha diverse occorrenze aggiuntive nell'area dei metadati del gruppo di volumi logici di disk3s2. Non utilizzare UUID arbitrari (ad esempio fatti in proprio) ma provare a generarli con uuidgen o online con un generatore UUID. Alcuni bit dell'UUID hanno un significato speciale e determinano versione UUID o l'algoritmo hash.

Esempio:

L'output di diskutil cs list del disco originale:

diskutil cs list
CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group C451C0F6-32F9-43AB-8E59-42D21AEFF650
    =========================================================
    Name:         SystemCS
    Status:       Online
    Size:         67859718144 B (67.9 GB)
    Free Space:   18948096 B (18.9 MB)
    |
    +-< Physical Volume E46EF8F2-6399-45C1-B213-8628A518466D
    |   ----------------------------------------------------
    |   Index:    0
    |   Disk:     disk0s2
    |   Status:   Online
    |   Size:     67859718144 B (67.9 GB)
    |
    +-> Logical Volume Family AAD268A6-FC66-43FC-A24E-11A1F23CA5DD
        ----------------------------------------------------------
        Encryption Status:       Unlocked
        Encryption Type:         None
        Conversion Status:       NoConversion
        Conversion Direction:    -none-
        Has Encrypted Extents:   No
        Fully Secure:            No
        Passphrase Required:     No
        |
        +-> Logical Volume 50B61719-7CB4-40D9-8AFC-F5CD37C1A66C
            ---------------------------------------------------
            Disk:                  disk3
            Status:                Online
            Size (Total):          67488448512 B (67.5 GB)
            Conversion Progress:   -none-
            Revertible:            Yes (no decryption required)
            LV Name:               SystemCS
            Volume Name:           SystemCS
            Content Hint:          Apple_HFS

Il pvUUID (viola chiaro) e lvgUUID (giallo chiaro) appaiono in esadecimale nel primo blocco e nell'ultimo blocco della partizione:

1 ° blocco:

ultimoblocco:

ecometestoogniquattrovoltenegliultimi32760blocchi(dimensionedelbloccofisicodi512byte)dellapartizioneinelementisimiliaplist.

    
risposta data 07.09.2017 - 12:34
fonte
2

Poiché le partizioni sono state create con Linux e accessibili in Linux, perché non utilizzare Linux per modificare l'UUID errato?

Come cambiare l'UUID di un Linux Partition (adattati alle tue esigenze e ai tuoi valori)

Gli UUID duplicati possono essere un grosso problema sulla tua macchina. Ma per fortuna è facile cambiare l'UUID di una partizione Linux e può essere fatto in circa 1-2 minuti!

L'UUID di una partizione Linux è il modificatore U niversalmente U nique di quella partizione. Direi con un po 'di sicurezza che in questo e in molti scenari, l'UUID della partizione Linux ha più di un ambito macchina locale.

Questo ID viene utilizzato in alcuni punti per identificare la partizione. Il più notevole è il file / etc / fstab, che gestisce il montaggio delle partizioni all'avvio. Ecco un piccolo frammento dal mio ...

1 # <file system>  <mount point>  <type>  <options>           <dump> <pass>
2 proc            /proc           proc    nodev,noexec,nosuid 0       0
3 # / was on /dev/sdc3 during installation
4 UUID=9467f4de-4231-401f-bcaa-fee718d49e85 /               ext4    errors=remount-ro 0       1
5 # swap was on /dev/sdb1 during installation
6 UUID=aabe7e48-2d11-421f-8609-7ea9d75e7f9b none            swap    sw              0       0

_

Perché dovresti cambiare un UUID della partizione?

Il motivo principale è uno scontro di ID. Tecnicamente la probabilità di creare 2 UUID identici è molto rara ( leggi di più sulla probabilità di duplicati UUID casuali ). Ma ci possono essere casi in cui si clona una partizione usando DD o Clonezilla e il clone si trova sulla stessa macchina: disco rigido o partizione fisica diversa.

La clonazione utilizzando entrambi gli strumenti citati sopra creerà una copia esatta della partizione fino all'intero UUID - e ora hai 2 partizioni con lo stesso UUID. Dall'esempio del mio / etc / fstab sopra, l'UUID non è più univoco e monterà la prima partizione trovata con quell'UDU.

Come cambio l'UUID?

Questo non è affatto difficile.

  • Prima trova il percorso del dispositivo.

È possibile trovare il percorso del dispositivo utilizzando il seguente comando:

sudo blkid

Il tuo output sarà simile a questo:

sudo blkid
/dev/sdb1: UUID="aabe7e48-2d11-421f-8609-7ea9d75e7f9b" TYPE="swap" 
/dev/sdc1: UUID="9467f4de-4231-401f-bcaa-fee718d49e85" TYPE="ext4" 
/dev/sdc3: UUID="93a54a4a-e0f5-4152-ae59-2245e8d16ee4" TYPE="ext4"
/dev/sde5: UUID="9467f4de-4231-401f-bcaa-fee718d49e85" TYPE="ext4" 
/dev/sde6: LABEL="var" UUID="30433f28-1b79-4b4d-9985-fef5b1c886b5" TYPE="ext4"

Qui puoi vedere che / dev / sdc1 e / dev / sde5 hanno lo stesso UUID. Il percorso della partizione che voglio cambiare è / dev / sde5

  • In secondo luogo, genera un UUID

Questo è semplice, il seguente comando emetterà un UUID come di seguito:

uuidgen
f0acce91-a416-474c-8a8c-43f3ed3768f9
  • Infine applica il nuovo UUID alla partizione

Questo è anche un altro comando, tune2fs, che applicherà il nostro nuovo UUID al nostro percorso del dispositivo:

sudo tune2fs /dev/sde5 -U f0acce91-a416-474c-8a8c-43f3ed3768f9

Fatto, ora puoi aggiornare il tuo grub per includere gli UUID corretti per ridurre il rischio che il tuo sistema possa confondere le partizioni.

    
risposta data 13.09.2017 - 16:03
fonte

Leggi altre domande sui tag