创建一个40G的raw的磁盘
1 dd if=/dev/zero of=disk.img bs=1M count=0 seek=40960
将raw磁盘转化为qcow2
1 qemu-img convert -f raw -O qcow2 disk.img disk.qcow2
将qcow2文件再压缩
qemu-img convert -c -O qcow2 disk.qcow2 disk1.qcow2
创建增量文件
1 qemu-img create -f qcow2 -b disk.qcow2 disk01.qcow2
查看镜像文件信息
qemu-img info disk01.qcow2
修改增量文件的base文件
rebase [-f fmt] [-t cache] [-T src_cache] [-p] [-u] -b backing_file [-F backing_fmt] filename
Changes the backing file of an image. Only the formats "qcow2" and "qed" support changing the backing file.
qemu-img rebase -b new_base_file filename
使用virsh管理虚拟机
1 virsh list #显示正在运行的虚拟机 2 virsh list --all #显示所有虚拟机包括没运行的 3 virsh destroy vm1 # 强制关闭虚拟机vm1 4 virsh undefine vm1 #移除虚拟机vm1 5 virsh setmem vm1 --size 4096 # 将正在运行的vm1虚拟机内存改为4096,注意不能超过设置的最大值 6 virsh setvcpus vm1 --coun 4 #将正在运行的vm1虚拟机cpu改为4颗
使用virsh给正在运行的虚拟机添加硬盘
virsh attach-disk vm1 /pool/disk01.img vdb --cache none #使用命令行的模式添加磁盘, 使用xml文件的方式添加磁盘 cat /pool/disk.xml <disk type='file' device='disk'> <driver name='qemu' type=’qcow2’ cache='none'/> <source file=' /userpool/pxe/disk02.img'/> <target dev='vdb' bus='virtio'/> </disk> virsh attach-device vm1 /pool/disk.xml
注意:在添加磁盘的时候若不申明格式,则默认采用raw的格式
挂载raw的镜像文件
挂载的时候要指明起始头
使用fdisk 查看img文件的信息
[root@TAE_Node1 foo]# fdisk -ul desktop.img
命令(输入 m 获取帮助):p
磁盘 desktop.img:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x1cedb058
设备 Boot Start End Blocks Id System
desktop.img1 * 2048 75497471 37747712 83 Linux
desktop.img2 75499518 83884031 4192257 5 Extended
desktop.img5 75499520 83884031 4192256 82 Linux swap / Solaris
起始扇区是2048 每个扇区512个字节
则 2048*512=1048576
1 mount -o loop,offset=1048576 disk.img /mnt
挂载qcow2文件镜像的时候 需要将qcow2映射成一个设备
借用到nbd模块
1 cat /boot/config-3.10.0-229.el7.x86_64 |grep NBD 2 modprobe nbd max_part=16 3 qemu-nbd -c /dev/nbd0 rhel6u3.qcow2 4 mount /dev/nbd0p1 /mnt