了解 UUID 分配

了解 UUID 分配

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

設備如何取得其UUID?

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

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

大多數計算機沒有超過 10 個儲存設備。為什麼需要這麼多不同的名稱?

答案1

該概念描述於RFC 4122它定義了產生的各種演算法通用唯一識別符s。變體 4 使用隨機數,是最常見的。

UUID 在許多場景中都有使用,以下是一些範例:

  • 標記分割區和檔案系統是 Linux 中最常見的用法
  • 網路管理器使用它們來識別網路設備和連接
  • Virtual Box 和 Qemu-KVM 等虛擬機管理程式使用它們來識別虛擬機
  • 它們在 Microsoft Windows 中使用,被稱為GUIDs
  • 它們用於內部的唯一性資料庫
  • 它們用於軟體開發

在 Linux 中,所有發行版都附帶該util-linux軟體包,其中包含uuidgen產生 UUID 的命令。這是一個預設產生隨機 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 標記它們並使用它們,/etc/fstab可以保證始終安裝正確的檔案系統。例如:

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

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

相關內容