具有多個分區標籤衝突的磁碟的 Linux 的行為是什麼?
我在特定的 SSD 設備(比如
/dev/sda
)上執行帶有根文件系統的 CoreOS,我想將 Flatcar Linux 安裝到不同的 SSD 設備(比如/dev/sdb
)上。我這樣做的原因是它/dev/sdb
更小,所以我想/dev/sda
變成一個僅用於外部儲存的設備。CoreOS 標記了根文件系統分區
ROOT
,(/dev/disk/by-partlabel/ROOT
即是指向根分區的符號連結/dev/sda
)。但是,當我將 Flatcar Linux 安裝到 上時/dev/sdb
,我會得到相同的結果(即,根分區/dev/sdb
也將被標記ROOT
——我當然可以更改它,但我的 OCD 想要堅持文件中指定的相同值)。我計劃更改 BIOS 設置以在啟動時優先考慮
/dev/sdb
,/dev/sda
以便 Flatcar Linux 預設啟動,但是這些衝突的元件標籤會有問題嗎?我希望 udev(據我所知,它創建這些符號連結)會看到/dev/disk/by-partlabel/ROOT
符號連結已經存在(並且指的是 上的根分區/dev/sdb
)並跳過為 創建符號連結/dev/sda
,但實際上會發生什麼嗎?
我希望 udev(據我所知創建這些符號連結)會看到 /dev/disk/by-partlabel/ROOT 符號連結已經存在(並且指的是 /dev/sdb 上的根分區)並跳過創建/dev/sda 的符號連結,但實際上會發生這種情況嗎?
不幸的是,udev 使用 udev 規則處理的最後一個設備獲勝,因此通常 udev 會
sda
在處理時首先創建符號連結以覆蓋它sdb
(但不能保證 udev 會按字母順序處理磁碟,因此符號連結可以在每次啟動後指向不同的設備)。但是這些衝突的零件標籤會有問題嗎
不,如果您不在某些系統配置中使用它們。
/etc/fstab
預設情況下使用 UUID,所以應該沒有問題。文件管理器(實際上是 UDisk)通常使用標籤(但主要是文件系統標籤)作為驅動器的“好”名稱,而不是“活動”根文件系統的名稱,因此它也不應該成為問題。一般來說,標籤不能保證是唯一的(並且您總是會看到重複的,例如所有金士頓 USB 快閃記憶體驅動器都將文件系統標記為“金士頓”),因此所有工具都應該期望重複並使用 UUID,如果他們想要獨特的東西。