首页IT科技linux虚拟机挂载移动硬盘(linux下挂载VHD等虚拟磁盘文件的方法)

linux虚拟机挂载移动硬盘(linux下挂载VHD等虚拟磁盘文件的方法)

时间2025-09-19 00:22:11分类IT科技浏览9365
导读:1、RAW格式虚拟磁盘...

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挂载是一样的                   ,前提是要是支持的磁盘映像格式才行。

声明:本站所有文章         ,如无特殊说明或标注                            ,均为本站原创发布                            。任何个人或组织                   ,在未征得本站同意时,禁止复制                   、盗用                             、采集         、发布本站内容到任何网站         、书籍等各类媒体平台                            。如若本站内容侵犯了原著者的合法权益                            ,可联系我们进行处理。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
win10电脑错误代码0×c000014c(Win10电脑错误代码0xc0000f怎么办?电脑出现0Xc0000f代码修复方法) 2021网络赚钱方法(网络**如何**赚钱方法-王刚日记:网络**赚钱干什么最赚钱?)