Partition

具有多個分區標籤衝突的磁碟的 Linux 的行為是什麼?

  • November 21, 2020

我在特定的 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,如果他們想要獨特的東西。

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