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

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

实际上磁盘只有一个分区,分区格式为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挂载是一样的,前提是要是支持的磁盘映像格式才行。
Linux Mint 20.2“Uma”中的新
EasyWSL工具将 Linux Docker 映
适用于 Linux 5.16 的新 Zst
适用于Linux的Windows子系统
Linux系统xlsatom命令如何使
阅读

阅读

阅读

阅读

阅读

阅读

阅读

阅读

阅读

阅读
Windows10 Insider Preview Build 20246将自动Linux发
Wine的最新版本改进了Linux系统上的Window
WSLg-现在可以直接在Windows10下启动Linux程序
Windows11 WSL2 的性能与裸机 Ubuntu Linux 相比
Linux Mint 20.2“Uma”中的新功能
您的PC不支持Win11也许是时候尝试Linux了
WindowsSubsystem for Linux(WSL)2对Windows10版本1
WindowsSubsystem for Linux(WSL)2对Windows10版本1903和1909的支持 根据客户......
阅读
Windows10 Insider Preview Build 20246将自动Linux发
微软已经向开发通道中的Windows Insiders宣布了Windows 10 Insider Prev......
阅读
Wine的最新版本改进了Linux系统上的Window
bull; Wine最近收到了对6.0版的更新。 bull; 此更新改进了使用Wine的......
阅读
WSLg-现在可以直接在Windows10下启动Linux程序
有趣的是,微软正在努力使Linux在Windows10下运行。我们都熟悉W......
阅读
Windows11 WSL2 的性能与裸机 Ubuntu Linux 相比
适用于 Linux 的 Windows 子系统既是一种启示,也是一场革命。现在......
阅读