Uuid

了解 UUID 分配

  • May 23, 2016

UUID(通用唯一標識符)是一個 128 位程式碼,用於標識塊(儲存)設備。首先,這是所有 UUID 的用途嗎?

設備如何獲取其 UUID?

它會改變嗎?例如,在每次啟動時?安裝新作業系統時?

UUID 是如何生成的?是隨機的嗎?

大多數電腦的儲存設備不超過 10 個。為什麼需要這麼多不同的名字?

RFC 4122中描述了這個概念,它定義了生成UUID的各種算法。變體 4 使用隨機數並且是最常見的。

UUID 在很多場景中都有使用,一些例子是:

  • 標記分區和文件系統是 Linux 中最常見的用法
  • 網路管理器使用它們來辨識網路設備和連接
  • 虛擬機管理程序,例如 Virtual Box 和 Qemu-KVM,使用它們來辨識虛擬機
  • 在 Microsoft Windows 中使用,它們被稱為GUID
  • 它們用於數據庫中的唯一性
  • 它們用於軟體開發

在 Linux 中,所有發行版都附帶該util-linux軟體包,其中包括uuidgen生成 UUID 的命令。這是一個前端libuuid,預設情況下生成隨機 UUID,如果沒有足夠的熵可用,則基於時間。

您用於創建分區或文件系統的實用程序將生成 UUID,該 UUID 將保留在該分區/文件系統中,直到您重新創建它們或顯式更改 UUID(例如使用tune2fs

UUID 與文件系統和分區一起使用,以便為它們提供一致的名稱(儘管名稱很長)。這避免了雙硬碟系統中 UEFI 韌體的 BIOS 列出硬碟的情況,以便您的系統磁碟/dev/sda在一次啟動時分配/deb/sdb並在下一次啟動時分配(可能第一個磁碟在第二次啟動時啟動速度較慢)。

使用傳統的命名方法,這將導致您的/etc/fstab文件受到嚴重破壞,因為您的系統會在錯誤的磁碟中查找要掛載的分區。例如,這是我的交換條目:

/dev/sda4               none            swap            defaults        0 0

如果磁碟在引導時分配不同,我的系統不會swap在非系統磁碟上找到第四個類型的分區(好吧,我在筆記型電腦上,所以它沒有第二個磁碟,但是你得到點),我的交換會失敗。

通過使用 UUID 標記它們,並使用其中的 UUID,/etc/fstab可以保證始終掛載正確的文件系統。例如:

UUID=d8ab8967-f2de-4c76-902f-d8d9707c399e /media/files  ext4    defaults 0 0

/media/files無論 BIOS(或 UEFI 韌體)在引導時標記它們的順序如何,都將始終掛載具有該 UUID 的分區。

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