设为首页 收藏本站
查看: 2025|回复: 0

[经验分享] linux下挂载VHD等虚拟磁盘文件

[复制链接]

尚未签到

发表于 2017-6-23 08:54:17 | 显示全部楼层 |阅读模式
1、RAW格式虚拟磁盘
  linux下可以直接挂载raw格式的虚拟磁盘镜像文件。
  例如,这里先用dd命令创建一个文件,然后将其格式化为ext4格式(只有一个分区),然后挂载到/mnt目录。
  
下面的raw.img磁盘镜像文件就一个分区,所以没有使用offset=来指定偏移。如果有多个分区,则可以通过指定偏移来挂载。具体的可以查阅mount命令的相关参数信息。
  

> dd if=/dev/zero of=raw.img bs=1M count=512  
记录了512+0 的读入
  
记录了512+0 的写出
  
536870912 bytes (537 MB, 512 MiB) copied, 0.207045 s, 2.6 GB/s
  

  
/home/o [o@o-pc] [10:29]
  
> mkfs.ext4 -q raw.img
  

  
/home/o [o@o-pc] [10:30]
  
> sudo mount -o loop raw.img /mnt
  

  
/home/o [o@o-pc] [10:30]
  
> df -h
  
文件系统        容量  已用  可用 已用% 挂载点
  
tmpfs           3.9G   79M  3.8G    2% /dev/shm
  
/dev/sda4        30G  6.6G   24G   22% /
  
tmpfs           3.9G  136K  3.9G    1% /tmp
  
/dev/sda2        69G   26G   41G   39% /home
  
tmpfs           794M   36K  794M    1% /run/user/1000
  
/dev/loop0      488M  780K  452M    1% /mnt
  

2、VHD/VHDX磁盘文件挂载
  linux不能直接支持挂载VHD磁盘镜像文件。可以通过vmware的vmware-mount等工具来挂载。vmware没有直接提供这个工具,但在vmware player和vmware workstation中都有提供。但这里不打算使用这种方式。
  这里使用qemu-nbd来挂载磁盘镜像文件。

a)安装qemu
  首先要安装一下qemu-kvm,我这里使用的是Fedora 25,安装命令如下
sudo dnf install qemu-kvm   如果你是用的debian/ubuntu等,可以使用sudo apt-get install qemu-kvm进行安装。
  
archlinux可以使用sudo pacman -S qemu进行安装。

b)加载nbd驱动
  NBD(Network Block Device)是网络块设备的缩写。这个模块可以将一个远程主机的磁盘空间(与挂载nfs有区别),当作一个本地块设备来使用。
  
NBD是一个内核模块,大部分Linux发行版都已经包含它,这里不需要再安装了。
  使用modprobe来加载nbd驱动
/media/o/data [o@o-pc] [11:04]  
> sudo modprobe nbd max_part=8
  加载完成后,可以使用modinfo命令来查看模块信息
/media/o/data [o@o-pc] [11:05]  
> modinfo nbd
  
filename:       /lib/modules/4.9.6-200.fc25.x86_64/kernel/drivers/block/nbd.ko.xz
  
license:        GPL
  
description:    Network Block Device
  
depends:        
  
intree:         Y
  
vermagic:       4.9.6-200.fc25.x86_64 SMP mod_unload
  
signat:         PKCS#7
  
signer:         
  
sig_key:        
  
sig_hashalgo:   md4
  
parm:           nbds_max:number of network block devices to initialize (default: 16) (int)
  
parm:           max_part:number of partitions per device (default: 0) (int)
  上面的信息说,初始化网络块设备的数目为16,说明其在/dev/下创建16个nbd设备。
/media/o/data [o@o-pc] [11:05]  
> ls /dev/nbd*
  
/dev/nbd0  /dev/nbd0p1  /dev/nbd1  /dev/nbd10  /dev/nbd11  /dev/nbd12  /dev/nbd13  /dev/nbd14  /dev/nbd15  /dev/nbd2  /dev/nbd3  /dev/nbd4  /dev/nbd5  /dev/nbd6  /dev/nbd7  /dev/nbd8  /dev/nbd9

c)将vhdx文件连接到nbd设备
  这里使用qemu-nbd来进行连接(使用-c参数为连接,使用-d参数断开连接)
/media/o/data [o@o-pc] [11:05]  
> sudo qemu-nbd -c /dev/nbd0 VS2017RC-offline.vhdx
  连接上之后使用fdisk查看一下设备信息。
  

/media/o/data [o@o-pc] [11:05]  
> sudo fdisk -l /dev/nbd0
  
Disk /dev/nbd0:100 GiB,107374182400 字节,209715200 个扇区
  
单元:扇区 / 1 * 512 = 512 字节
  
扇区大小(逻辑/物理):512 字节 / 512 字节
  
I/O 大小(最小/最佳):512 字节 / 512 字节
  
磁盘标签类型:dos
  
磁盘标识符:0xa373e501

  
设备        启动  起点       末尾      扇区   大小>  
/dev/nbd0p1      2048 209711103 209709056  100G  7 HPFS/NTFS/exFAT
  

  实际上磁盘只有一个分区,分区格式为exFAT,磁盘大小为动态增长。

d)挂载分区
  直接使用mount命令挂载nbd0p1即可
/media/o/data [o@o-pc] [11:36]  
> sudo mount -t exfat -o rw  /dev/nbd0p1 /mnt
  
[sudo] o 的密码:
  
FUSE exfat 1.0.1
  

  
/media/o/data [o@o-pc] [12:05]
  
> ls /mnt/
  
'$RECYCLE.BIN'  'System Volume Information'  vs2017rc  安装说明.txt

安装exFAT支持
  因为分区是exFAT格式的,不能直接挂载。
  
先安装一下fuse-exfat和exfat-utils。
  
具体的安装过程简要的说一下
  
先下载两个rpm源码包。
wget http://download1.rpmfusion.org/free/el/updates/6/SRPMS/exfat-utils-1.0.1-2.el6.src.rpm  
wget http://download1.rpmfusion.org/free/el/updates/6/SRPMS/exfat-utils-1.0.1-2.el6.src.rpm
  然后安装fuse-devel和rpmbuild,并解压src.rpm包。
sudo dnf install fuse-devel rpmbuild  
sudo dnf install scons    # 构建exfat-utils需要
  
rpm -ivh exfat-utils-1.0.1-2.el6.src.rpm exfat-utils-1.0.1-2.el6.src.rpm
  解压完成之后可以在当前用户的home目录下看到rpmbuild目录,进入该目录下的SPECS目录。
  
然后使用rpmbuild构建rpm包。
rpmbuild -ba exfat-utils.spec  
rpmbuild -ba fuse-exfat.spec
  构建完成之后进入rpmbuild/RPMS/x86_64目录(这里x86_64与你的系统构架有关),安装生成的rpm包。
/home/o/rpmbuild/RPMS/x86_64 [o@o-pc] [12:04]  
> sudo rpm -ivh exfat-utils-1.0.1-2.fc25.x86_64.rpm fuse-exfat-1.0.1-1.fc25.x86_64.rpm
  
准备中...                          ################################# [100%]
  
正在升级/安装...
  1:fuse-exfat-1.0.1-1.fc25          ################################# [ 50%]
  2:exfat-utils-1.0.1-2.fc25         ################################# [100%]
  ubuntu上可以直接使用apt来安装sudo apt install exfat-utils exfat-fuse

3、其它虚拟磁盘文件的挂载
  其它的就不再说了,与上面的VHD挂载是一样的,前提是要是支持的磁盘映像格式才行。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-387089-1-1.html 上篇帖子: Hadoop学习笔记—22.Hadoop2.x环境搭建与配置 下篇帖子: SQL Server on Ubuntu——Ubuntu上的SQL Server(全截图)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表