自动安装 Ubuntu 和 VirtualBox 的冒险

自动安装 Ubuntu 和 VirtualBox 的冒险

我一直在 VirtualBox 6.1 下使用 VBoxManage 实用程序自动安装 Ubuntu 18.04.4 LTS 桌面,其中包括对加密系统磁盘的要求。

我遇到了一些困难,解决它们就像是一次冒险……

  1. VirtualBox 的本机加密未在 VBoxManage 中实现,因此必须使用操作系统加密。
  2. 如果您想要加密(“di partman-auto/method string crypto”)安装,请指定“--no-install-additions”以从构建中排除 VirtualBox Additions 的安装;看起来安装(debian_postinstall.sh)会干扰 init ramdisk 的创建,并且它将无法工作。
  3. 如果您不介意在安装之前擦除虚拟机的虚拟磁盘,那么sed可以运行命令来禁用它(如果您将“erase_disks”/“erase_data”指令设置为 false 并观察构建,您可能会看到磁盘被清除):

    d-i partman/early_command string sed -i 's:-f $id/skip_erase:-d $id:g' /lib/partman/lib/crypto-base.sh
    
  4. 所有键盘处理示例都显示它被设置为“us”...原因是只有“us”有效,如果你选择任何其他布局,你都会得到“us”!我找到了这个修复方法:

    enter code d-i preseed/late_command_string \
    in-target /bin/sed -i 's/XKBLAYOUT=.*/XKBLAYOUT="gb,us"/' 
    /etc/default/keyboard ;\
    in-target /usr/sbin/dpkg-reconfigure -fnoninteractive keyboard- 
    configurationhere
    
  5. (这是一个很好的例子!)在指定磁盘布局的“配方”时(例如,sda1=boot、sda2=extended、sda5=扩展分区上的 LVM),要特别注意明显的拼写错误,即“in_vg”和后面的“{”之间的一个空格 - 该空间是必需的,如果没有它,构建将失败,并说没有任何物理磁盘!

        enter cd-i partman-auto-lvm/new_vg_name string ubuntu-vg
    d-i partman-auto/choose_recipe select root-disk
    d-i partman-auto/expert_recipe string root-disk ::  \
        1024 1024 1024 ext4                         \
            $primary{ } $bootable{ }                \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ /boot }                     \
            .                                       \
        10240 10240 -1 ext4                         \
            $lvmok{ }                               \
            in_vg { ubuntu-vg } lv_name{ lv_root }   \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ / }                         \
            .                                       \
        1024 1024 100% linux-swap                   \
            $lvmok{ }                               \
            in_vg { ubuntu-vg } lv_name{ swap_1 }    \
            method{ swap } format{ }                \
            .
    
  6. 如果您未指定 root 密码,则操作系统将安装时您的指定用户将获得 Sudo 权限。如果您指定了 root 密码,则指定用户将不会获得 Sudo。

我花了生命中的几个小时来发现上述内容,而这些时间是无法挽回的;希望这几条评论能让你更有效地利用这些时间。

还有谁还有什么要补充吗?

相关内容