我正在尝试了解如何自定义预置文件以自动安装 Ubuntu 16.04 Server。为了进行测试,我在安装程序启动时键入 ESC、ESC、ENTER 以进入“boot:”提示符。当我输入 boot 命令时(该命令很长),每 80 个字符就会插入一个换行符。而且 boot 命令似乎没有执行我想要的操作。
[编辑:我很确定安装程序插入的换行符是用来转移注意力的。请参阅我的回答,了解我是如何做到这一点的。]
如果我对 14.04.04 Server .iso 执行完全相同的操作,则不会出现换行符,并且安装将按预期进行。IE 从预置文件中获取值。
我已经手动和使用 Packer 完成了这些操作,得到了相同的结果:使用 14.04 .iso 安装可以成功,而使用 16.04 .iso 安装时会出现额外的换行符,因此无法成功安装。
顺便说一下,我正在 Ubuntu 16.04 桌面上的 VirtualBox VM 中安装。我还在 Ubuntu 14.04 主机上使用 QEMU VM 进行了尝试,并观察到了相同的行为。
答案1
16.04 安装程序似乎有一个新的命令行方式来输入安装程序启动参数。它是屏幕底部附近的一行。当您在安装程序选项屏幕上时,您可以按 F6 编辑此行,从“安装 Ubuntu 服务器”开始。使用此行允许您输入一长串启动参数。它会水平滚动。
因此,如果您使用 Packer,那么template.json
您在 Internet 上找到的适用于 Serv 14.04 的示例文件将无法使用。这是我使用的“builders”部分,它可以正常工作:
"builders": [{
"type": "virtualbox-iso",
"boot_command": [
"<enter><f6><esc>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs>",
"<bs><bs><bs>",
"auto preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ",
"debian-installer=en_CA locale=en_CA kbd-chooser/method=us ",
"hostname=rails-5-jade ",
"fb=false debconf/frontend=noninteractive ",
"keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ",
"keyboard-configuration/variant=USA console-setup/ask_detect=false ",
"vga=788 initrd=/install/initrd.gz quiet --- ",
"<enter>"
],
"boot_wait": "4s",
"guest_os_type": "Ubuntu_64",
"http_directory": "http",
"iso_checksum": "23e97cd5d4145d4105fbf29878534049",
"iso_checksum_type": "md5",
"iso_url": "http://releases.ubuntu.com/16.04/ubuntu-16.04-server-amd64.iso",
"ssh_username": "vagrant",
"ssh_password": "vagrant",
"ssh_wait_timeout": "10000s",
"disk_size": "8000",
"shutdown_command": "echo 'vagrant' | sudo -S shutdown -P now",
"vboxmanage": [
[
"modifyvm",
"{{.Name}}",
"--memory",
"512"
],
[
"modifyvm",
"{{.Name}}",
"--cpus",
"1"
]
]
}],
您还可以查看我在 Github 上的一个项目:https://github.com/lcreid/rails-5-jade。