Per generare un nuovo UUID casuale, si può usare:
$ uuidgen
La modifica effettiva dell'UUID dipende dal file system.
Supponendo un filesystem ext-family
# tune2fs -U <output of uuidgen> /dev/sdb1
Oppure, se sei sicuro che uuidgen funzionerà:
# tune2fs -U $(uuidgen) /dev/sdb1
Supponendo un filesystem btrfs
# btrfstune -U $(uuidgen) /dev/sdb1
L'UUID è memorizzato nel superblocco, quindi una copia byte per byte del filesystem avrà lo stesso UUID.
Usa:
tune2fs -U random /dev/sdb1
se è un ext filesystem, o
xfs_admin -U generate /dev/sdb1
se è un xfs filesystem.
Il motivo per cui la seconda partizione ha lo stesso UUID è perché dd
copia semplicemente i dati da un file a un altro (dd if=/dev/sda1 of=/dev/sdb1
=cat /dev/sda1 > /dev/sdb1
); dd
non sa cosa sia una partizione o come generare un UUID, quindi ha semplicemente copiato tutti i dati così come sono, incluso l'UUID, che è memorizzato nel superblocco del filesystem vicino all'inizio della partizione.
A proposito,
Penso anche che UUID (Universally Unique IDentifier) sia un nome strano. Dovrebbe chiamarsi PGUID (Possibly Globally Unique IDentifier), o meglio ancora, semplicemente ARLN (A Reasonably Large Number).
Oltre a ext2 /ext3 / ex4 e xfs, puoi anche modificare l'UUID del seguente filesystem o dispositivo a blocchi o PARTUUID della partizione GPT.
Scambia
swaplabel -U $NEW_UUID
RAID software (md raid)
Per MD RAID, devi prima arrestare il RAID, quindi aggiornare l'UUID durante il riassemblaggio. Quindi, se il tuo RAID è montato su /
, non puoi fermarlo, devi aggiornare l'UUID in modalità offline -- usa un live CD/USB per farlo.
mdadm --stop $RAID_DEVICE
mdadm --assemble $RAID_DEVICE --update=uuid --uuid=$NEW_UUID $MEMBER_DEVICES...
Esempio:
mdadm --stop /dev/md127
mdadm --assemble /dev/md127 --update=uuid --uuid=2A1D2A1D-2A1D-2A1D-2A1D-2A1D2A1D2A1D /dev/sda2 /dev/sdb2
Dopo che l'UUID è stato aggiornato, potrebbe essere necessario aggiornare grub.cfg
(rd.md.uuid=$NEW_UUID
in linux/linuxefi/linux16
riga di comando) e/o fstab
e/o mdadm.conf
e/o update-initramfs
(famiglia Debian) e/o dracut --force
(Famiglia Red Hat) in modo da poter eseguire correttamente l'avvio la prossima volta.
LUKS (cryptsetup)
cryptsetup luksUUID --uuid=$NEW_UUID $LUKS_DEVICE
Esempio:
cryptsetup luksUUID --uuid=e0c0e0c0-e0c0-e0c0-e0c0-e0c0e0c0e0c0 ~/encrypted-LUKS.loop
File system NTFS
C'è ntfslabel
utility (grazie a ntfs-3g) per modificare l'UUID del file system NTFS. Vedi la risposta di abchk1234.
Nel caso in cui desideri modificare l'intero UUID del file system NTFS invece di --new-half-serial
, usa il --new-serial
opzione.
Esempio:
ntfslabel --new-serial=1122334455667788 /dev/sda3
File system FAT / exFAT
Questa è un'altra storia qui, attualmente non ci sono utilità per modificare l'UUID del filesystem di questi filesystem (Vedi la risposta di Reichhart:il mlabel
strumento), ma possiamo modificare i dati grezzi su disco per farlo.
ATTENZIONE, è pericoloso modificare i dati grezzi su disco e potrebbe andare perduti senza un'attenta operazione.
Ecco i passaggi dettagliati per modificare i dati non elaborati su disco utilizzando hexedit
.
-
blkid
, annota l'UUID del filesystem su carta o ricordalo. La stringa UUID di FAT / exFAT è simile a1122-3344
, la stringa UUID di NTFS è simile a1122334455667788
. -
Apri il dispositivo di partizione usando hexedit
hexedit <partition device such as /dev/sda1>
-
Premi , inserisci l'UUID in ordine inverso (se
blkid
segnalato1234-ABCD
, quindi cercaCDAB3412
) per cercare i dati UUID su disco. -
Una volta individuato l'UUID, cambialo, premi F2 per salvare ed uscire.
-
blkid
per verificare l'UUID. -
Una volta modificato l'UUID, potrebbe essere necessario aggiornare
grub.cfg
e/ofstab
in modo da poter eseguire correttamente l'avvio la prossima volta. -
Esegui
fsck <partition device such as /dev/sda1>
e vedi un "Ci sono differenze tra il settore di avvio e il suo backup" Messaggio. Per risolverlo, seleziona "1) Copia l'originale nel backup" e se ti viene chiesto "Esegui modifiche ? (y/n)" premi y .
PARTUUID della partizione GPT
Una breve storia :Non ho mai pensato di dover toccare PARTUUID della partizione GPT, fino ad ora, quando provo a migrare Windows da un disco piccolo a un disco grande, Windows non è riuscito ad avviarsi sul disco grande e non può nemmeno essere riparato automaticamente. Il motivo è che la modifica dell'UUID del file system NTFS in quello originale non è sufficiente per Windows + UEFI, è inoltre necessario modificare il PARTUUID della partizione GPT - la questione PARTUUID. (Dopo aver modificato PARTUUID in quello originale, Windows è stato avviato correttamente dal disco grande.)
C'è già una risposta qui su askubuntu.com per mostrare come cambiare PARTUUID della partizione GPT usando gdisk
utilità.
La versione corrente di fdisk
(2.35.2 nei repository Fedora 32 al momento della modifica) da util-linux può farlo anche in modalità esperto, infatti, a partire da util-linux v2.23, fdisk è stato abilitato per GPT.
Ecco un esempio di come cambiare PARTUUID usando util-linux fdisk
utilità:
# truncate -s 200M /tmp/file-as-a.disk
# LANG=en_US.UTF-8 fdisk /tmp/file-as-a.disk
Welcome to fdisk (util-linux 2.35.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xc0fc8503.
Command (m for help): g
Created a new GPT disklabel (GUID: 4CD23B97-80C5-BD42-8466-1B9476653A92).
Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-409566, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-409566, default 409566):
Created a new partition 1 of type 'Linux filesystem' and of size 199 MiB.
Command (m for help): i
Selected partition 1
Device: /tmp/file-as-a.disk1
Start: 2048
End: 409566
Sectors: 407519
Size: 199M
Type: Linux filesystem
Type-UUID: 0FC63DAF-8483-4772-8E79-3D69D8477DE4
UUID: 7265D7C3-6277-DE4B-956C-41E3BFFF8E0D
Command (m for help): w
The partition table has been altered.
Syncing disks.
# LANG=en_US.UTF-8 fdisk /tmp/file-as-a.disk
Welcome to fdisk (util-linux 2.35.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): x
Expert command (m for help): m
Help (expert commands):
GPT
i change disk GUID
n change partition name
u change partition UUID
l change table length
M enter protective/hybrid MBR
A toggle the legacy BIOS bootable flag
B toggle the no block IO protocol flag
R toggle the required partition flag
S toggle the GUID specific bits
Generic
p print the partition table
v verify the partition table
d print the raw data of the first sector from the device
D print the raw data of the disklabel from the device
f fix partitions order
m print this menu
Save & Exit
q quit without saving changes
r return to main menu
Expert command (m for help): u
Selected partition 1
New UUID (in 8-4-4-4-12 format): 11223344-5566-7788-9900-AABBCCDDEEFF
Partition UUID changed from 7265D7C3-6277-DE4B-956C-41E3BFFF8E0D to 11223344-5566-7788-9900-AABBCCDDEEFF.
Expert command (m for help): w
w: unknown command
Expert command (m for help): r
Command (m for help): w
The partition table has been altered.
Syncing disks.
# losetup --partscan /dev/loop101 /tmp/file-as-a.disk
# blkid /dev/loop101*
/dev/loop101: PTUUID="4cd23b97-80c5-bd42-8466-1b9476653a92" PTTYPE="gpt"
/dev/loop101p1: PARTUUID="11223344-5566-7788-9900-aabbccddeeff"