4 votos

¿Cómo puedo cambiar el UUID de un volumen NTFS?

Acabo de actualizar mi Mac a Mac OS X El Capitan y quería actualizar mi Windows 7 a Windows 10. Pero, antes de eso, necesito hacer una copia de seguridad de mi partición de Windows.

Como ya lo he hecho antes, tengo una partición de Windows (NTFS) en un disco duro de respaldo.

El caso es que quiero hacer una nueva copia de seguridad con Carbon Copy Cloner, pero me dice que no se puede hacer porque hay dos volúmenes con el mismo UUID.

Bien, entonces, me peleo con mi partición de respaldo de Windows para que tenga un UUID diferente al que tengo para mi partición "local" de Windows... ¡y estoy perdiendo la pelea!

Tengo esto cuando uso diskutil info /dev/disk0s2 :

   Device Identifier:        disk0s2
   Device Node:              /dev/disk0s2
   Whole:                    No
   Part of Whole:            disk0
   Device / Media Name:      Windows_NTFS_Untitled_3

   Volume Name:              Win

   Mounted:                  Yes
   Mount Point:              /Volumes/Win

   File System Personality:  NTFS
   Type (Bundle):            ntfs
   Name (User Visible):      Windows NT File System (NTFS)

   Partition Type:           Microsoft Basic Data
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 SATA
   SMART Status:             Verified
   Volume UUID:              24D65D1E-43E8-4FF0-BBBF-A82CC6B45D20
   Disk / Partition UUID:    D5C23E74-E658-45E1-B9B3-44681D0D02C2

   Total Size:               85.0 GB (84999667712 Bytes) (exactly 166014976 512-Byte-Units)
   Volume Free Space:        34.1 GB (34093342720 Bytes) (exactly 66588560 512-Byte-Units)
   Device Block Size:        512 Bytes
   Allocation Block Size:    4096 Bytes

   Read-Only Media:          No
   Read-Only Volume:         No

   Device Location:          Internal
   Removable Media:          No

   Solid State:              No

... y tengo esto usando diskutil info /dev/disk1s4 :

   Device Identifier:        disk1s4
   Device Node:              /dev/disk1s4
   Whole:                    No
   Part of Whole:            disk1
   Device / Media Name:      WindowsB

   Volume Name:              Windows

   Mounted:                  Yes
   Mount Point:              /Volumes/Windows

   File System Personality:  NTFS
   Type (Bundle):            ntfs
   Name (User Visible):      Windows NT File System (NTFS)

   Partition Type:           Microsoft Basic Data
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 USB
   SMART Status:             Not Supported
   Volume UUID:              24D65D1E-43E8-4FF0-BBBF-A82CC6B45D20
   Disk / Partition UUID:    C8E2A2D5-6065-4903-8BB6-AC02698323A6

   Total Size:               84.7 GB (84655734784 Bytes) (exactly 165343232 512-Byte-Units)
   Volume Free Space:        44.0 GB (44012474368 Bytes) (exactly 85961864 512-Byte-Units)
   Device Block Size:        512 Bytes
   Allocation Block Size:    4096 Bytes

   Read-Only Media:          No
   Read-Only Volume:         No

   Device Location:          External
   Removable Media:          No

Como puede ver, el "Disk / Partition UUID" es diferente, pero no el "Volume UUID".

¿Alguien tiene una solución para cambiar el "Volume UUID"?

3voto

klanomath Puntos 19587

Normalmente los volúmenes NTFS no contienen UUIDs. El UUID visible en diskutil se deriva del número de serie del volumen NTFS.

Obtenga el identificador de su disco de copia de seguridad y el volumen:

diskutil list

Desmontar el disco externo:

diskutil umountDisk /dev/disk1

Copiar el superbloque NTFS:

sudo dd if=/dev/disk1s4 of=~/Desktop/superblock bs=512 count=1

Cambia los bits del mod:

sudo chmod 777 ~/Desktop/superblock 

Cree una copia de seguridad del superbloque (¡por si acaso!):

cp ~/Desktop/superblock ~/Desktop/superblock.backup

Modificar el archivo superbloque con HexFiend :

Hexfiend superblock

El número de serie del volumen NTFS está resaltado en color violeta (ocho bytes que comienzan en el offset 72 o 0x48). Modifique al menos un byte. Después de guardar el archivo compruebe el tamaño, que debe seguir siendo de 512 Bytes.

Escribe de nuevo el superbloque:

sudo dd if=~/Desktop/superblock of=/dev/disk1s4 bs=512 count=1

Reinicie su Mac y verifique el nuevo UUID de disk1s4.

0 votos

Gracias por su respuesta. Ya he hecho todo eso, excepto el reinicio: ¿es importante reiniciar el ordenador, ya que he desconectado/conectado el disco duro externo después de cambiar el ID de serie NTFS?

0 votos

@pierreonthenet ¿Te ha funcionado?

0 votos

Lo siento, quería añadir una nueva línea y el comentario se envió antes de que lo terminara... Así que no, por ahora no funciona. Lo intentaré después de reiniciar mi mac cuando vuelva a casa.

2voto

Puede simplemente cambiar el UUID por el formato/borrado de la partición.

1) Formatear el disco a Mac OS Extended utilizando la Utilidad de Discos incorporada

2) Si necesitas una partición de Windows, formatea el disco a exFAT después de haber hecho el primer paso (por alguna razón necesitas dos pasos para la partición de Windows)

Puede comprobar si el UUID ha cambiado enumerando todos los números UUID:

find /Volumes -maxdepth 1 -mindepth 1 -exec diskutil info {} \;

2voto

deek5 Puntos 131

En una partición NTFS el UUID es de aproximadamente 3352 bytes [1] desde el inicio de la MFT, para encontrar el offset de la MFT es necesario leer los 8 bytes que parten del byte 48 del inicio de la partición, Estos 8 bytes una vez convertidos darán el offset del sector donde comienza la MFT. Para obtener el offset de la MFT hay que multiplicar los 8 bytes convertidos por el número de bytes por sector (512) y el número de sectores por cluster (8) (8 y 512 son los valores por defecto para una partición NTFS).

Por ejemplo, los 8 bytes que empiezan por el 48 (en la lectura son dos caracteres por un byte) pueden ser 0x698c670000000000 que habrá que invertir 0x0000000000678c69 y convertirlo en decimal 6786153. Entonces aplicamos la fórmula (6786153 * 8 * 512) o (6786153 * 4096 ) = 27796082688 (offset de la MFT) + 3352 (offset del UUID) = 27796086040. así que en la partición si nos movemos al byte 27796086040 encontraremos el UUID de la partición en 16 bytes que habrá que convertir en Hexadecimal e invertir los 8 primeros.

No hay mucho interés en modificar el UUID de una partición NTFS, Microsoft aparentemente no lo utiliza, Mac OS X muestra los UUID de las particiones. No hay muchos comentarios sobre el UUID de las particiones NTFS. He creado un AppleScript [2] para leer los UUID de NTFS o HFS. Los únicos UUID que modifico son los del HFS, para empezar con la elección del UUID.

[1] : +3352 esto es para una partición física NTFS, para una partición de un VHD es +3320)

[2] : AppleScript para leer UUID de una partición NTFS. Todos los comandos sudo deben ser completados por su nombre y contraseña, de lo contrario trate de eliminar el sudo. No te aconsejo que modifiques el UUID, no hay información sobre su uso. He dejado la inversión de los bytes de forma muy rudimentaria.**

set hdd to {}
set dmg to do shell script "sudo ls /dev/disk**s** " & " | sed -e 's#[[:space:]]*$##;s#\\/dev\\/##;/^$/d'" user name "Your_Name" password "Your_Password" with administrator privileges
set doun to ""
set dor to ""
set uuidd to ""
set uuidd to {}

set hfsountfs to ""
set theVol1 to ""
set theVol to ""
set vhd to ""
set leplus to 0
set levhd to ""
set hd to {}
set _Result to the paragraphs of dmg
set n to 0
set n to count _Result
set j to 1
do shell script "echo " & n

repeat with i from 1 to n
    set end of hdd to item i of _Result

end repeat

set theVolumeTemp to (choose from list hdd with prompt "Choisissez le Volume (partition) NTFS :" with empty selection allowed)
if theVolumeTemp is not false then

    set theVolumeTemp to do shell script "echo " & theVolumeTemp
    set theVol to "/dev/" & theVolumeTemp
    set theVol1 to theVol
    set theVol to do shell script "echo " & theVol & " | xxd -p | sed 's#0a##' | xxd -r -p "
    try
        set vhd to do shell script "diskutil info " & theVol & " | grep 'Disk Image' "
    end try
    try

        set uuidd to do shell script "diskutil unmount " & theVol
    end try
    set uuidd to do shell script "sudo dd if=" & theVol & " iseek=48 bs=1 count=8  | xxd -p " user name "Your_Name" password "Your_Password" with administrator privileges

    set theVol to do shell script "echo " & uuidd
    set n to 0
    set n to count uuidd
    do shell script "echo " & n

    repeat with i from 1 to 8
        set les2 to (item (n - 1) of uuidd & item n of uuidd)
        set end of hd to les2
        set n to n - 2
    end repeat
    set hd to do shell script "echo " & hd

    set nDec to (do shell script "perl -e 'printf(hex(\"" & hd & "\"))'") as integer
    if vhd is not "" then
        set leplus to 3320
        set levhd to "c'est un Vhd ntfs"
    else
        set leplus to 3352
    end if

    set nDec to do shell script " echo $((" & nDec & " * 4096 + " & leplus & "))" as string
    set uuidd to do shell script "sudo dd if=" & theVol1 & " iseek=" & nDec & " bs=1 count=16 | xxd -p " user name "Your_Name" password "Your_Password" with administrator privileges

    set hd to {}
    set n to 8
    repeat with i from 1 to 4
        set les2 to (item (n - 1) of uuidd & item n of uuidd)
        set end of hd to les2
        set n to n - 2
    end repeat

    set end of hd to "-"

    set n to 12
    repeat with i from 1 to 2
        set les2 to (item (n - 1) of uuidd & item n of uuidd)
        set end of hd to les2
        set n to n - 2
    end repeat

    set end of hd to "-"

    set n to 16
    repeat with i from 1 to 2
        set les2 to (item (n - 1) of uuidd & item n of uuidd)
        set end of hd to les2
        set n to n - 2
    end repeat
    set end of hd to "-"

    repeat with i from 17 to 20
        set end of hd to item (i) of uuidd
    end repeat
    set end of hd to "-"
    repeat with i from 21 to 32
        set end of hd to item (i) of uuidd
    end repeat
    set hd to do shell script "echo " & hd

    set lamft to do shell script " echo $((" & nDec & " - " & leplus & "))" as string

    set doun to " Identifiant Universel Unique ou UUID du " & theVolumeTemp & " est : 
" & hd

    set doun to doun & "
 La MFT du " & theVolumeTemp & " est à  :  " & lamft & " Octets du départ de la partition " & "
 l'UUID se trouve  plus loin de " & leplus & " Octets " & "
" & levhd
    set uuiddd to do shell script "sudo dd if=" & theVol1 & " iseek=72 bs=1 count=8  | xxd -p " user name "Your_Name" password "Your_Password" with administrator privileges
    set n to 0
    set n to count uuiddd
    do shell script "echo " & n
    set uuiddd to do shell script "echo " & uuiddd & "  | tr [:lower:] [:upper:] "
    set hdd to {}
    set les2 to (item 15 of uuiddd & item 16 of uuiddd & item 13 of uuiddd & item 14 of uuiddd)
    set end of hdd to les2
    set end of hdd to "-"
    set les2 to (item 11 of uuiddd & item 12 of uuiddd & item 9 of uuiddd & item 10 of uuiddd)
    set end of hdd to les2
    set end of hdd to "-"
    set les2 to (item 7 of uuiddd & item 8 of uuiddd & item 5 of uuiddd & item 6 of uuiddd)
    set end of hdd to les2
    set end of hdd to "-"
    set les2 to (item 3 of uuiddd & item 4 of uuiddd & item 1 of uuiddd & item 2 of uuiddd)
    set end of hdd to les2

    set doun to doun & " Le numero de série des 8 Octets de l'offset 72 partition NTFS du " & theVolumeTemp & " est : 
" & uuiddd & "
 Toujours présenté sous cette forme : " & hdd
    display alert (doun as string)

    try
        do shell script "diskutil mount " & theVol1

    end try

end if

0voto

wolfram77 Puntos 126

Yo tuve el mismo problema. Esto es lo que tuve que hacer después de hacer una copia byte a byte de una unidad a la otra en Terminal. Eso me dejó con un conflicto de UUID como el que tenías originalmente.

He arrancado en una de las unidades de Windows. Windows no pudo montar ambas unidades, debido al conflicto, pero utilizando el símbolo del sistema de Windows cmd elevado a privilegios de administrador, pude ver y cambiar el UUID de la unidad desmontada para hacerla diferente de la original como se describe aquí: http://support.altaro.com/customer/portal/articles/1115503-how-can-i-change-the-disk-id-of-a-drive-

CarbonCopyCloner puede entonces funcionar para usted. Si no, puedes arrancar en OS X y utilizar la Utilidad de Discos para hacerlo. Seleccione la unidad de copia de seguridad y elija el comando Restaurar. Te permitirá seleccionar tu volumen de origen y copiarlo en el volumen clonado.

Si eso no funciona porque es un volumen NTFS, necesitas la aplicación NTFS para Mac de Paragon, que yo compré. Permite leer y escribir en NTFS desde OS X, y me parece indispensable. Sin embargo, viene con una prueba gratuita de 7 días, y la versión de prueba debería funcionar para ti. Instálala, y entonces la Utilidad de Discos podrá realizar la operación.

Otra cosa que he encontrado útil con la utilidad NTFS de Paragon para Mac es que le permitirá añadir su unidad clonada al menú de Disco de Inicio de las Preferencias, por no mencionar también la adición de un disco de Reparación de Windows a las Preferencias de Inicio si tiene uno.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X