VBoxManage 无人值守 ubuntu 实时服务器

VBoxManage 无人值守 ubuntu 实时服务器

我尝试无人值守安装 ubuntu-18.04.4-live-server 版本,但它仍然提示欢迎语言屏幕

欢迎语言屏幕

aux_base_path="$(mktemp -d --tmpdir unattended-install-XXXXX)"
VBoxManage unattended install --auxiliary-base-path "$aux_base_path"/ myvm --install-additions --user=testuser --password=testpw --country=DE --time-zone=EAT --locale=en_US --language=en-US  --hostname=test.local --iso=/home/.../ubuntu_server.iso
sed -i 's/^default vesa.*/default install/' "$aux_base_path"/isolinux-isolinux.cfg
VBoxManage startvm myvm

我可以看到,正如预期的那样,从到isolinux-isolinux.cfg进行了修改,并且包含正确的信息。/tmp/unattended-install-hashvesainstallpreseed.cfg

答案1

乌本托 20.04

  • 使用自动安装
  • 补丁isolinux-txt.cfg以便使用自动安装
  • 构建autoinstall.yaml并通过 http 提供,user-data并且为空meta-data(根据 Ubuntu 自动安装指南)

样本修补isolinux-txt.cfg

default live
label live
  menu label ^Install Ubuntu Server
  kernel /casper/vmlinuz
  append   initrd=/casper/initrd quiet autoinstall ds=nocloud-net;s=http://192.168.1.2:3003/aux-mcsbeta/ 
label live-nomodeset
  menu label ^Install Ubuntu Server (safe graphics)
  kernel /casper/vmlinuz
  append   initrd=/casper/initrd quiet autoinstall ds=nocloud-net;s=http://192.168.1.2:3003/aux-mcsbeta/ 
label memtest
  menu label Test ^memory
  kernel /install/mt86plus
label hd
  menu label ^Boot from first hard disk
  localboot 0x80

样品自动install.yaml

#cloud-config
autoinstall:
  identity:
    hostname: mcsbeta
    password: $6$0DEwl5R1ymqg6L4N$LjO4rO/NWEkOk9A5aBoOk17m07fXedRdkO.gs6HA6xekTmgv0fpbNRWukUhUP.fVnSP/XD8muFzZVqtTTkBgl.
    realname: ''
    username: mcs
  keyboard:
    layout: us
    variant: ''
  late-commands:
  - 'echo "mcs ALL=(ALL) NOPASSWD: ALL" > /target/etc/sudoers.d/mcs'
  - chmod 440 /target/etc/sudoers.d/mcs
  - apt-get -y install linux-headers-$(uname -r)
  - cp /media/cdrom/vboxadditions/VBoxLinuxAdditions.run /target/root
  - curtin in-target -t /target -- /bin/bash /root/VBoxLinuxAdditions.run --nox11;
    echo 'vboxadditions installed'
  locale: en_US
  packages:
  - avahi-daemon
  - avahi-autoipd
  - build-essential
  ssh:
    allow-pw: true
    authorized-keys: []
    install-server: true
  storage:
    config:
    - grub_device: true
      id: disk-sda
      path: /dev/sda
      ptable: gpt
      type: disk
      wipe: superblock-recursive
    - device: disk-sda
      flag: bios_grub
      id: partition-0
      number: 1
      size: 1048576
      type: partition
    - device: disk-sda
      id: partition-1
      number: 2
      size: -1
      type: partition
      wipe: superblock
    - fstype: ext4
      id: format-0
      type: format
      volume: partition-1
    - device: format-0
      id: mount-0
      path: /
      type: mount
  version: 1

Ubuntu < 20.04

  • 使用替代图像。我还没有找到让 casper / Subiquity (live) 无人值守地与 VBoX 一起工作的方法。例如19.10 Debian作品,19.10-live casper/subiquity总是会提示输入答案。除了构建自定义 ISO 之外,我还没有找到有关如何将 answers.yaml 发送到 Subiquity 安装程序的参考。
  • 我发现preseed.cfg需要修补。除非在 late-command 中修补,否则较新的内核会导致重启时出现问题。此外,还要可靠地安装 VBoX 附加组件。late-command 示例:
d-i preseed/late_command string \
    echo 'mcs ALL=(ALL) NOPASSWD: ALL' > /target/etc/sudoers.d/mcs ; \
    in-target chmod 440 /etc/sudoers.d/mcs ; \
    in-target update-initramfs -c -k 5.3.0-51-generic ; \
    in-target update-grub ; \
    in-target apt-get install -y avahi-daemon avahi-autoipd ; \
    in-target apt-get -y install build-essential linux-headers-$(uname -r) ; \
    in-target /bin/bash /media/cdrom/vboxadditions/VBoxLinuxAdditions.run --nox11 ; \
    in-target /bin/bash -c "udevadm constrol --reload-rules" ; \
    in-target /bin/bash -c "udevadm trigger" ; \
    in-target usermod -a -G vboxsf "mcs" ; \
    in-target apt-get install -y openssh-server

对于我的设置,我使用 python 代码来控制获取 ISO、将命令行参数化为 VBoXManage、构建和修补配置。完全无人值守 - 但识别 < 20.04 仅适用于使用较旧的 di 基础设施而非 Subiquity 的替代版本。

相关内容