VBoxManage convertfromraw --format VDI 是否会处理未分配的空间?

VBoxManage convertfromraw --format VDI 是否会处理未分配的空间?

convertfromraw 可用于生成动态大小的 VDI 文件。它会处理未分配的磁盘空间吗?

例如,假设 /dev/sda 指向一个 1 TB 硬盘,其中前 10 GB 有分区,其余未分配。运行以下命令,

VBoxManage convertfromraw /dev/sda MyDisk.vdi --format VDI
  • 整个 1 TB 磁盘都处理了吗?
  • 生成的文件大约是 10 GB 还是 1 TB?

答案1

Convertfromraw 不知道客户操作系统使用或不使用哪些扇区,因此虚拟映像将包含整个源磁盘。事实上,源文件可以是任何东西 - 它甚至不必是磁盘映像。

唯一的空间优化是,填充了零字节的大块(>1MB)将仅被标记为零,而不会写入目标文件。这是一种简单的无损压缩形式,可能类似于简化的游程编码。

如果您进行零填充/删除然后克隆它们,这种机制也会导致 VDI 文件变小。

因此,为了最小化 VDI 文件的大小,您应该在执行 convertfromraw 之前将源磁盘上所有未使用的扇区清零。如果可能的话,将所有使用的扇区碎片整理到磁盘的开头也会有所帮助。

相关内容