Linux
如何更改文件系統 UUID(2 個相同的 UUID)?
我在 VMware 中有一個 Fedora 來賓作業系統。我想擴展
/boot
分區,所以我向這個 VM 添加了另一個虛擬磁碟,並嘗試複製該磁碟。之後
dd if=/dev/sda1 of=/dev/sdb1
,blkid
報告**/dev/sda1和/dev/sdb1**具有相同的 UUID/GUID。奇怪的是宇宙中有兩個相同的 UUID,如何將其中一個更改為另一個 UUID 值?
2017-01-25 更新
主題改變了,這裡的 UUID 是指文件系統 UUID,而不是分區 UUID。
由於它是文件系統 UUID,因此需要特定於文件系統的實用程序來更改 UUID,或使用 hexeditor 修改磁碟上的原始數據(危險,除非您知道自己在做什麼,否則不推薦)。
要生成一個隨機的新 UUID,可以使用:
$ uuidgen
實際更改 UUID 取決於文件系統。
假設 ext-family 文件系統
# tune2fs -U <output of uuidgen> /dev/sdb1
或者,如果您確信 uuidgen 會起作用:
# tune2fs -U $(uuidgen) /dev/sdb1
假設 btrfs 文件系統
# btrfstune -U $(uuidgen) /dev/sdb1
UUID 儲存在超級塊中,因此文件系統的逐字節副本將具有相同的 UUID。
採用:
tune2fs -U random /dev/sdb1
如果它是一個ext文件系統,或者
xfs_admin -U generate /dev/sdb1
如果它是xfs文件系統。
第二個分區具有相同 UUID 的原因是因為
dd
只是將數據從一個文件複製到另一個文件(dd if=/dev/sda1 of=/dev/sdb1
=cat /dev/sda1 > /dev/sdb1
);dd
不知道分區是什麼,也不知道如何生成 UUID,所以它只是按原樣複製所有數據,包括 UUID,它儲存在分區開始附近的 filysystem 超級塊中。順便說一句,
我也認為 UUID(Universally Unique IDentifier)是一個奇怪的名字。它應該被稱為 PGUID(可能是全球唯一標識符),或者更好的是,只是 ARLN(一個合理的大數)。