我即将通过使用 preseed 机制(添加到 initrd 的 preseed 文件)来自动安装 Debian。要配置的计算机有多个 SATA 磁盘。
我想在预种子文件中准确指定要放在哪个磁盘上的分区。当然,这可以通过指定相关的设备文件(sda、sdb、sdc)来实现。但是,如果我理解正确的话,磁盘和设备文件之间的关联通常不是先验定义的,在某些情况下甚至可能在重新启动后发生变化。我特别担心 USB 棒或其他便携式硬盘驱动器。我自己也遇到过这样的情况,当 USB 棒在安装过程中从那个棒上安装时是 /dev/sda。
那么,每次使用预置的 ISO 映像进行安装时,如何确保正确的分区放置在正确的磁盘上?
根据@MarkPlotnick 的评论总结答案:关键是要了解,有多个设备文件代表同一个驱动器。最著名的是 /dev/sda、/dev/sdb 等,其中的顺序没有很好地定义。但是,也可以使用 /dev/disk/by-id 中的设备文件来引用驱动器。这些设备文件与磁盘的序列号绑定,因此定义明确且可重复。事实证明,我可以使用 preseed 中的这些设备文件来替代 /dev/sda 等。