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
设备 启动 起点 末尾 扇区 大小 Id 类型
/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挂载是一样的,前提是要是支持的磁盘映像格式才行。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
原文链接:http://www.cnblogs.com/oloroso/p/6385398.html
原创文章,作者:UFQOZ,如若转载,请注明出处:http://www.wangzhanshi.com/n/8532.html