![VirtualBox - 将分区的 VDI 拆分为单独的 VDI](https://linux22.com/image/1328211/VirtualBox%20-%20%E5%B0%86%E5%88%86%E5%8C%BA%E7%9A%84%20VDI%20%E6%8B%86%E5%88%86%E4%B8%BA%E5%8D%95%E7%8B%AC%E7%9A%84%20VDI.png)
我对 VirtualBox 还很陌生。我设置了一个 Arch Linux VM 和一个 Ubuntu VM(Ubuntu 主机),它们都共享相同的 .vdi,如下所示(我脑海中浮现的是双启动的情况):
VDI file (25GB)
|- /dev/sda1: 5GB (Arch Linux)
|- /dev/sda2: [Ubuntu]
|- /dev/sda5 (swap, 1GB)
|- /dev/sda6 Ubuntu /, 9GB
|- /dev/sda7 Ubuntu /home, 10GB
我现在意识到我不想要双启动类型的设置,我宁愿独立启动每台机器(我最初的想法是/home
在 Ubunto 和 Arch 之间共享)。
所以,我的问题是:我可以将 /dev/sda1 和 /dev/sda2 拆分为各自的 .vdi 文件吗所以我可以将它们用作完全独立的机器?我宁愿不必重新安装 Arch(因为我花了很长时间才搞定!)或 Ubuntu(因为我已经做了几 GB 的更新,不想重复做)。
我找不到任何关于这方面的内容——我看到的大多数问题都是关于将 .vdi 转换为主机上的分区,或者将 .vdi 拆分成多个较小的文件(不是独立)或将主机上的分区转换为 .vdi 文件。
干杯。
答案1
我不知道如何分割文件,但你可以尝试创建新的虚拟磁盘,然后将rsync
文件或dd
块从旧分区移到新分区。像这样:
modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 /PATH/TO/YOUR/old.vdi
qemu-nbd -c /dev/nbd1 /PATH/TO/YOUR/new.vdi
dd if=/dev/nbd0p1 of=/dev/nbd1p1 bs=512
qemu-nbd -d /dev/nbd1
qemu-nbd -d /dev/nbd0
rmmod nbd
答案2
根据@AnsgarWiecher 对不知道如何拆分文件的评论,我做了以下操作:
在虚拟机中:
- 选择虚拟机
- 选择“克隆”和“完整克隆”来创建新的.vdi 文件(但它有 25GB,并且包含双启动设置)。
- 将这台新机器启动到 Arch,然后删除 Ubuntu 分区。
- 调整 .vdi 的大小以包含只是Arch 分区
这是新型拱门专用机器。
现在我可以启动到原始(非克隆)双启动机器,并以类似方式从中删除 Arch,这样我最终得到一台仅有 Ubuntu 的机器。