将 Linux 机器转换为 VirtualBox

将 Linux 机器转换为 VirtualBox

我无法将物理 CENTOS 6 机器转换为 VirtualBox VM。

我遵循了这一点:https://www.linux.org/threads/physical-to-virtual-p2v-using-virtualbox.10928/ 使用 Clonezilla 和 VboxManage

我可以使用 Clonezilla 创建图像,但是当我运行 VBoxManger 时出现错误:

VBoxManage convertfromraw --format VDI sda6.ext4-ptcl-img.uncomp.aa target.vdi
Converting from raw image file="sda6.ext4-ptcl-img.uncomp.aa" to file="target.vdi"...
Creating dynamic image with size 553033589122 bytes (527414MB)...
VBoxManage: error: VD: The given disk size 553033589122 is not aligned on a sector boundary (512 bytes)
VBoxManage: error: Error code VERR_VD_INVALID_SIZE at /home/vbox/vbox-5.2.26/src/VBox/Storage/VD.cpp(6220) in function int VDCreateBase(VDISK*, const char*, const char*, uint64_t, unsigned int, const char*, const VDGEOMETRY*, const VDGEOMETRY*, const RTUUID*, unsigned int, VDINTERFACE*, VDINTERFACE*)
VBoxManage: error: Cannot create the disk image "target.vdi": VERR_VD_INVALID_SIZE

当我搜索“未对齐扇区边界(512 字节)”的解决方案时,我发现的所有解决方案都说使用带有 bs 和 conv=sync 标志的 linux 命令 dd,但它们将 bs 设置为大于磁盘。我的磁盘太大,无法使用具有大数字(例如 600G)的 bs。当我运行:

dd if=sda6.ext4-ptcl-img.uncomp.aa of=padded-sda6.ext4-ptcl-img.uncomp.aa bs=600G conv=sync

我收到错误:

dd: memory exhausted

如何解决 512 边界问题?

答案1

尝试不同的方法:

  1. 创建一个与原始大小大致相同的空磁盘映像。如有疑问,请将其设置得过大而不是过小。将其附加到虚拟机。

  2. 从包含 Clonezilla 的救援磁盘 ISO 启动虚拟机(Clonezilla LiveCD、GRML、Ubuntu 也可以,但您必须从互联网安装 Clonezilla)。

  3. 使主机上的磁盘映像在客户机中可通过网络访问。在 Linux 主机上,您可以使用 sshfs,对于 Windows 主机,网络共享将是最简单的方法。

  4. 将虚拟机的网卡配置为仅主机或 NAT。查找主机的 IP。

  5. 在客户机上运行 Clonezilla 并将此共享资源挂载为工作目录 ( /home/partimag)。Clonezilla 将协助您实现基于 ssh 的共享和 Windows 网络共享 (samba)。

  6. 使用 Clonezilla 从映像中恢复客户的磁盘。

相关内容