在 Linux 中,可以透過 UUID 或標籤來掛載裝置(磁碟)。我使用 UUID 一段時間主要是因為我在 IRC 上發現了一個討論,即透過標籤安裝是一個非常糟糕的想法。
我不明白為什麼如果選擇一個非常獨特的標籤名稱(例如 6581_var、6502_root、8580_home、DFF180_usr、68030_boot、BFEC01_WD_Disk05),按標籤安裝將是一個壞主意。 ETC.... ;)
所以我的問題是:
- 為什麼總是使用 UUID 掛載是個好主意?
- 為什麼總是使用 UUID 掛載是一個壞主意?
- 為什麼總是用標籤安裝是個好主意?
- 為什麼總是使用 LABEL 來安裝是一個壞主意?
- 對於使用 systemd 的系統,選擇其中一個有什麼好處嗎?
- 什麼更有可能被損壞。標籤或 UUID
- 例如,如果磁碟進行韌體升級,是否會更改 UUID?
答案1
答案
- Q1-4: 它不是。正確的工具應該用於特定的目的。見下文。
- Q5:使用 systemd 的系統已經足夠開發,沒有顯示出任何差異。
- Q6:一般情況下 - 兩者都不是。它們都儲存在同一位置(格式化標頭等)並透過相同的機制進行更改。
- Q7:不行。
實際上
假設我們正在討論分割區格式化(例如檔案系統)通用唯一識別符和標籤。
還有分區UUID和Label——通常稱為部分UUID和零件標籤- 如果磁碟分割區方案支援它們:例如GPT,但不支援MBR。它們還可以用於識別分區,並且在某些情況下(見下文),可能是唯一的方法。
兩個都通用唯一識別符和標籤使用特定於所使用的分割區格式化的工具進行管理:
- 外部2/3/4:
tune2fs
- 胖的:
mlabel
- 交換:
swaplabel
- 路克斯:
cryptsetup luksUUID
- ……
請注意,兩者通用唯一識別符和標籤僅當分割區格式化存在(並且受您的核心支援)且格式化支援時才存在通用唯一識別符和/或標籤屬性。例如,使用不含 LUKS 擴充的 dm-crypt 加密的分割區不具有通用唯一識別符和標籤因為它不使用任何標頭(但加密容器內的檔案系統可以同時擁有它們)。 FAT 系列檔案系統不支援通用唯一識別符(他們有序號),但支持標籤。
使用 Label 和 UUID 的主要差異是:
- 通用唯一識別符用於較低級別
- 自動建立(始終存在)
- 自動管理
- 保證是唯一的(在大多數情況下)
- 對人類不友善
- 標籤是為了更高層次
- 應該明確創建
- 手動管理
- 人性化(易記憶和輸入)
因此,如果您不打算管理分割區標籤,那麼選擇是顯而易見的 - UUID。如果您的系統配置需要更大的靈活性和/或可讀性 - 您可以使用標籤。
例如,對於克隆或自動管理使用標籤的系統可能更合適:系統複製後,UUID 可能會變更。如果不是 ext2/3/4(取決於複製方法),那麼 LUKS 加密分割區肯定會發生變化(我們luksFormat
至少需要建立新的加密金鑰)。所以使用標籤在這種情況下可能會很方便。
Udev 規則也將可移動媒體安裝到/media/<user>/<label>
if標籤退出。如果沒有 -/media/<user>/<UUID>
則使用。