pve/linux/直接挂载/修改虚拟磁盘文件img/qcow2/vmdk

对于一般的linux发行版执行下面命令。PVE自带这些工具,直接略过

#首先安装
sudo apt-get install qemu-utils
或者
sudo yum install qemu-img

第一步:开启nbd

modprobe nbd max_part=8

第二步:挂载虚拟磁盘

#代码如下
qemu-nbd --connect=/dev/nbd1 /path/to/qcow2/image
#解释 /dev/nbd1就是磁盘名,例如/dev/sda 
#注意的是这个nbd后面必须加个数字序号,可以1,可以是2。否则报错
qemu-nbd: Failed to open /dev/nbd: No such file or directory
#/path/to/qcow2/image 就是磁盘位置
#使用演示
1、qcow2位置/mnt/pve/nvme960/images/107/vm-107-disk-0.qcow2
2、磁盘名为nbd
#挂载虚拟磁盘
qemu-nbd --connect=/dev/nbd2 /mnt/pve/nvme960/images/107/vm-107-disk-0.qcow2
#使用fdisk查看磁盘
fdisk -l |grep nbd2
#可以看到如下信息
#Partition 1 does not start on physical sector boundary.
#Disk /dev/nbd2: 32 GiB, 34359738368 bytes, 67108864 sectors
#/dev/nbd2p1 *      2048   206847   204800  100M  7 HPFS/NTFS/exFAT
#/dev/nbd2p2      206848 67106815 66899968 31.9G  7 HPFS/NTFS/exFAT
#此时的虚拟磁盘就挂载成功了。可以看到2个分区。我这里挂载的是一个win7的镜像。其中/dev/nbd2p2是win7系统所在分区。格式是NTFS

第三步挂载分区

#由于是NTFS需要安装ntfs-3g
apt install ntfs-3g -y
#新建挂载点
mkdir /win7
#挂载/dev/nbd2p2  到/win7
mount /dev/nbd2p2  /win7
#查看挂载情况 
df -h |grep win7
#输出如下
/dev/nbd2p2            32G   24G  8.9G  73% /win7
#直接进入文件夹去看看
root@pve:/win7# ls
'$Recycle.Bin'		   pagefile.sys  'Program Files'	'System Volume Information'
'Documents and Settings'   PerfLogs	 'Program Files (x86)'	 Users
 hiberfil.sys		   ProgramData	  Recovery		 Windows
#挂载完,再新建一个文件夹试试
mkdir 1

第四步卸载

1、先卸载分区

umount /win7 

2、卸载磁盘

qemu-nbd --disconnect /dev/nbd2

第五步 大功告成

可以看到有个文件夹1

Author: 佛西

Leave a Reply

Your email address will not be published.