我正在使用不同types的服务器上的USB驱动器(HP Proliant ML110,ML310,ML350)进行Ubuntu-14.04服务器的无人值守安装。
在某些情况下,USB驱动器不正确地安装在/media而不是/cdrom ,从而使安装过程停止,并显示以下消息:
[检测并安装CD-ROM]
您的安装CD-ROM无法安装。 这可能意味着CD-ROM不在驱动器中。 如果是这样,你可以再试一次。
我设法找出发生此错误的一些情况:
我认为它来自debian-installer ,在debian-installer的早期阶段,尝试从第一个驱动器安装分区/media 。 然后将USB驱动器安装到/cdrom 。
在上述情况下,在安装过程中稍后会检测到硬盘驱动器,使USB驱动器成为第一个驱动器 ,因此将其安装在/media而不是在/cdrom 。
对于手动干预不成问题的人,我find了一个解决方法,我将在下面的答案中进行描述。 但对于无人值守安装,这不是一个解决scheme。
我们可以强制安装程序将USB驱动器安装在特定的mont-point上吗?
对于手动干预不成问题的人来说,这是简单的程序。
alt+F2或alt+F3打开另一个terminaltty2或tty3 ,然后按enter 从/media卸载USB驱动器:
umount /media/
识别设备列表中的USB驱动器sdX ( sda , sdb , sdc ,…)
ls -l /sys/block/sd* | grep usb
将USB驱动器挂载到/cdrom
mount /dev/sdX /cdrom
按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;