源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

linux下挂载VHD等虚拟磁盘文件的方法

  • 时间:2021-12-28 12:04 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:linux下挂载VHD等虚拟磁盘文件的方法
[b]1、RAW格式虚拟磁盘[/b] linux下可以直接挂载raw格式的虚拟磁盘镜像文件。 例如,这里先用dd命令创建一个文件,然后将其格式化为[code]ext4[/code]格式(只有一个分区),然后挂载到[code]/mnt[/code]目录。 下面的[code]raw.img[/code]磁盘镜像文件就一个分区,所以没有使用[code]offset=[/code]来指定偏移。如果有多个分区,则可以通过指定偏移来挂载。具体的可以查阅[code]mount[/code]命令的相关参数信息。
> 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
[b]2、VHD/VHDX磁盘文件挂载[/b] linux不能直接支持挂载VHD磁盘镜像文件。可以通过vmware的[code]vmware-mount[/code]等工具来挂载。[code]vmware[/code]没有直接提供这个工具,但在[code]vmware player[/code]和[code]vmware workstation[/code]中都有提供。但这里不打算使用这种方式。 这里使用qemu-nbd来挂载磁盘镜像文件。 [b]a)安装qemu[/b] 首先要安装一下[code]qemu-kvm[/code],我这里使用的是[code]Fedora 25[/code],安装命令如下
sudo dnf install qemu-kvm 
如果你是用的debian/ubuntu等,可以使用[code]sudo apt-get install qemu-kvm[/code]进行安装。 archlinux可以使用[code]sudo pacman -S qemu[/code]进行安装。 [b]b)加载nbd驱动[/b] NBD(Network Block Device)是[code]网络块设备[/code]的缩写。这个模块可以将一个远程主机的磁盘空间(与挂载nfs有区别),当作一个本地块设备来使用。 NBD是一个内核模块,大部分Linux发行版都已经包含它,这里不需要再安装了。 [b]使用modprobe来加载nbd驱动[/b]
/media/o/data [o@o-pc] [11:04]
> sudo modprobe nbd max_part=8
[b]加载完成后,可以使用modinfo命令来查看模块信息[/b]
/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,说明其在[code]/dev/[/code]下创建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

[b]c)将vhdx文件连接到nbd设备[/b] 这里使用[code]qemu-nbd[/code]来进行连接(使用-c参数为连接,使用-d参数断开连接)
/media/o/data [o@o-pc] [11:05]
> sudo qemu-nbd -c /dev/nbd0 VS2017RC-offline.vhdx 
连接上之后使用[code]fdisk[/code]查看一下设备信息。
/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
设备    启动 起点    末尾   扇区  大小 Id 类型
/dev/nbd0p1   2048 209711103 209709056 100G 7 HPFS/NTFS/exFAT
实际上磁盘只有一个分区,分区格式为[code]exFAT[/code],磁盘大小为动态增长。 [b]d)挂载分区[/b] 直接使用[code]mount[/code]命令挂载[code]nbd0p1[/code]即可
/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
[b]安装exFAT支持[/b] 因为分区是[code]exFAT[/code]格式的,不能直接挂载。 先安装一下[code]fuse-exfat[/code]和[code]exfat-utils[/code]。 具体的安装过程简要的说一下 先下载两个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
然后安装[code]fuse-devel[/code]和[code]rpmbuild[/code],并解压[code]src.rpm[/code]包。
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
解压完成之后可以在当前用户的[code]home[/code]目录下看到[code]rpmbuild[/code]目录,进入该目录下的[code]SPECS[/code]目录。 然后使用[code]rpmbuild[/code]构建[code]rpm[/code]包。
rpmbuild -ba exfat-utils.spec
rpmbuild -ba fuse-exfat.spec
构建完成之后进入[code]rpmbuild/RPMS/x86_64[/code]目录(这里x86_64与你的系统构架有关),安装生成的[code]rpm[/code]包。
/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来安装[code]sudo apt install exfat-utils exfat-fuse[/code] [b]3、其它虚拟磁盘文件的挂载[/b] 其它的就不再说了,与上面的VHD挂载是一样的,前提是要是支持的磁盘映像格式才行。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部