Linux上挂载虚拟磁盘
通过qemu实现
-
安装
qemu-kvm
- Debian/Ubuntu 等使用
sudo apt-get install qemu-kvm
进行安装 - Archlinux 使用
sudo pacman -S qemu
进行安装 - RedHat/CentOS 等使用
sudo yum install qemu-kvm
进行安装
- Debian/Ubuntu 等使用
-
加载 nbd 驱动
NBD(Network Block Device ,网络块设备) ,可以将一个远程主机的磁盘空间(与挂载nfs有区别),当作一个本地块设备来使用。NBD是一个内核模块,大部分不需要再安装了。
sudo modprobe nbd max_part=8
max_part=8 : 指定了 NBD 设备最多可以有 8 个分区
- 加载完成后,可以使用modinfo命令来查看模块信息
modinfo nbd
# 查看nbd设备
ls /dev/nbd*
- 将虚拟磁盘文件连接到nbd设备(以vhd为例)
sudo qemu-nbd -c /dev/nbd0 /path/to/file.vhdx
# 查看分区信息
sudo fdisk -l /dev/nbd0
- 关闭 nbd 连接
sudo qemu-nbd -d /dev/nbd0
- 挂载分区
根据分区信息选择正确的文件系统格式挂载(这里以exFAT为例)
sudo mount -t exfat -o rw /dev/nbd0p1 /mnt
# 卸载
sudo umount /mnt
通过vdfuse实现
vdfuse 是一个用于挂载 VirtualBox 硬盘镜像文件(.vdi、.vmdk 等)的 FUSE(文件系统用户空间)模块。FUSE 允许非特权用户在不修改内核代码的情况下创建自己的文件系统。vdfuse 使得用户能够在 Linux 系统中像访问普通文件夹一样访问 VirtualBox 虚拟硬盘镜像中的内容。
使用 vdfuse,用户可以挂载 VirtualBox 虚拟磁盘镜像,从而能够查看和修改其中的文件。这在备份虚拟机数据、进行系统恢复或者在虚拟机和宿主机之间传输文件时非常有用。
vdfuse 支持 VirtualBox 创建的虚拟磁盘镜像格式,包括以下几种:vdi、vmdk、vhd、hdd、qcow、qed、raw等,可使用 vdfuse --help
来获取最新的支持信息和命令行选项。
- 安装 VirtualBox
- 挂载
sudo vdfuse -f /path/to/file.vdi /path/to/mountpoint
- 卸载
sudo mount /path/to/mountpoint
通过vmware-mount实现
vmware-mount 是 VMware Workstation 的一个命令行工具,它允许用户在宿主操作系统上挂载和访问 VMware 虚拟机的虚拟磁盘文件。这个工具对于备份、恢复或直接编辑虚拟机磁盘中的文件非常有用。
vmware-mount 支持多种 VMware 磁盘格式,包括 VMDK(Virtual Machine Disk)格式,这是 VMware 最常用的磁盘文件格式。
vmware-mount 支持的一些常见虚拟磁盘格式:vmdk、vmfs、vdi、vhd、raw等,可使用 vmware-mount -h
命令来获取最新的帮助信息和确认支持的格式。
- 安装 VMware Workstation
- 挂载
sudo vmware-mount /path/to/file.vmdk /path/to/mountpoint
- 卸载
sudo mount /path/to/mountpoint