Montaje de un clon de disco duro externo que comparte los mismos GUID de partición que el disco duro de origen / host

4

Recientemente, el disco duro de mi Macbook comenzó a tener bloqueos defectuosos y, de manera inmediata, logré hacer una copia del disco con ddrescue en una unidad externa a través de una sesión en vivo de Ubuntu. He clonado con éxito todo sin muchos problemas.

Cuando conecto esta unidad externa con Ubuntu, puedo acceder a todas las particiones. Pero desafortunadamente, cuando intento acceder a esta unidad en macOS, la partición Apple_CoreStorage no se monta.

Aquí está mi salida 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

El disco duro externo es el /dev/disk3 . Las primeras 3 particiones son una copia exacta de /dev/disk0 en el momento en que hice el clon. La última partición Time Machine se creó más tarde con el espacio libre en disco que quedaba.

No puedo montar /dev/disk3s2 dentro de macOS, aunque puedo hacer eso cuando uso Ubuntu. ¿Me estoy perdiendo de algo? ¿Qué debo hacer para montar esta partición?

Actualizar

Por lo que he entendido, el problema ocurre porque tanto /dev/disk0s2 + /dev/disk3s2 como /dev/disk0s3 + /dev/disk3s3 comparten la misma etiqueta de disco. Mi /Volumes/Macintosh HD lista el propio sistema de archivos de Macbook, es decir. es el /dev/disk1 (de /dev/disk0s2 ).

En realidad, esto sucede porque tanto el GUID de GPT de disco como los GUID de GPT de partición comparten los mismos UUID. Todavía no he encontrado una forma o herramienta para cambiar las GUID de las particiones de forma segura (donde puedo montarlas sin comprometer sus datos).

    
pregunta Paulo Freitas 04.09.2017 - 19:22

2 respuestas

6

He probado su configuración en una máquina virtual con el mismo resultado: el segundo volumen CoreStorage no se montará. La clonación de un contenedor CoreStorage en otro disco con dd no cambia los UUID de los elementos CoreStorage. Así que, de hecho, es un problema de los UUID duplicados de Logical Volume Group / Physical Volume / Logical Volume Family / Logical Volume de disk0s2 y disk3s2.

La buena noticia es: hay una entrada man para una herramienta que puede cambiar los UUID de todos los objetos de metadatos de CoreStorage: man csunique .

Verifique el identificador de disco del duplicado con diskutil list . En su ejemplo, es disk3s2 .

Entonces el comando en tu caso sería:

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

La mala noticia es: no puedo encontrar la herramienta / script. No está en la ruta ni puedo encontrar un archivo con este nombre en otro lugar del disco. Lo verifiqué en 10.9 / 10.10 / 10.11 / Recuperación HD buscando en todo el disco, incluso dentro de paquetes con FileBuddy. Una búsqueda en Google no tuvo éxito.

Trabajo en progreso

Puedes cambiar los distintos UUID manualmente editando el contenido del disco en bruto con una herramienta como HexEdit o wxHexEditor, por supuesto. AFAIR el pvUUID y el lvgUUID se encuentran en el primer bloque de disk3s2. PvUUID / lvgUUID tiene varias apariciones adicionales en el área de metadatos del grupo de volúmenes lógicos de disk3s2. No utilice UUID arbitrarios (es decir, de fabricación propia), sino que intente generarlos con uuidgen o en línea con un generador de UUID. Algunos bits del UUID tienen un significado especial y determinan versión UUID o el algoritmo hash.

Ejemplo:

La salida de la lista cs de diskutil del disco original:

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

El pvUUID (violeta claro) y lvgUUID (amarillo claro) aparecen en hexadecimal en el primer bloque y el último bloque de la partición:

1er bloque:

últimobloque:

ycomotextocadacuatrovecesenlosúltimos32760bloques(tamañodebloquefísicode512bytes)delaparticiónenelementossimilaresaplist.

    
respondido por el klanomath 07.09.2017 - 12:34
2

Dado que las particiones se crearon con Linux y se puede acceder a ellas en Linux, ¿por qué no usar Linux para cambiar el UUID mal creado?

Cómo cambiar el UUID de un Partición de Linux (adapte a sus necesidades y valores)

Los UUID duplicados pueden ser un gran problema en su máquina. ¡Pero afortunadamente es fácil cambiar el UUID de una partición de Linux y se puede hacer en aproximadamente 1-2 minutos!

El UUID de una partición de Linux es el elemento U niversalmente U nique ID de esa partición. Diría con bastante confianza que en este y en la mayoría de los escenarios, el UUID de la partición de Linux tiene más de un ámbito de máquina local.

Este ID se usa en algunos lugares para identificar la partición. El más notable es su archivo / etc / fstab, que administra el montaje de particiones en el momento del arranque. Aquí hay un pequeño fragmento de la mía ...

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

_

¿Por qué necesitarías cambiar un UUID de partición?

La razón principal es un choque de identificaciones. Técnicamente, la probabilidad de crear 2 UUID idénticos es muy rara ( lea más sobre la probabilidad de duplicados del UUID aleatorio ). Pero puede haber casos en los que clone una partición utilizando DD o Clonezilla y el clon reside en la misma máquina: diferente disco duro físico o partición.

La clonación utilizando las dos herramientas mencionadas anteriormente creará una copia exacta de la partición hasta el UUID, y ahora tiene 2 particiones con el mismo UUID. En el ejemplo de mi / etc / fstab anterior, el UUID ya no es único y montará la primera partición que encuentre con ese UUID.

¿Cómo cambio el UUID?

Esto no es difícil en absoluto.

  • Primero encuentra la ruta del dispositivo.

Puede encontrar la ruta del dispositivo con el siguiente comando:

sudo blkid

Tu salida se verá así:

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"

Aquí puede ver que / dev / sdc1 y / dev / sde5 tienen el mismo UUID. La ruta de la partición que quiero cambiar es / dev / sde5

  • En segundo lugar, generar un UUID

Esto es simple, el siguiente comando generará un UUID como el siguiente:

uuidgen
f0acce91-a416-474c-8a8c-43f3ed3768f9
  • Finalmente aplique el nuevo UUID a la partición

Este es también otro comando, tune2fs, que aplicará nuestro nuevo UUID a la ruta de nuestro dispositivo:

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

Listo, ahora puede actualizar su grub para incluir los UUID correctos para reducir el riesgo de que su sistema confunda las particiones.

    
respondido por el LangLangC 13.09.2017 - 16:03

Lea otras preguntas en las etiquetas