我一直在 VirtualBox 6.1 下使用 VBoxManage 实用程序自动安装 Ubuntu 18.04.4 LTS 桌面,其中包括对加密系统磁盘的要求。
我遇到了一些困难,解决它们就像是一次冒险……
- VirtualBox 的本机加密未在 VBoxManage 中实现,因此必须使用操作系统加密。
- 如果您想要加密(“di partman-auto/method string crypto”)安装,请指定“--no-install-additions”以从构建中排除 VirtualBox Additions 的安装;看起来安装(debian_postinstall.sh)会干扰 init ramdisk 的创建,并且它将无法工作。
如果您不介意在安装之前擦除虚拟机的虚拟磁盘,那么
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
所有键盘处理示例都显示它被设置为“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
(这是一个很好的例子!)在指定磁盘布局的“配方”时(例如,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{ } \ .
如果您未指定 root 密码,则操作系统将安装时您的指定用户将获得 Sudo 权限。如果您指定了 root 密码,则指定用户将不会获得 Sudo。
我花了生命中的几个小时来发现上述内容,而这些时间是无法挽回的;希望这几条评论能让你更有效地利用这些时间。
还有谁还有什么要补充吗?