Vboxmanage clonemedium - 使现有的固定大小的 Ubuntu VM 磁盘动态化

Vboxmanage clonemedium - 使现有的固定大小的 Ubuntu VM 磁盘动态化

我有一个现有的 Ubuntu VirtualBox VM(Windows 10 主机)。它目前使用 50GB 的固定大小磁盘。根据我查看其文件系统时看到的内容判断,它目前使用了其中约 29.7GB 的空间(所以,是的,有 20.3GB 可用)。

我想使磁盘动态化,还想将此磁盘的上限设置为 35GB,以节省笔记本电脑 SSD 上的空间。我知道 vboxmanage 的clonemedium命令,但有几个问题:

  1. 我在克隆端的安装会怎样?换句话说,它是否足够聪明,能够看到原始磁盘中有 20.3GB 的“空间”,并将克隆缩小到大小(29.7GB)?尽管原始磁盘有“可用空间”,但我是否面临数据丢失的风险?

  2. 有没有办法通过命令行或者 XML 文件来指定动态磁盘的上限?文档没有提到任何有关它的内容。我当然不希望磁盘无限增长。

答案1

将虚拟磁盘从固定磁盘转换为动态磁盘

VBoxManage.exe clonemedium disk "\path\to\source.vdi" "\path\to\destination.vdi" –variant Standard

然后在 VirtualBox 中的 VM 中,将其替换source.vdidestination.vdi

压缩磁盘

  • 启动 Ubuntu VM 并安装zerofree

    sudo apt install zerofree
    
  • Esc通过重新启动虚拟机并在启动时反复按下进入恢复模式

  • 在 Grub 菜单中,选择“Ubuntu 高级选项”,然后按Enter
  • 选择最新内核的“(恢复模式)”选项
  • 选择root启动到 root shell 提示符
  • 当提示“按 Enter 键进行维护”时,按Enter
  • 要查找要归零的虚拟磁盘,请运行命令df
  • 通过命令将可用空间清零zerofree -v /dev/sda1sda1用磁盘替换)
  • 通过命令关闭虚拟机halt
  • 使用命令压缩磁盘

    VBoxManage.exe modifymedium disk "\path\to\disk.vdi" --compact
    

    节省多少空间取决于有多少空闲空间需要恢复。这将减少映像的物理大小,而不会影响其逻辑大小。

  • 要减少客户操作系统看到的磁盘逻辑大小:

    VBoxManage modifymedium disk "\path\to\disk.vdi" --resize <megabytes>
    

有用的参考资料:

相关内容