我正在使用 USB 驱动器和preseed
不同类型的服务器(HP Proliant ML110、ML310、ML350)上的文件进行 Ubuntu-14.04-server 的无人值守安装。该preseed
文件包含多个规则,包括partman-auto
自动对服务器硬盘进行(自定义)分区的配置。
在服务器 ML110 和 ML310 上,在安装过程开始时(
partman
启动前),硬盘驱动器在/dev/sda
,USB 驱动器需要/dev/sdb
. 因此,我d-i partman-auto/disk string /dev/sda
在我的preseed
文件中指定,并将分区应用于服务器的硬盘驱动器。一切正常。但是在服务器 ML350 上,在安装过程开始时,主硬盘驱动器不存在于
/dev/sd*
/dev/sda
. 仅仅几步之后,硬盘就出现了……在/dev/sdb
. 因此,我在preseed
文件中的规则不再有效,并且partman
搞砸了我的 USB 驱动器。
这个非常烦人的事实引发了两个问题:
- 为什么在安装过程开始时设备中没有显示主硬盘?
- 我怎么能强制主硬盘出现(并让它占据
/dev/sda
)或者如果我不能,我怎么能确定地找出/dev/sdX
主硬盘将在哪个位置。
我试图添加dmraid=true
内核选项,它没有工作。我也尝试添加pci=conf1
(在此处找到)但没有成功。
自从从旧的 CCISS 驱动程序迁移到 HPSA 驱动程序后,HP 智能阵列控制器现在利用了普通的 SCSI 块设备子系统。因此,设备命名方案是
/dev/sdX
.您使用 USB 密钥会更改设备枚举,因为 USB 设备存在于 RAID 控制器之前(您正在从它启动)。所以 USB 密钥变成
/dev/sda
了第一个 HP Smart Array RAID 控制器/dev/sdb
。现代 Linux 操作系统使用分区标签或 UUID,因此设备名称在首次启动时(移除 USB 密钥后)无关紧要。
您的平台之间的差异可能是 ML110 和 ML310(您未指定代)未使用 Smart Array 控制器,或者具有不同类别的 RAID 设备。
ML350确实有一个合适的 Smart Array 控制器,因此您看到的行为是意料之中的。
使用不同的预置文件,或尽可能尝试不同的部署方法。
即使
presed/early_command
尚未检测到硬盘驱动器,我发现在partman/early_command
,它是!因此,我做了一个命令,用正确的设备名称设置
partman-auto/disk
参数,当时检查。debian-installer
有关该命令的更多信息,请参阅使用 preseed 进行无人值守安装 - 为 partman-auto 提供自定义设备