我在/ var / backups / disk1上有一个目录,我想将其转换为虚拟磁盘映像,然后我可以使用QEMU或KVM启动(该目录包含虚拟机的文件系统,已复制通过rsync).
虽然有很多说明可以将完整的物理磁盘转换为虚拟磁盘,但只将单个目录的内容打包成虚拟磁盘映像会比我预期的要困难得多.有任何想法吗?
顺便说一句,我知道我可以使用qemu-img将块设备转换为虚拟磁盘(例如,“qemu-img convert -f / dev / sdc -O qcow2 disk.qcow2”),所以如果我能得到的话目录/ var / backups / disk1似乎是一个块设备,然后理论上我应该能够使用qemu-img实现我的目标.我已经考虑过使用NBD或环回设备将目录公开为块设备的创造性方法,但是并没有取得成功.
解决方法
首先,创建所需大小的原始图像.我假设10G就足够了.使用seek创建了一个
sparse file,节省了空间.
dd if=/dev/null of=example.img bs=1M seek=10240
接下来,在其上创建一个文件系统.
mkfs.ext4 -F example.img
(请注意,mkfs.ext4需要-F选项来操作文件而不是磁盘分区)
然后,安装它.
mkdir /mnt/example mount -t ext4 -o loop example.img /mnt/example
现在您可以将文件复制到/ mnt / example.完成此操作后,卸载它,您可以将example.img用作虚拟机中的驱动器.如果你想要你可以使用qemu-img将它从原始图像转换为另一种格式,如qcow2e,但这不是必需的.