Linux

如何更改文件系統 UUID(2 個相同的 UUID)?

  • September 29, 2020

我在 VMware 中有一個 Fedora 來賓作業系統。我想擴展/boot分區,所以我向這個 VM 添加了另一個虛擬磁碟,並嘗試複製該磁碟。

之後dd if=/dev/sda1 of=/dev/sdb1blkid報告**/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(一個合理的大數)。

引用自:https://unix.stackexchange.com/questions/12858