linux下挂载VHD等虚拟磁盘文件的方法
1、RAW格式虚拟磁盘
lux下可以直接挂载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
2、VHD/VHDX磁盘文件挂载
lux不能直接支持挂载VHD磁盘镜像文件。可以通过vmware的vmware-mount等工具来挂载。vmware没有直接提供这个工具,但在vmware player和vmware workstation中都有提供。但这里不打算使用这种方式。
这里使用qemu-nbd来挂载磁盘镜像文件。
a)安装qemu
要安装一下qemu-kvm,我这里使用的是Fedora 25,安装命令如下
sudo dnf stall qemu-kvm
如果你是用的debian/ubuntu等,可以使用sudo apt-get stall qemu-kvm进行安装。
archlux可以使用sudo pacman -S qemu进行安装。
b)加载nbd驱动
NBD(Network Block Device)是网络块设备的缩写。这个模块可以将一个远程主机的磁盘空间(与挂载nfs有区别),当作一个本地块设备来使用。
NBD是一个内核模块,大部分Lux发行版都已经包含它,这里不需要再安装了。
使用modprobe来加载nbd驱动
/media/o/data [o@o-pc] [11:04]
> sudo modprobe nbd max_part=8
加载完成后,可以使用modfo命令来查看模块信息
/media/o/data [o@o-pc] [11:05]
> modfo nbd
filename: /lib/modules/4.9.6-200.fc25.x86_64/kernel/drivers/block/nbd.ko.xz
license: GPL
description: Network Block Device
depends:
tree: 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 work block devices to itialize (default: 16) (t)
parm: max_part:number of partitions per device (default: 0) (t)
上面的信息说,初始化网络块设备的数目为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-offle.vhdx
连接上之后使用fdisk查看一下设备信息。
/media/o/data [o@o-pc] [11:05]
> sudo fdisk -l /dev/nbd0
Disk /dev/nbd0100 GiB,107374182400 字节,209715200 个扇区
单元扇区 / 1 512 = 512 字节
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型dos
磁盘标识符0xa373e501
实际上磁盘只有一个分区,分区格式为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./free/el/updates/6/SRPMS/exfat-utils-1.0.1-2.el6.src.rpm
wget http://download1.rpmfusion./free/el/updates/6/SRPMS/exfat-utils-1.0.1-2.el6.src.rpm
然后安装fuse-devel和rpmbuild,并解压src.rpm包。
sudo dnf stall fuse-devel rpmbuild
sudo dnf stall 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 stall exfat-utils exfat-fuse
3、其它虚拟磁盘文件的挂载
其它的就不再说了,与上面的VHD挂载是一样的,前提是要是支持的磁盘映像格式才行。
网络推广
- 5g网络有多快:5g网络网速有多快
- dota2无法连接至steam网络 为什么无法连接dota2网络
- 无线网络信号接收器 无线网络信号接收器怎么用
- 网络延时是什么意思 网络延时是什么原因
- 无线网络不可用:无线网络不可用是什么原因
- 网络广告销售技巧 网络广告销售技巧有哪些
- 智能手机网络设置 智能手机网络设置在哪里
- 为什么找不到无线网络 为什么找不到无线网络信
- 网络这么赚钱:网络怎么能赚到钱
- 为什么无线网络连接不上 为什么无线网连不起来
- 网络上的人际交往 网络上人际交往的优势
- 支付宝网络系统异常 支付宝显示网络异常什么时
- 营销软件:营销软件有哪些
- 无法访问您要使用的功能所在的网络位置
- 网络安全基本知识 网络安全基本知识有哪些
- 什么网络电话最好用 什么网络电话最好用最便宜