我正在尝试在 Hyper-V 上构建 Ubuntu 打包程序模板作为第二代虚拟机,这意味着设置无人值守安装。根据我从 Chef 的便当,他们使用的大多数设置似乎都可以在 Hyper-V 上顺利运行。
以下是我使用的确切启动命令:
...
"boot_command": [
"c<wait>",
"linuxefi<wait>",
" /install/vmlinuz<wait>",
" auto<wait>",
" console-setup/ask_detect=false<wait>",
" console-setup/layoutcode=us<wait>",
" console-setup/modelcode=pc105<wait>",
" debconf/frontend=noninteractive<wait>",
" debian-installer=en_US<wait>",
" fb=false<wait>",
" kbd-chooser/method=us<wait>",
" keyboard-configuration/layout=USA<wait>",
" keyboard-configuration/variant=USA<wait>",
" locale=en_US<wait>",
" netcfg/get_domain=vm<wait>",
" netcfg/get_hostname=vagrant<wait>",
" grub-installer/bootdev=/dev/sda<wait>",
" preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ubuntu-16.10/preseed.cfg<wait>",
" -- <wait>",
"<enter><wait>",
"initrdefi<wait>",
" /install/initrd.gz<wait>",
"<enter><wait>",
"boot<wait>",
"<enter><wait>"
],
...
(我尝试了linux
和linuxefi
/initrd
和initrdefi
这两个命令,结果都相同。Fedora 需要变efi
体,因此我将其保留在那里以保持一致性。)
实际的预置文件与 Bento 提供的文件完全相同。
但是,我在磁盘分区过程中遇到了问题。完整的对话框是
此机器的固件已在 UEFI 模式下启动安装程序,但似乎可能已使用“BIOS 兼容模式”安装了现有操作系统。如果您继续在 UEFI 模式下安装 Debian,则以后可能很难将机器重新启动到任何 BIOS 模式操作系统。
如果您希望以 EUFI 模式安装,并且不关心是否保留启动现有系统之一的能力,则可以选择在此处强制执行。如果您希望保留启动现有操作系统的选项,则应选择不在此处强制 UEFI 安装。
强制 UEFI 安装?
我对此感到非常困惑,因为首先,该驱动器应该是完全空的,因为它是通过 Hyper-V 创建的。
有没有办法预先设置或设置该值的启动选项true
,或者更好的是,配置 Hyper-V 安装以使其根本不出现?
答案1
当我在处理 gen2 模板时,这个解决方案对我有用 https://github.com/taliesins/packer-baseboxes/blob/master/hyperv-ubuntu-16.04.json