无人值守安装初期未检测到硬盘

无人值守安装初期未检测到硬盘

我正在使用 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*,USB 驱动器会接管/dev/sda。这只是一个几步稍后硬盘会出现在…中/dev/sdb。因此,文件中的规则preseed不再有效,并partman损坏了我的 USB 驱动器。

这个令人恼火的事实引发了两个问题:

  1. 为什么在安装过程开始时主硬盘没有显示在设备中?
  2. 我怎样才能强制主硬盘出现(并让其占用/dev/sda),或者如果我不能,我怎样才能确定地找出/dev/sdX主硬盘位于哪个位置。

我尝试添加dmraid=true内核选项,但没有成功。我还尝试添加pci=conf1(发现这里),但没有成功。

答案1

自从从旧的 CCISS 驱动程序迁移到 HPSA 驱动程序以来,HP Smart Array 控制器现在利用了普通的 SCSI 块设备子系统。因此,设备命名方案是/dev/sdX

由于 USB 设备存在,因此您使用 USB 密钥会改变设备枚举RAID 控制器(您正在从其启动)。因此,USB 密钥变为/dev/sda,第一个 HP Smart Array RAID 控制器为/dev/sdb

现代 Linux 操作系统使用分区标签或 UUID,因此设备名称在首次启动时并不重要(移除 USB 密钥后)。

您的平台之间的差异可能在于 ML110 和 ML310(您没有指定代数)没有使用智能阵列控制器,或者具有不同类别的 RAID 设备。

ML350有一个合适的智能阵列控制器,因此您看到的行为是可以预料的。

如果可能的话,请使用不同的预置文件或尝试不同的部署方法。

答案2

即使在 中presed/early_command尚未检测到硬盘,但我发现在 中partman/early_command它可以被检测到!

因此,我创建了一个命令,使用正确的设备名称设置partman-auto/disk参数,并在当时进行检查。debian-installer

有关该命令的更多信息,请参阅使用 preseed 进行无人值守安装 - 为 partman-auto 提供自定义设备

相关内容