从USB驱动器无人值守安装Ubuntu – 未正确安装

我正在使用不同types的服务器上的USB驱动器(HP Proliant ML110,ML310,ML350)进行Ubuntu-14.04服务器的无人值守安装。

在某些情况下,USB驱动器不正确地安装在/media而不是/cdrom ,从而使安装过程停止,并显示以下消息:

[检测并安装CD-ROM]

您的安装CD-ROM无法安装。 这可能意味着CD-ROM不在驱动器中。 如果是这样,你可以再试一次。

我设法找出发生此错误的一些情况:

  • 在ML110和ML310上:当硬盘空了
  • 在ML350 Gen9上:即使硬盘是分区的。

我认为它来自debian-installer ,在debian-installer的早期阶段,尝试从第一个驱动器安装分区/media 。 然后将USB驱动器安装到/cdrom

在上述情况下,在安装过程中稍后会检测到硬盘驱动器,使USB驱动器成为第一个驱动器 ,因此将其安装在/media而不是在/cdrom

对于手动干预不成问题的人,我find了一个解决方法,我将在下面的答案中进行描述。 但对于无人值守安装,这不是一个解决scheme。

我们可以强制安装程序将USB驱动器安装在特定的mont-point上吗?

对于手动干预不成问题的人来说,这是简单的程序。

  1. alt+F2alt+F3打开另一个terminaltty2tty3 ,然后按enter
  2. /media卸载USB驱动器:

    umount /media/

  3. 识别设备列表中的USB驱动器sdXsdasdbsdc ,…)

    ls -l /sys/block/sd* | grep usb

  4. 将USB驱动器挂载到/cdrom

    mount /dev/sdX /cdrom

  5. alt+F1返回到主terminaltty1 ,然后按yes重试安装“CD-ROM”。

正如问题中所提到的,这是一种解决方法,它不是无人参与安装的解决scheme。

我遇到了同样的问题,最后幸运地发生了一系列的幻灯片,让我自动执行此操作,还有一个附带的代码库和完整的预先定义的文件。 https://github.com/uweplonus/adia-install/blob/master/initrd/preseed.cfg#L3

许多人build议使用preseed/early_command umount /media/*但是由于预定部分运行的时间与分区的时间相比,这一段时间没有工作。

执行此操作的正确方法是在bootse命令所引用的预置文件中的任意位置添加以下内容。

di partman/early_command string \ USBDEV=$(list-devices usb-partition | sed "s/\(.*\)./\1/");\ BOOTDEV=$(list-devices disk | grep -v "$USBDEV" | head -1);\ debconf-set partman-auto/disk $BOOTDEV;\ debconf-set grub-installer/bootdev $BOOTDEV; \ umount /media;