兩個(gè)月前,寫了一篇“如何掛載一個(gè)鏡像文件”,當(dāng)時(shí)沒有把qcow2的掛載方法寫進(jìn)入,剛好一個(gè)博友留言提到qcow2了,就再一小篇關(guān)于mount qcow2格式的客戶機(jī)鏡像吧。QCOW2是目前QEMU(qemu-kvm)推薦使用的guest鏡像文件格式,在KVM、Xen虛擬化中的使用都是比較廣泛的。
可以使用qemu自帶的一個(gè)工具qemu-nbd來(lái)掛載一個(gè)客戶機(jī),具體步驟如下:
(qemu-nbd 在普通的QEMU編譯和安裝后也會(huì)得到qemu-nbd工具,在Fedora中好像在“qemu-common”這個(gè)RPM包中。)
1. 首先檢查當(dāng)前系統(tǒng)的kernel對(duì)NBD模塊的支持(NBD:network block device),加載nbd這個(gè)module,如下:
| [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 |
如果當(dāng)前kernel沒有編譯好nbd模塊,則需要重新編譯該模塊(或編譯整個(gè)kernel),在編譯kernel時(shí),“make menuconfig”配置kernel時(shí)中選擇”Device Drivers –> Block devices –> Network block device support”.
2. 將qcow2鏡像映射為網(wǎng)絡(luò)塊設(shè)備(nbd),命令如下:
| [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設(shè)備那樣使用剛才映射好的網(wǎng)絡(luò)塊設(shè)備的分區(qū)即可,命令行如下:
| [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 #這里建立一個(gè)文件測(cè)試一下,若用這個(gè)qcow2 image作為guest啟動(dòng)后也可以看到改文件。 |
4. 使用完這個(gè)qcow2鏡像后,卸載已掛載的nbd設(shè)備,解除qcow2鏡像與nbd設(shè)備的關(guān)聯(lián)。
| [root@jay-linux kvm_demo]# umount /mnt/ [root@jay-linux kvm_demo]# qemu-nbd -d /dev/nbd0 /dev/nbd0 disconnected |
如果你的qcow2文件里面有LVM分區(qū),請(qǐng)參考我如下博客文章的后半部分(關(guān)于LVM分區(qū)的掛載):
如果想了解Linux上NBD的基本知識(shí),可以查看如下網(wǎng)頁(yè):
http://nbd.sourceforge.net/
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。