如何正確獲取整個磁碟的 UUID?
由於 UUID 是在分區階段(由軟體)分配的,因此沒有可用於整個磁碟的 UUID。
但是,
/dev/disk/by-id/
包含用於相同目的的有希望的資訊。我們可以獲得“UUID”路徑 - 例如。/dev/sdb/
經過:$ disk=sdb; ls /dev/disk/by-id/ -l | grep "/$disk$" | awk '{print "/dev/disk/by-id/"$9}' /dev/disk/by-id/ata-ST1000LM048-2E7172_WKP6XK95 /dev/disk/by-id/wwn-0x5000c500ccbb7485
但是,如您所見,同一個驅動器有多個條目。結尾
WKP6XK95
更有意義,因為它物理地寫在產品標籤上,在“序列號”部分。如何獲得可能寫入磁碟的唯一值?換句話說,
wwn-...
id是如何生成的,那麼我怎樣才能安全地忽略這個條目呢?忽略此條目... | grep -v wwn
是否安全?
該
wwn-
條目是磁碟的全球通用名稱。它在技術上不是 UUID,因為它不遵循 UUID 格式或生成規則。在獨立 SATA 和 SAS 磁碟上,由磁碟韌體報告並在出廠時分配。在 SAN 儲存系統上可能會更複雜:由於儲存以 LUN(邏輯單元)的形式呈現,儲存系統會為它們分配 WWN。
這就像一個 MAC 地址,但對於磁碟來說:這個想法是,您實際上不應該在兩個不同的儲存上擁有相同的 WWN(除非您使用 SAN 儲存虛擬化硬體玩弄技巧)。
lsscsi -UU
還應該顯示 WWN,儘管前綴為naa.
而不是wwn-0x
.lsblk -o +WWN
也可以顯示。在
/dev/disk/by-id/
中,您應該注意前綴:您可以找到前綴為wwn-0x
和/或的磁碟 WWN 字元串scsi-3
,具體取決於udev
您的發行版使用的版本。GPT 分區方案存在寫入分區表時分配的全盤 UUID 的概念。您可以在例如
fdisk -l
輸出中看到它:# fdisk -l /dev/sda Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors Disk model: Samsung SSD 850 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 2B05CCE8-92BC-4308-B770-174CE63D044F <--- Here!
其他分區方案,如 MBR,不一定有任何適用的東西,即使有,也不一定是有效 UUID 的形式。
對於 MBR 分區方案,最接近的等效項是 Windows 磁碟簽名(實際 MBR 中的偏移量 0x1B8),但它只有四個字節長,並且不能保證存在於所有 MBR 分區的磁碟上。我認為它是在 Windows NT 中引入的。