有没有办法将文件系统从 VirtualBox .vdi 文件(或类似文件)复制到硬盘上的物理分区?
答案1
可能有一个实用程序可以执行此操作,但您无需任何特殊软件即可轻松完成此操作,这始终是一个有用的技巧,因为它可以与任何类型的虚拟化软件一起使用。
只需在附加了 .vdi 的虚拟机中启动实时映像即可。确保已启用网络,并且目标磁盘和客户机的计算机可以互相看到。然后,dd 虚拟分区并传输到客户机上的 netcat,使用 netcat 在主机系统上接收它,并使用 dd 写入分区。
在目标机器上运行:
netcat -l -p 4444 | dd of=/dev/<target partition or disk>
它会等待。在客户机运行中:
dd if=/dev/<source partition or disk> | netcat <target-machine-ip> 4444
这是假设源设备和目标设备的大小完全相同,但事实可能并非如此。
请注意,目标机器不一定是虚拟化主机,它可以是客户机可以通过网络访问的任何机器。
有关以多种方式操作 .vdi 图像的特殊软件,请参阅:安装 VirtualBox 驱动器映像(vdi)?
答案2
您应该复制文件系统的内容,而不是以按位模式将映像写入物理磁盘。对于支持 TRIM 的 SSD,尤其推荐这样做,因为当 TRIM 启动时,它会删除它不知道的文件(它只是开始清理它认为没有存储文件的块,这是以按位模式写入 SSD 的所有内容的情况)。此外,将文件复制到新文件系统会自动为您对文件进行碎片整理。
您可以以 root 身份使用cp
或rsync
带-a
参数来保留权限和所有权。
最后,您需要重新安装引导加载程序,才能拥有一个可正常运行的引导操作系统。可以使用选项通过 Live CD 重新安装 GRUB 和 GRUB2 --boot-directory
,Windows 应该在其安装盘上提供类似的功能。
答案3
你可以将 VDI 文件转换为 RAW 格式,然后使用dd
命令将映像复制到分区中。
例如:
VBoxManage clonehd --format RAW file.vdi file.img
dd if=./file.img of=/dev/<partition_here>
注意:sudo
如果需要,请使用。在 中指定正确的设备时要小心/dev
。
有关的: