在 Hyper-V 安装中预先植入或修复“强制 UEFI 安装”?

在 Hyper-V 安装中预先植入或修复“强制 UEFI 安装”?

我正在尝试在 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>"
],
...

(我尝试了linuxlinuxefi/initrdinitrdefi这两个命令,结果都相同。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

相关内容