我正在特定 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。