如何将大型动态 virtualbox VDI 映像转换为小型映像文件,以便将其作为便携式安装写入 USB 驱动器?

如何将大型动态 virtualbox VDI 映像转换为小型映像文件,以便将其作为便携式安装写入 USB 驱动器?

我有一个 Xubuntu 20.04 的 VirtualBox 动态映像,最大大小为 70 GB。映像的当前大小为 9 GB。

当我尝试使用以下命令将其转换为 .img 文件时 VBoxManage clonehd 'xubuntu.vdi' xubuntu.img --format RAW

图像大小不断增长,远远超出了 9 GB,可能会持续增长到 70 GB(当它超过 20 GB 时,我停止了该过程)。

如何将其转换为 9 GB 大小的图像,以便以后我可以将其作为便携式安装写入 16 GB USB 驱动器?

主机操作系统是 Kubuntu 20.04。

答案1

您必须首先使用以下命令压缩 VDI 磁盘文件:

VBoxManage modifymedium xubuntu.vdi --compact

8.22 VBoxManage 修改介质http://download.virtualbox.org/virtualbox/6.1.22/UserManual.pdf了解详情。

然后使用以下命令将其转换为 RAW:

qemu-img convert xubuntu.vdi -O raw xubuntu.raw

如果生成的 RAW 文件仍然很大,那么您必须使用 Gparted(在此处移动、调整分区大小)将其进一步缩小,命令如下:

sudo losetup -P /dev/loop137 xubuntu.raw
gparted /dev/loop137

使用 GParted 缩小分区后,您可以卸载该映像。

sudo losetup -d /dev/loop137

您可以通过运行来检查 RAW 图像内的实际分区fdisk -l xubuntu.raw

然后你可以缩小 RAW 图像以适合其分区:

qemu-img resize --shrink xubuntu.raw 9216M

最后在虚拟机中测试图像

kvm -m 2048 -drive file=xubuntu.raw,format=raw

然后使用 GNOME Disks 或 Etcher 或dd或将其写入 USB 驱动器ddrescue(我更喜欢它而不是普通的dd,因为它显示进度、时间估计和速度)。

然后,打开 Gparted,将 USB 驱动器中的分区扩展到最大可能的大小。否则,即使 USB 驱动器的大小为(假设)32 GB,根分区也会卡在(假设)9 GB,尽管驱动器上有可用空间,但您仍无法安装新程序。

注意:如果 USB 驱动器显示缺少 UUID 错误(因为 UUID 可能会发生变化),那么您可以使用 GRUB 菜单中的高级选项中的回退模式进行启动。

相关内容