当前位置:   article > 正文

linux 挂载ntfs nbd,qemu-nbd方式挂载qcow2镜像

qcow2文件挂载到/mnt/snapshot目录

客户端配置

加载nbd模块 [root@centos sm]# rmmod nbd

[root@centos sm]# modprobe nbd max_part=8

映射服务器的块设备到本地nbd设备 [root@centos data]# nbd-client 192.168.100.25 8888 /dev/nbd0

挂载本地nbd设备到文件系统 [root@centos sm]# mount /dev/nbd0 ./data/

[root@centos sm]# cd data

[root@centos sm]# touch mytest.txt

使用完成后断开设备 [root@centos data]# cd ..

[root@centos sm]# umount ./data/

[root@centos sm]# nbd-client -d /dev/nbd0

Disconnecting: que, disconnect, sock, done

本地使用qemu-nbd访问qcow2文件

加载nbd模块 [root@centos sm]# rmmod nbd

[root@centos sm]# modprobe nbd max_part=8

映射qcow2文件到本地nbd设备上 root@ubuntu-virtual-machine:~# qemu-nbd --connect=/dev/nbd0 /home/ubuntu/laboratory/data.qcow2

root@ubuntu-virtual-machine:~# mount /dev/nbd0 ./data/

root@ubuntu-virtual-machine:~# cd data/ root@ubuntu-virtual-machine:~/data# ls mytest.txt

卸载设备并断开链接 root@ubuntu-virtual-machine:~/data# cd

root@ubuntu-virtual-machine:~# umount /home/ubuntu/data

root@ubuntu-virtual-machine:~# qemu-nbd -d /dev/nbd0 /dev/nbd0 disconnected

qemu-nbd在有的系统上叫kvm-nbd,qemu-nbd-xen等。基本上都一样啦。

用qemu-nbd实现mount虚拟硬盘到Host上的功能,需要这么做:

rmmod nbd

modprobe nbd max_part=8

因为默认,nbd的增加分区的功能是关闭的,需要指定max_part这个参数。这个参数指定了一个nbd设备可以有多少个分区。

qemu-nbd --connect=/dev/nbd0 ./testxp.img

现在已经在localhost的1024端口上安装上该设备了。

ls /dev/ | grep nbd

nbd0

nbd0p1

上面这样显示就对了。因为我的那个虚拟磁盘只有一个分区。如果你的虚拟磁盘有多个分区,应该显示更多。

fdisk -l /dev/nbd0   查看虚拟磁盘和分区状况:

Disk /dev/nbd0: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x6f106f10

Device Boot Start End Blocks Id System

/dev/nbd0p1 * 1 1304 10474348+ 7 HPFS/NTFS

我们可以把/dev/nbd0p1这个ntfs格式的设备mount到我们的Host上。

fdisk /dev/nbd0 可以进入交互式命令行。

Command (m for help): m

Command action

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition

l list known partition types

m print this menu

n add a new partition

o create a new empty DOS partition table

p print the partition table

q quit without saving changes

s create a new empty Sun disklabel

t change a partition's system id

u change display/entry units

v verify the partition table

w write table to disk and exit

x extra functionality (experts only)

可以列出,增加,删除分区。

-----------------------------------------------------

SYNOPSIS

usage: qemu-nbd [OPTION]...  filename

OPTIONS

filename

-p, --port=PORT      port to listen on (default `1024')

-o, --offset=OFFSET  offset into the image

-b, --bind=IFACE     interface to bind to (default `0.0.0.0')

-k, --socket=PATH    path to the unix socket (default '/var/lock/qemu-nbd-DEVICE')

-r, --read-only      export read-only -----------> 只读访问

-P, --partition=NUM  only expose partition NUM -----------> 建立磁盘分区到NBD设备的连接

-s, --snapshot       use snapshot file -----------> 挂目标磁盘的snapshot文件。

-n, --nocache        disable host cache -----------> ?

-c, --connect=DEV    connect FILE to the local NBD device DEV -----------> 建立磁盘文件到NBD设备的连接

-d, --disconnect     disconnect the specified device ------------------> 断开磁盘文件到NBD设备的连接

-e, --shared=NUM     device can be shared by NUM clients (default '1')

-t, --persistent     don't exit on the last connection -----------> ?

-v, --verbose        display extra debugging information

-h, --help           display this help and exit

-V, --version        output version information and exit

-------------------------------------------------------------------------------------------

$ qemu-nbd --read-only --partition=1  --snapshot  winxp.img &

$ sudo nbd-client localhost 1024 /dev/nbd0

$ sudo mount /dev/nbd0 -oloop  ~/empty/

$ ls -l /home/muelli/empty/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/217388?site
推荐阅读
相关标签
  

闽ICP备14008679号