我有一台 OpenSuse 服务器,运行一些服务(包括 Apache Web 服务器、邮件列表等)。现在我需要将所有这些服务移到虚拟机上(Virtualbox 可以在同一台物理机或其他地方运行)。
理想情况下,我可以“复制”所有内容到虚拟机中,这样虚拟机就可以像原始机器一样运行。所有用户的数据 (/home/*) 都存储在 NFS 中,不应传输到虚拟机。然后我可以拥有一个相对较小(几 GB)的虚拟机映像,以便每隔几天备份一次。
我需要将所有系统和应用程序设置移至 VM,这样我才能顺利切换使用 VM。
有没有什么工具或其他东西可以简单地做到这一点?如果没有,我该怎么做?
答案1
您可以直接使用 dd 来完成此操作。
dd if=/dev/you-root of=/mnt/temp/filesystem.raw bs=1M
现在,您可以使用 qemu-img 将此原始文件转换为任何所需的容器。或者甚至让 VM 使用块设备并将其复制到逻辑卷。对于 VirtualBox,它将是 vdi。
qemu-img convert -O vdi /mnt/temp/filesystem.raw /mnt/temp/filesystem.vdi
答案2
从技术上来说你可以使用Rsync为了这:
在虚拟机上启动实时 CD,并根据需要对磁盘进行分区,然后将“/”挂载为 /mnt/rootfs/,并从虚拟机运行以下命令:
rsync -aHAXz root@OLD-SERVER:/ --exclude=/sys/* --exclude=/proc/* --exclude=/dev/* /mnt/rootfs/
-a = archive mode; equals -rlptgoD (no -H,-A,-X)
-H = preserve hard links
-A = preserve ACLs (implies --perms)
-X = preserve extended attributes
-z = compress file data during the transfer
然后修复 GRUB、/etc/fstab 等...
假设您的“OLD-SERVER”具有 SSH 访问权限,那么这将(大部分)起作用......
我以前曾使用此方法来克隆物理机器......