Ubuntu 20.04.3 服务器自动安装用户数据启动顺序 efibootmgr 不会改变

Ubuntu 20.04.3 服务器自动安装用户数据启动顺序 efibootmgr 不会改变

实际上,我在运行 Ubuntu 20.04 Server 时遇到一个问题,如果我们自定义用户数据文件,我只会通过安装 Ubuntu 20.04 收到提示。

案件:

我们想使用 Packer 为 qemu vm 构建一个 Ubuntu 20.04 映像。标准配置工作正常,但如果我们在用户数据文件中更改某些内容并重新启动构建,我们会收到安装提示,我们必须选择用户语言等。

解决方案:

我们想更改 efibootmgr 顺序,因为我们的安装循环运行,在成功安装 ubuntu 后,从 iso 而不是从磁盘启动机器。安装再次运行并出现错误。我正在测试通过 late_command 或 user-data -> runcmd 部分编辑命令,但如果我添加该行,ubuntu 安装程序找不到用户数据文件并开始使用提示进行安装。

我的用户数据文件:

#cloud-config
autoinstall:
  version: 1
  early-commands:
    - systemctl stop ssh
  locale: en_US
  apt:
    geoip: true
  keyboard:
    layout: en
    variant: us
  network:
    network:
      version: 2
      ethernets:
        ens33:
          dhcp4: true
  storage:
    layout:
      name: lvm
  identity:
    hostname: ubuntu
    username: ubuntu
    # pass is ubuntu
    password: #########
  ssh:
    install-server: yes
    allow-pw: true
  packages:
    - vim
    - tmux
    - curl
  user-data:
    disable_root: false
  late-commands:
    - 'sed -i "s/dhcp4: true/&\n      dhcp-identifier: mac/" /target/etc/netplan/00-installer-config.yaml'
    - echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/ubuntu
    - echo 'test123' > /target/root/test.txt

如果我- curtin in-target --target=/target -- efibootmgr -o 0007通过后期命令添加,安装程序将找不到用户数据

如果我在用户数据部分下添加,则安装程序找不到 runcmd [efibootmgr -o 0007]

你有什么想法吗?如果你需要更多信息,请问我。

答案1

默认情况下,科廷重新排序 UEFI BootOrder,将 BootCurrent 放在第一位“。这就是为什么 ISO 启动时您会陷入循环的原因。这也是 PXE 安装的一个问题。

reorder_uefi已添加配置选项科廷可以禁用此功能。您可以将其添加到文件中autoinstall,它将传递给科廷。但是,你可以不是如果您想使用该设置,请使用layout下面的选项。使用该选项时,其他配置将被忽略。storagereorder_uefilayoutstorage

我曾使用过autoinstall类似下面的文件。

#cloud-config
autoinstall:
...
  storage:
    grub:
      reorder_uefi: False
    config:
    - {ptable: gpt, path: /dev/sda, preserve: false, name: '', grub_device: false, type: disk, id: disk-sda}
...

也可以看看

答案2

我能够通过告诉它首先从 HD 启动,然后从 cdrom 启动来解决我的 virsh xml 文件中的循环问题。第一次启动时 HD 是空的,因此我们启动 iso 并进行安装,但下次启动时 HD 有一个操作系统,因此它会从操作系统启动。这是我使用 virsh create /path/to/xml 加载的 XML 文件的相关部分

  <os>
    <type arch='x86_64' machine='pc-q35-4.2'>hvm</type>
    <boot dev='hd'/>
    <boot dev='cdrom'/>
  </os>

我还遇到了修改用户数据时卡在语言选择屏幕的问题,解决方法如下: https://github.com/covertsh/ubuntu-autoinstall-generator/pull/32

相关内容