qemu-nbd方式挂载qcow2镜像
客户端配置
加载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 <-- is a disk image 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/
qemu-nbd方式挂载qcow2镜像的更多相关文章
- 利用Jenkins打包ISO和QCOW2镜像文件
现在的云虚拟化环境越来越多,经常会碰到需要修改并重新打包新的ISO或QCOW2镜像文件.通过手工的方式会比较麻烦,所以在镜像发布的生产环境中可以利用Jenkins来进行定期打包发布,以下介绍Jenki ...
- 磁盘管理,磁盘挂在mount,挂载光盘镜像文件,挂在U盘,umount 卸载命令, dd
1 mount 命令格式: mount[-t vfstype] -o options device dir 其中: *-t vfstype 指定文件系统的类型,通常不必指定.mount会自动选择正确的 ...
- linux下创建且挂载光盘镜像
在linux下可以很方便的将多个文件,或多个文件夹下的内容打包进光盘镜像中,我们可以用: mkisofs -r -v -o xxx.iso /root /home 命令将/root以及/home目录下 ...
- 如何挂载一个镜像文件(how to mount an image file)
如何挂载一个镜像文件(how to mount an image file) 08/16/2012master 4 Comments 在使用KVM或Xen虚拟化的情况下,经常需要使用镜像文件(imag ...
- 【转载】深入理解OpenStack-手动制作qcow2镜像
深入理解OpenStack-手动制作qcow2镜像 2018-01-18 手动制作镜像 1 官方虽提供qcow2系统镜像,但对于有需求的企业来说,还是定制镜像比较靠谱,下面就手动定制一个镜像 给虚拟机 ...
- 『现学现忘』Docker基础 — 32、通过DockerFile的方式挂载数据卷
目录 1.简单了解一下DockerFile 2.通过DockerFile的方式挂载数据卷 (1)创建DockerFile文件 (2)编辑Dockerfile文件 (3)构建Dokcer镜像 (4)启动 ...
- 攻城狮在路上(叁)Linux(二十四)--- linux设置开机挂载及镜像文件挂载
虽然可以手动进行文件系统的挂载,但是每次都手动挂载就会很麻烦,开机挂载的目的就是实现文件系统的自动挂载. 一.开机挂载:/etc/fstab及/etc/mtab 主要是通过修改/etc/fstab文件 ...
- 自动以读写方式挂载ntfs-黑苹果之路
在mac下ntfs分区总是以只读方式挂载,双操作系统,尤其有些时候需要用u盘,需要手工umount再mount,很麻烦,找了一些资料,通过修改/etc/fstab文件无效,要么就是使用第三方软件,不合 ...
- linux下挂载iso镜像的方法
新建目录/mnt/cdrom 执行命令 mount /dev/cdrom /mnt/cdrom [root@ocdp1 cdrom]# mount /dev/cdrom /mnt/cdrom moun ...
随机推荐
- iOS开发之 -- 获取设备的唯一标示符
各种获取设备唯一标识的方法介绍 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果iOS设备的唯一识别码,它 ...
- 使用js里面的迭代器filter实现数组去重
实现数组去重的方法很多,最原始的方法是一个值一个值的去遍历,写到空数组里面: let r=[],arr = ['a', 'b', 'c', 'a']; for(var i=0,len=arr.leng ...
- ajax请求加全局loading , 个别特殊请求不显示loading
项目中,请求开始前加载loading遮罩层,请求结束关闭遮罩,一般都会加在全局中,但有个别请求不需要加全局loading 的话,这时候就需要对这些请求进行配置 全局加loading: ; functi ...
- PAT 甲级 1025 PAT Ranking
1025. PAT Ranking (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programmi ...
- ggplot2画图小试
# 注意aes(x=wt, y=mpg)中的wt不是字符"wt",因此它是属性字段名(例如,EXCel中字段名有Student,那就是Student,而不是"Studen ...
- 在nginx启动后,如果我们要操作nginx,要怎么做呢 别增加无谓的上下文切换 异步非阻塞的方式来处理请求 worker的个数为cpu的核数 红黑树
nginx平台初探(100%) — Nginx开发从入门到精通 http://ten 众所周知,nginx性能高,而nginx的高性能与其架构是分不开的.那么nginx究竟是怎么样的呢?这一节我们先来 ...
- pandas.read_csv() 部分参数解释
read_csv()所有参数 pandas.read_csv( filepath_or_buffer, sep=',', delimiter=None, header='infer', names=N ...
- Python-读入json文件并进行解析及json基本操作
import json def resolveJson(path): file = open(path, "rb") fileJson = json.load(file) fi ...
- Apache Lucene初探
讲解之前,先来分享一些资料 首先,学习任何一门新的亦或是旧的开源技术,百度其中一二是最简单的办法,先了解其中的大概,思想等等.这里就贡献一个讲解很到位的ppt 这是Lucene4.0的官网文档:htt ...
- 003-maven简介
1.1简介 Maven,只是的积累,专家或内行 Maven是优秀的构建工具,依赖管理工具,项目信息管理工具,跨平台.提供了中央仓库,自动下载构件. 1.通过坐标系统定位每一个构件(artifact), ...