Untuk menghasilkan UUID baru secara acak, seseorang dapat menggunakan:
$ uuidgen
Untuk benar-benar mengubah UUID bergantung pada sistem file.
Dengan asumsi sistem file ext-family
# tune2fs -U <output of uuidgen> /dev/sdb1
Atau jika Anda yakin uuidgen akan berhasil:
# tune2fs -U $(uuidgen) /dev/sdb1
Dengan asumsi sistem file btrfs
# btrfstune -U $(uuidgen) /dev/sdb1
UUID disimpan di superblok, jadi salinan byte-per-byte dari sistem file akan memiliki UUID yang sama.
Gunakan:
tune2fs -U random /dev/sdb1
jika itu adalah ext sistem file, atau
xfs_admin -U generate /dev/sdb1
jika itu adalah xfs sistem file.
Alasan partisi kedua memiliki UUID yang sama adalah karena dd
cukup salin data dari satu file ke file lainnya (dd if=/dev/sda1 of=/dev/sdb1
=cat /dev/sda1 > /dev/sdb1
); dd
tidak tahu apa itu partisi, atau cara membuat UUID, jadi ia hanya menyalin semua data apa adanya, termasuk UUID, yang disimpan di superblok filysystem di dekat bagian awal partisi.
Ngomong-ngomong,
Saya juga berpikir UUID (Pengidentifikasi Unik Universal) adalah nama yang aneh. Itu harus disebut PGUID (Mungkin Pengidentifikasi Unik Secara Global), atau bahkan lebih baik, hanya ARLN (Nomor yang Cukup Besar).
Selain ext2 /ext3 / ex4 dan xfs, Anda juga dapat mengubah UUID dari sistem file berikut atau memblokir perangkat atau PARTUUID dari partisi GPT.
Tukar
swaplabel -U $NEW_UUID
RAID Perangkat Lunak (serangan md)
Untuk MD RAID, Anda harus menghentikan RAID terlebih dahulu, lalu memperbarui UUID saat melakukan perakitan ulang. Jadi, jika RAID Anda dipasang ke /
, Anda tidak dapat menghentikannya, Anda perlu memperbarui UUID dalam mode offline -- gunakan live CD/USB untuk melakukannya.
mdadm --stop $RAID_DEVICE
mdadm --assemble $RAID_DEVICE --update=uuid --uuid=$NEW_UUID $MEMBER_DEVICES...
Contoh:
mdadm --stop /dev/md127
mdadm --assemble /dev/md127 --update=uuid --uuid=2A1D2A1D-2A1D-2A1D-2A1D-2A1D2A1D2A1D /dev/sda2 /dev/sdb2
Setelah UUID diperbarui, Anda mungkin perlu memperbarui grub.cfg
(rd.md.uuid=$NEW_UUID
di linux/linuxefi/linux16
baris perintah) dan/atau fstab
dan/atau mdadm.conf
dan/atau update-initramfs
(keluarga Debian) dan/atau dracut --force
(Keluarga Red Hat) sehingga Anda dapat melakukan booting dengan sukses di lain waktu.
LUKS (cryptsetup)
cryptsetup luksUUID --uuid=$NEW_UUID $LUKS_DEVICE
Contoh:
cryptsetup luksUUID --uuid=e0c0e0c0-e0c0-e0c0-e0c0-e0c0e0c0e0c0 ~/encrypted-LUKS.loop
Sistem file NTFS
Ada ntfslabel
utilitas (terima kasih kepada ntfs-3g) untuk mengubah UUID sistem file NTFS. Lihat jawaban abchk1234.
Jika Anda ingin mengubah seluruh UUID sistem file NTFS, bukan --new-half-serial
, gunakan --new-serial
opsi.
Contoh:
ntfslabel --new-serial=1122334455667788 /dev/sda3
Sistem file FAT / exFAT
Ini adalah cerita lain di sini, saat ini tidak ada utilitas untuk mengubah UUID sistem file dari sistem file ini (Lihat jawaban reichhart -- mlabel
alat), tetapi kita dapat memodifikasi data mentah pada disk untuk melakukan ini.
PERINGATAN, mengubah data mentah pada disk berbahaya, dan dapat kehilangan data tanpa pengoperasian yang hati-hati.
Berikut detail langkah-langkah memodifikasi raw data pada disk menggunakan hexedit
.
-
blkid
, tuliskan UUID sistem file ke kertas, atau ingatlah. String UUID dari FAT / exFAT terlihat seperti1122-3344
, UUID string NTFS terlihat seperti1122334455667788
. -
Buka perangkat partisi menggunakan hexedit
hexedit <partition device such as /dev/sda1>
-
Tekan / , masukkan UUID dalam urutan terbalik (jika
blkid
melaporkan1234-ABCD
, lalu cariCDAB3412
) untuk menelusuri data UUID pada disk. -
Setelah UUID ditemukan, ubah, tekan F2 untuk menyimpan dan keluar.
-
blkid
untuk memverifikasi UUID. -
Setelah UUID diubah, Anda mungkin perlu memperbarui
grub.cfg
dan/ataufstab
sehingga Anda dapat melakukan booting dengan sukses di lain waktu. -
Jalankan
fsck <partition device such as /dev/sda1>
dan lihat "Ada perbedaan antara sektor boot dan cadangannya" pesan. Untuk mengatasinya, pilih "1) Salin yang asli ke cadangan" , dan jika Anda ditanya "Lakukan perubahan ? (y/n)" Anda menekan y .
PARTUUID dari partisi GPT
Sebuah cerita pendek :Saya tidak pernah berpikir saya perlu menyentuh PARTUUID dari partisi GPT, sampai sekarang, ketika saya mencoba memigrasikan Windows dari disk kecil ke disk besar, Windows gagal melakukan boot pada disk besar dan bahkan tidak dapat diperbaiki secara otomatis. Alasannya adalah mengubah UUID sistem file NTFS ke yang asli tidak cukup untuk Windows + UEFI, Anda juga perlu mengubah PARTUUID dari partisi GPT - masalah PARTUUID. (Setelah mengubah PARTUUID ke aslinya, Windows berhasil mem-boot dari disk besar.)
Sudah ada jawaban di sini di askubuntu.com untuk menunjukkan cara mengubah PARTUUID dari partisi GPT menggunakan gdisk
utilitas.
Versi fdisk
saat ini (2.35.2 di repositori Fedora 32 pada saat pengeditan) dari util-linux juga dapat melakukannya dalam mode pakar, faktanya, mulai dari util-linux v2.23, fdisk telah mengaktifkan GPT.
Berikut contoh mengubah PARTUUID menggunakan util-linux fdisk
utilitas:
# 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"