linux下挂载VHD等虚拟磁盘文件的方法
发布时间 - 2026-01-11 00:51:50 点击率:次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挂载是一样的,前提是要是支持的磁盘映像格式才行。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# linux
# 挂载vhd
# 磁盘挂载
# Linux 挂载磁盘详解及实操步骤
# linux如何mount挂载磁盘并设置开机自动mount的实现
# Linux下如何挂载磁盘的方法示例
# Linux云服务器挂载新磁盘的方法步骤
# Linux磁盘挂载、分区、扩容操作的实现方法
# LINUX磁盘分区、格式化、挂载、卸载详细过程
# Linux单目录挂载多块磁盘的操作步骤
# 扇区
# 可以使用
# 镜像文件
# 可以直接
# 加载
# 只有一个
# 的是
# 已用
# 是一个
# 都有
# 你是
# 目录下
# 多个
# 的说
# 说了
# 但在
# 将其
# 可以通过
# 不需
# 才行
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何制作一个表白网站视频,关于勇敢表白的小标题?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
zabbix利用python脚本发送报警邮件的方法
如何用好域名打造高点击率的自主建站?
如何用IIS7快速搭建并优化网站站点?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
如何自定义建站之星网站的导航菜单样式?
如何在阿里云虚拟服务器快速搭建网站?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
如何快速生成高效建站系统源代码?
如何基于PHP生成高效IDC网络公司建站源码?
JavaScript数据类型有哪些_如何准确判断一个变量的类型
如何在Windows虚拟主机上快速搭建网站?
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
香港服务器如何优化才能显著提升网站加载速度?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
如何在景安云服务器上绑定域名并配置虚拟主机?
个人网站制作流程图片大全,个人网站如何注销?
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
C++时间戳转换成日期时间的步骤和示例代码
UC浏览器如何设置启动页 UC浏览器启动页设置方法
php485函数参数是什么意思_php485各参数详细说明【介绍】
如何在阿里云通过域名搭建网站?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
如何获取PHP WAP自助建站系统源码?
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
独立制作一个网站多少钱,建立网站需要花多少钱?
如何生成腾讯云建站专用兑换码?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Laravel如何优化应用性能?(缓存和优化命令)
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
如何在阿里云ECS服务器部署织梦CMS网站?
深圳网站制作培训,深圳哪些招聘网站比较好?
香港服务器部署网站为何提示未备案?
Laravel怎么实现模型属性的自动加密
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
Laravel如何实现API版本控制_Laravel版本化API设计方案
如何用AWS免费套餐快速搭建高效网站?
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
开心动漫网站制作软件下载,十分开心动画为何停播?
如何在Windows环境下新建FTP站点并设置权限?
PythonWeb开发入门教程_Flask快速构建Web应用
如何确保西部建站助手FTP传输的安全性?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
JS去除重复并统计数量的实现方法
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践

