Ubuntu挂载虚拟机磁盘的通用流程及具体方法
挂载虚拟机磁盘的核心是通过工具识别虚拟磁盘文件,并将其映射到Ubuntu的文件系统中。以下是详细的操作步骤及常见虚拟磁盘格式的处理方法:
虚拟机磁盘通常以特定格式存储(如VMware的.vmdk、VirtualBox的.vdi、QEMU/KVM的.qcow2)。首先需确认磁盘文件的路径(如~/VirtualBox\ VMs/ubuntu/ubuntu.vdi或/vmware/vm1/vm1.vmdk)和格式(可通过文件扩展名判断)。
根据虚拟磁盘格式安装对应的工具,确保系统能识别和处理虚拟磁盘:
open-vm-tools(支持原生挂载)或vmhgfs-fuse(用于共享文件夹);sudo apt update
sudo apt install open-vm-tools open-vm-tools-desktop # 推荐(包含vmhgfs-fuse)
virtualbox-guest-utils(提供VBoxManage工具);sudo apt install virtualbox-guest-utils virtualbox-guest-dkms
qemu-utils(提供qemu-nbd工具);sudo apt install qemu-utils
挂载点是一个空目录,用于将虚拟磁盘的内容映射到Ubuntu文件系统中。例如创建/mnt/vm_disk:
sudo mkdir -p /mnt/vm_disk
方法1:使用vmhgfs-fuse(推荐,适用于共享文件夹)
若虚拟磁盘是VMware的共享文件夹(通常为.vmdk格式),可直接通过vmhgfs-fuse挂载:
sudo vmhgfs-fuse .host:/ /mnt/vm_disk -o allow_other
其中.host:/表示宿主机的共享文件夹,/mnt/vm_disk是挂载点。
方法2:使用qemu-nbd(适用于普通.vmdk文件)
若虚拟磁盘是虚拟机的系统盘(非共享),需通过qemu-nbd模拟网络块设备:
sudo modprobe nbd max_part=8 # 加载nbd模块,支持分区
sudo qemu-nbd --connect=/dev/nbd0 /path/to/your/disk.vmdk # 连接磁盘
sudo fdisk -l /dev/nbd0 # 查看分区(如/dev/nbd0p1)
sudo mount /dev/nbd0p1 /mnt/vm_disk # 挂载第一个分区
方法1:使用VBoxManage创建raw磁盘并挂载
将.vdi转换为raw格式(.vmdk),再通过mount命令挂载:
VBoxManage internalcommands createrawvmdk -filename ~/output.vmdk -rawdisk /dev/sdX # 替换/dev/sdX为实际物理磁盘(如/dev/sda)
sudo mount -o loop ~/output.vmdk /mnt/vm_disk
注意:此方法需确保物理磁盘未被占用,且需root权限。
方法2:直接挂载(若已格式化为可读格式)
若.vdi文件已格式化为vfat或ext4,可通过mount直接挂载:
sudo mount -t vfat /dev/sdX1 /mnt/vm_disk # 替换/dev/sdX1为实际分区
qemu-nbd挂载qemu-nbd方法,适用于.qcow2格式:sudo modprobe nbd max_part=8
sudo qemu-nbd --connect=/dev/nbd0 /path/to/your/disk.qcow2
sudo fdisk -l /dev/nbd0 # 查看分区
sudo mount /dev/nbd0p1 /mnt/vm_disk # 挂载第一个分区
完成操作后,需安全卸载以避免数据损坏:
sudo umount /mnt/vm_disk
nbd设备:需先断开连接,再卸载模块:sudo qemu-nbd --disconnect /dev/nbd0 # 断开磁盘连接
sudo modprobe -r nbd # 卸载nbd模块
sudo权限;/dev/nbd0p1、/dev/nbd0p2),需挂载对应分区而非整个设备;open-vm-tools、virtualbox-guest-utils),否则可能无法识别磁盘格式;