具有多个分区标签冲突的磁盘的 Linux 的行为是什么?

具有多个分区标签冲突的磁盘的 Linux 的行为是什么?

我正在特定 SSD 设备上运行带有根文件系统的 CoreOS(例如/dev/sda),并且我想将 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——我当然可以更改它,但我的强迫症想要坚持使用中指定的相同值)文档)。

我计划更改 BIOS 设置以在启动时优先考虑/dev/sdb/dev/sda以便 Flatcar Linux 默认启动,但是这些冲突的部件标签会出现问题吗?我希望 udev (据我所知,它创建了这些符号链接)会看到符号/dev/disk/by-partlabel/ROOT链接已经存在(并引用 上的根分区/dev/sdb)并跳过为 创建符号链接/dev/sda,但这实际上是发生的情况吗?

答案1

我希望 udev (据我所知,它创建了这些符号链接)会看到 /dev/disk/by-partlabel/ROOT 符号链接已经存在(并引用 /dev/sdb 上的根分区)并跳过创建/dev/sda 的符号链接,但这实际上是发生的情况吗?

不幸的是,对于 udev,使用 udev 规则处理的最后一个设备获胜,因此通常 udevsda在处理时会首先创建覆盖它的符号链接sdb(但不能保证 udev 会按字母顺序处理磁盘,因此符号链接可以在每次启动后指向不同的设备)。

但是这些冲突的零件标签会出现问题吗

如果您不在某些系统配置中使用它们,则不可以。/etc/fstab默认情况下使用 UUID,因此应该不会有问题。

文件管理器(或实际上的 UDisk)通常使用标签(但主要是文件系统标签)作为驱动器的“好”名称,但不用于“活动”根文件系统,因此它也不应该成为问题。一般来说,标签不能保证是唯一的(并且您总是会看到重复的标签,例如所有金士顿 USB 闪存驱动器都将文件系统标记为“Kingston”),因此所有工具都应该预期有重复标签,如果需要唯一的东西,则应使用 UUID。

相关内容