频道栏目
IT货架 > > 正文
[转载]如何挂载qcow2格式的镜像文件(how to mount a qcow2 image)
网友分享于:Jan 1, 1970 8:00:00 AM    来源: IT货架   

标签:des   blog   http   io   os   ar   使用   for   strong   

两个月前,写了一篇“如何挂载一个镜像文件”,当时没有把qcow2的挂载方法写进入,刚好一个博友留言提到qcow2了,就再一小篇关于mount qcow2格式的客户机镜像吧。QCOW2是目前QEMU(qemu-kvm)推荐使用的guest镜像文件格式,在KVM、Xen虚拟化中的使用都是比较广泛的。
可以使用qemu自带的一个工具qemu-nbd来挂载一个客户机,具体步骤如下:
(qemu-nbd 在普通的QEMU编译和安装后也会得到qemu-nbd工具,在Fedora中好像在“qemu-common”这个RPM包中。)

1. 首先检查当前系统的kernel对NBD模块的支持(NBD:network block device),加载nbd这个module,如下:

View Code BASH
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@jay-linux kvm_demo]# grep NBD /boot/config-3.5.0
CONFIG_BLK_DEV_NBD=m
[root@jay-linux kvm_demo]# modinfo nbd
filename:       /lib/modules/3.5.0/kernel/drivers/block/nbd.ko
license:        GPL
description:    Network Block Device
srcversion:     56F31584CC2EB73E6F1DA69
depends:
intree:         Y
vermagic:       3.5.0 SMP mod_unload modversions
parm:           nbds_max:number of network block devices to initialize (default: 16) (int)
parm:           max_part:number of partitions per device (default: 0) (int)
parm:           debugflags:flags for controlling debug output (int)
[root@jay-linux kvm_demo]# modprobe nbd max_part=16
[root@jay-linux kvm_demo]# lsmod | grep nbd
nbd                     7593  0

如果当前kernel没有编译好nbd模块,则需要重新编译该模块(或编译整个kernel),在编译kernel时,“make menuconfig”配置kernel时中选择”Device Drivers –> Block devices –> Network block device support”.

2. 将qcow2镜像映射为网络块设备(nbd),命令如下:

View Code BASH
 
1
2
3
4
5
[root@jay-linux kvm_demo]# qemu-nbd -c /dev/nbd0 rhel6u3.qcow2
[root@jay-linux kvm_demo]# ll /dev/nbd0*      #这里查看一下
brw-rw---- 1 root disk 43, 0 Nov  1 20:51 /dev/nbd0
brw-rw---- 1 root disk 43, 1 Nov  1 20:51 /dev/nbd0p1
brw-rw---- 1 root disk 43, 2 Nov  1 20:51 /dev/nbd0p2

qemu-nbd工具是:QEMU Disk Network Block Device Server,可以用”qemu-nbd –help”命令查看其帮助信息。

3. 像普通block设备那样使用刚才映射好的网络块设备的分区即可,命令行如下:

View Code BASH
 
1
2
3
4
5
6
7
[root@jay-linux kvm_demo]# mount /dev/nbd0p1 /mnt/
[root@jay-linux kvm_demo]# cd /mnt/
[root@jay-linux mnt]# ls
bin   cgroup  etc   lib    lost+found  misc  net  proc  sbin     srv  tmp  var
boot  dev     home  lib64  media       mnt   opt  root  selinux  sys  usr
[root@jay-linux mnt]# cd root/
[root@jay-linux root]# touch nbd-test.txt    #这里建立一个文件测试一下,若用这个qcow2 image作为guest启动后也可以看到改文件。

4. 使用完这个qcow2镜像后,卸载已挂载的nbd设备,解除qcow2镜像与nbd设备的关联。

View Code BASH
 
1
2
3
[root@jay-linux kvm_demo]# umount /mnt/
[root@jay-linux kvm_demo]# qemu-nbd -d /dev/nbd0
/dev/nbd0 disconnected

如果你的qcow2文件里面有LVM分区,请参考我如下博客文章的后半部分(关于LVM分区的挂载):

http://smilejay.com/2012/08/mount-an-image-file/

如果想了解Linux上NBD的基本知识,可以查看如下网页:

http://nbd.sourceforge.net/

 

文章来源:http://zhumeng8337797.blog.163.com/blog/static/100768914201341755913109/

[转载]如何挂载qcow2格式的镜像文件(how to mount a qcow2 image)

标签:des   blog   http   io   os   ar   使用   for   strong   

广告服务联系QQ:1134687142 | 网站地图

版权所有: IT货架- 内容来自互联网,仅供用于技术学习,请遵循相关法律法规. 京ICP备11030978号-1