https://www.nnbfn.net/2011/03/convert-kvm-qcow2-to-lvm-raw-partition/
1.将qcow2 转成raw格式
qemu-img convert disk0.qcow2 -O raw disk0.raw
2.查看新raw文件大小
user@example:/tmp/disk.nnbfn.net$ ls -l
total 43103688
-rw-r--r-- 1 user user 44023414784 2011-03-27 09:09 disk.raw
3.创建逻辑卷
lvcreate -L 44023414784b -n lv_disk vgroup (大小需比44023414784大,不然复制时会出错,虚拟机无法正常启动)
4.复制内容到逻辑卷
sudo dd if=disk.raw of=/dev/vgroup/lv_disk
5.修改xml文件
原
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/srv/virtual/vm_web/tmp5GWO4q.qcow2'/>
<target dev='hda' bus='virtio'/>
</disk>
新
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source dev='/dev/vgroup/lv_disk'/>
<target dev='vda' bus='virtio'/>
</disk>
总结
测试xp的虚拟机可正常转换,但是建立比raw大的lvm在系统中只识别了原先大小,跟lvm实际大小无关
补充实验
1.qcow2直接dd到iscsi 盘/dev/sdb 启动无法找到boot-disk
2.qcow2 转raw 直接dd到/dev/sdb 启动正常 ,查看sdb硬盘 多了sdb1的分区,但是物理机上没有/dev/sdb1的目录
3.qcow2稀疏文件,转成raw后,直接dd,是全部占用virtualsize大小,将空间填满0
可使用rsync -S 避免填0空间,这样速度很快