我想从 USB 驱动器中完全无人值守地安装 Ubuntu Server 14.04ubuntu-14.04.2-server.iso
在/syslinux/txt.cfg
USB 驱动器中,我添加了以下部分
menu label ^Unattended Ubuntu Server installation
kernel /install/vmlinuz
append noprompt cdrom-detect/try-usb=true auto=true priority=critical url=http://website.com/preseed.cfg vga=788 initrd=/install/initrd.gz quiet --
但是当我尝试它时,甚至在这个菜单出现之前,我就必须选择一种语言(因此迫使我通过按 进行手动干预enter
)。
我找到了一个类似的问题它建议的地方echo en >syslinux/langlist
,但我仍然得到语言选择菜单(只有一项)。
我怎样才能避免这种干预?
答案1
执行 py4on 建议的操作只会缩短可用语言列表(达到只有一个元素的程度:)en
,但不会自动执行语言选择。它可能适用于旧版本的 Ubuntu,但要求是 Ubuntu Server 14.04。在 16.04 中,以下说明可能会更改为isolinux
和isolinux.cfg
而不是syslinux
取决于您创建媒体的方式。
为了避免在语言选择菜单中出现这种干预,应将 选项timeout
设置syslinux
为严格正值。在指定的超时时间后,将选择默认语言并syslinux
选择 的默认启动项。timeout
的参数syslinux
表示以十分之一秒为单位的时间,默认值为0
,对应于“无限超时”。
因此,可以设置为在继续使用默认值之前timeout 10
等待。放置参数的最佳位置是在 中。例如:syslinux
1 second
syslinux/syslinux.cfg
echo "timeout 10" >> syslinux/syslinux.cfg
为了使用与 不同的语言en
,我建议按照 py4on 的建议进行操作,仅在syslinux/langlist
文件中保留所选语言。例如:
echo "fr" > syslinux/langlist
参考:
答案2
在创建 ISO 之前,请按照下面链接中列出的步骤进行操作 - 我自己已经完成了此操作。对于预选语言,具体执行以下操作:
# cd /opt/ubuntuiso
# echo en >isolinux/lang
答案3
我一直在寻找一种方法来做同样的事情,直到现在才找到答案。
我只在 Ubuntu 16.04 上尝试过此操作,但我怀疑大多数 Ubuntu 版本的答案都是相同的 - 该/isolinux
文件夹可能/syslinux
适用于我怀疑的某些版本。
诀窍是修改该/isolinux/bootlogo
文件,该文件是未压缩的 cpio 存档。
您需要做的是将安装程序 CD 映像提取到一个目录(我将其称为 )${CDDIR}
。然后创建一个临时文件夹,我们将在其中存储bootlogo
文件内容,对其进行更改,然后:
将原始bootlogo文件解压到当前文件夹:
cat ${CDDIR}/isolinux/bootlogo | cpio --extract --make-directories --no-absolute-filenames
删除所有非英文文件:
ls *.hlp *.tr | grep -v "^en\." | xargs rm
仅在语言列表中保留“en”:
echo "en" > langlist
自动选择“en”作为语言选择:
echo "en" > lang
之后,我使用以下命令创建新的 bootlogo 文件:
find . | cpio -o > /tmp/bootlogo.new
之后 - 您可以将其复制/tmp/bootlogo.new
到提取 ISO 的目录,覆盖原始bootlogo
文件:
cp /tmp/bootlogo.new ${CDDIR}/isolinux/bootlogo
现在从${CDDIR}
内容重建您的图像,您不应该再获得语言选择。
我受到这篇文章的启发,它自定义了启动屏幕:https://askubuntu.com/questions/412707/splash-screen-before-ubiquity-install