¿Cómo puedo cambiar un UUID de 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 copy de security de mi partición de Windows.

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

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

OK, entonces, lucho con mi partición de copy de security de Windows para tener un UUID diferente del que obtuve para mi partición "local" de Windows … ¡y estoy perdiendo la batalla!

Lo tengo 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 "UUID de disco / partición" es diferente, pero no el "UUID de volumen".

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

4 Solutions collect form web for “¿Cómo puedo cambiar un UUID de volumen NTFS?”

Por lo general, los volúmenes NTFS no contienen UUID. El UUID visible en diskutil se deriva del Número de serie del volumen NTFS.

Obtenga el identificador de disco de su disco de respaldo y el volumen:

 diskutil list 

Desmontar el disco externo:

 diskutil umountDisk /dev/disk1 

Copie el superbloque NTFS:

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

Cambiar los bits de modificación:

 sudo chmod 777 ~/Desktop/superblock 

Crea una copy de security del superbloque (¡por las dudas!):

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

Modifique el superbloque de files con HexFiend :

Superbloque Hexfiend

El número de serie del volumen NTFS se resalta en violeta (ocho bytes que comienzan en el desplazamiento 72 o 0x48). Modificar al less un byte. Después de save el file, verifique el tamaño que aún debe ser de 512 Bytes.

Escribe nuevamente el superbloque:

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

Reinicia tu Mac y verifica el nuevo UUID de disk1s4.

En una partición NTFS, el UUID tiene aproximadamente 3352 bytes [1] desde el comienzo del MFT, para encontrar el desplazamiento del MFT es necesario leer los 8 bytes que comienzan desde el byte 48 del comienzo de la partición, estos 8 Los bytes una vez convertidos darán el desplazamiento del sector donde comienza la MFT. Para get el desplazamiento del MFT, los 8 bytes convertidos se deben multiplicar por el número de bytes por sector (512) y el número de sectores por clústeres (8) (8 y 512 son los valores pnetworkingeterminados para una partición NTFS).

Por ejemplo, los 8 bytes que comienzan en la 48.a (al leer son dos caracteres por byte) pueden ser 0x698c670000000000, que deberán invertirse 0x0000000000678c69 y convertirse a 6786153. Luego, aplique la fórmula (6786153 * 8 * 512) o ( 6786153 * 4096) = 27796082688 (desplazamiento del MFT) + 3352 (desplazamiento del UUID) = 27796086040. Por lo tanto, en la partición si pasamos al byte 27796086040, encontraremos el UUID de la partición en 16 bytes que deberá convertirse en hexadecimal e invertido por los primeros 8.

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

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

[2] : AppleScript para leer el UUID de una partición NTFS. Todos los commands de sudo deben completarse para su nombre y contraseña; de lo contrario, intente eliminar el sudo. No te aconsejo que modifiques el UUID, no hay información sobre su uso. Dejé la inversión de los bytes de una manera 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 

Simplemente puede cambiar UUID por formatting / borrado de partición.

1) Formatee el disco en Mac OS extendido con la utilidad de disco incorporada

2) Si necesita una partición de Windows, formatee el disco en exFAT después de haber realizado el primer paso (por alguna razón necesita dos pasos para la partición de Windows)

Puede verificar si el UUID cambió al enumerar todos los numbers de UUID:

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

Una precisión en el desplazamiento del UUID en el MFT de un Volumen NTFS, 3320 o 3352. La diferencia proviene del origen del formatting. Si formatea un hdd o vhd desde Microsoft Windows, el desplazamiento será, para el UUID en el MFT, 3352 bytes desde el comienzo del MFT. Si formatea un Volumen o vhd desde Mac OS X, con Diskutil, el desplazamiento del UUID estará a 3320 bytes desde el comienzo de la MFT. Todo esto para un volumen (o vhd) NTFS, por supuesto.

Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).