Preseed在Ubuntu 14.04上不能自动选择网络接口;自动安装需要人工输入。

我正在尝试通过PXE设置一个无人值守的Ubuntu Server 14.04安装。

最初我尝试使用Kickstart。这个方法基本可行,但是分区管理器需要用户确认,所以不能完全无人值守安装(也就是说,在安装过程中我需要确认是否可以重新分区磁盘)。

一位同事建议我使用Preseed来实现更精细的控制。不幸的是,目前Preseed安装在choose_interface部分卡住了。

/tftpboot/pxelinux.cfg/default中的引导指令:

KERNEL images/ubuntu_server_1404/install/netboot/ubuntu-installer/amd64/linux
append auto=true vga=normal initrd=images/ubuntu_server_1404/install/netboot/ubuntu-installer/amd64/initrd.gz url=http://myNAS/pxe/preseed.cfg quiet --

能够执行前几行(例如语言/键盘选择)
d-i debian-installer/locale string en_US
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
d-i keyboard-configuration/layoutcode string us

但是choose_interface不会自动工作。

enter image description here

我已经尝试过指定网络接口。
d-i netcfg/choose_interface select em1

自动选择功能:
d-i netcfg/choose_interface select auto

这两个设置都不起作用:安装需要人工输入才能继续进行。
你能看出我做错了什么吗?
2个回答

这是(或曾经是?)一个已报告的bug。解决方案是尝试将netcfg/choose_interface= YourInterface作为启动选项传递给内核。

@Ron,你能否解释一下如何通过编辑你的答案来将“netcfg/choose_interface= YourInterface”作为引导选项传递给内核? - αғsнιη
1在你上面展示的pxe配置文件中,在append行的末尾添加netcfg/choose_interface=(在--之前)。 - mdd
1看起来这个错误报告被关闭了,因为如果你通过网络加载预设文件配置,就无法设置界面选项。 - Ben Creasy
你可以链式加载多个预置文件,因此你可以包含一个最小的预置文件,其中只包含足够启动所需的内容,然后使用预置选项从网络中加载另一个预置文件。当网络可用时,这个预置文件将被执行并合并和覆盖第一个预置文件的选项。 - dragon788

根据这篇文章,当使用preseed时,您可以在append行中编辑pxelinux.cfg以解决多个接口的问题。
按照接口名称。
append initrd=/images/Ubuntu/initrd.gz ksdevice=bootif lang= interface=eth1

或者使用MAC地址
append initrd=/images/Ubuntu/initrd.gz ksdevice=bootif lang= interface=90:e2:ba:2e:b0:70