硬盘驱动器在无人值守安装的早期阶段未被检测到

我正在使用USB驱动器和不同types的服务器(HP Proliant ML110,ML310,ML350)上的preseed文件进行Ubuntu-14.04服务器的无人参与安装。 这个preseed文件包含多个规则,包括partman-auto的configuration,可以自动执行服务器硬盘的(自定义)分区。

  • 在服务器ML110和ML310上,在安装过程开始(在partman启动之前),硬盘驱动器位于/dev/sda ,USB驱动器使用/dev/sdb 。 因此,我在preseed文件中指定了di partman-auto/disk string /dev/sda ,并将分区应用于服务器的硬盘上。 一切工作正常。

  • 但在服务器ML350上,在安装过程开始时,主硬盘不在/dev/sd* ,USB驱动器使用/dev/sda 。 只有几步之后,硬盘显示在/dev/sdb 。 因此,我的规则在preseed文件不再有效和partman拧螺丝我的USB驱动器。

这个非常恼人的事实提出了两个问题:

  1. 为什么在安装过程开始时,主硬盘没有显示在设备上?
  2. 我怎么能强制显示主硬盘驱动器(并使其采取/dev/sda ),或者如果我不能,我怎么能确定哪个/dev/sdX主硬盘驱动器将是。

我试图在内核选项中添加dmraid=true ,但没有奏效。 我也尝试添加pci=conf1 (在这里find),但没有成功。

自从将旧的CCISS驱动程序迁移到HPSA驱动程序以来,HP Smart Array控制器现在使用正常的SCSI块设备子系统。 因此,设备命名scheme是/dev/sdX

您使用USB密钥会改变设备枚举,因为USB设备在RAID控制器之前 (您正在启动)。 因此USB密钥成为/dev/sda ,而第一个HP Smart Array RAID控制器是/dev/sdb

现代Linux操作系统使用分区标签或UUID,因此设备名称在第一次启动时无关紧要( 在删除USB密钥之后 )。

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

ML350 确实有一个适当的智能arrays控制器,所以你所看到的行为是可以预料的。

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

即使在presed/early_command硬盘还没有被发现,我发现在partman/early_command ,这是!

因此,我做了一个命令,用正确的设备名称debian-installerpartman-auto/disk参数,在那个时候检查。

有关该commad的更多信息,请参阅使用预置的无人参与安装 – 将自定义设备设置为partman-auto