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

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

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

在某些情况下,USB 驱动器错误地安装在/media而不是 上/cdrom,导致安装过程停止并显示以下消息:

[ 检测并挂载 CD-ROM ]

无法安装您的安装 CD-ROM。这可能意味着 CD-ROM 不在驱动器中。如果是这样,您可以插入它并重试。

我设法确定了一些发生此错误的情况:

  • 在 ML110 和 ML310 上:当硬盘驱动器为空时
  • 在 ML350 Gen9 上:即使硬盘已分区。

我认为它来自于debian-installer在安装的早期阶段,尝试从第一次驾驶然后/media将 USB 驱动器安装到 中/cdrom

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

对于手动干预不成问题的人来说,我找到了一种解决方法,我将在下面的答案中描述。但对于无人值守的安装,这不是解决方案。

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

答案1

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

  1. 打开另一个终端tty2tty3alt+F2alt+F3并按enter
  2. 从以下位置卸载 USB 驱动器/media

    umount /media/

  3. sdX在设备列表中识别 USB 驱动器( sdasdbsdc,...)

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

  4. 安装 USB 驱动器到/cdrom

    mount /dev/sdX /cdrom

  5. tty1按下返回主终端alt+F1,然后按下yes重试安装“CD-ROM”。

正如问题中所提到的,这是一种变通方法,而不是无人值守安装的解决方案。

答案2

我遇到了同样的问题,最后幸运地发现了一组可以让我自动执行此操作的幻灯片,并且有一个带有完整预置文件的代码库。https://github.com/uweplonus/adia-install/blob/master/initrd/preseed.cfg#L3

许多人建议使用preseed/early_command umount /media/*,但由于预播部分运行的时间与分区的时间不同,这种方法在相当长的一段时间内都没有起到作用。

正确的方法是将以下内容添加到 boot 命令引用的预置文件中的任何位置。

d-i 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;

相关内容