自在工坊

走在代码边缘

PVE系统挂载VM镜像硬盘之qcow2格式

PVE做为宿主机,安装了OpenMediaVault系统,分配宿主机硬盘作为OMV资源盘使用;由于硬件配置原因,准备升级平台,想通过宿主机挂载OMV镜像文件,直接备份数据,记录操作方式如下

对于qcow2格式的镜像文件,需要使用 qemu-nbd 这个工具,通常PVE系统中这个工具会默认安装; 可通过以下命令检查;

$ qemu-nbd --version

qemu-nbd 5.2.0 (pve-qemu-kvm_5.2.0)
Written by Anthony Liguori.

Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

如qemu-nbd命令无效,可通过以下方式安装

  1. 安装软件包 qemu-utils;
$ apt-get update
$ apt-get install qemu-utils
  1. 开启 nbd
$ modprobe nbd max_part=4
  1. 在宿主系统中首先挂载虚拟机所在磁盘分区,挂载后可定位到镜像文件对应的qcow2文件所在目录,如本例中
$ mount /dev/sdd1 /media/folderd
$ ls /media/folderd/nas_sdb1/images/100/vm-100-disk-1.qcow2
  1. 连接VM中的镜像qcow2文件到nbdX,可通过fdisk -l 查询结果
$ ls /dev/nbd*

/dev/nbd0   /dev/nbd11  /dev/nbd14  /dev/nbd2p1  /dev/nbd5  /dev/nbd8
/dev/nbd1   /dev/nbd12  /dev/nbd15  /dev/nbd3    /dev/nbd6  /dev/nbd9
/dev/nbd10  /dev/nbd13  /dev/nbd2   /dev/nbd4    /dev/nbd7

从nbd0-nbd15,任选一个设备进行使用,本例中使用/dev/nbd2

$ qemu-nbd --connect=/dev/nbd2 /media/folderd/nas_sdb1/images/100/vm-100-disk-1.qcow2
或
$ qemu-nbd -c /dev/nbd2 /media/folderd/nas_sdb1/images/100/vm-100-disk-1.qcow2

$ fdisk -l /dev/nbd2

Disk /dev/nbd2: 933 GiB, 1001801121792 bytes, 1956642816 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
  1. 挂载nbd2设置到系统文件中,正常 Mount分区后可进行读写等操作,如通过rsync备份数据;
$ mount /dev/nbd2p1 /media/s1
  1. 使用完成后的卸载方式与顺序,先卸载本系统中分区,然后卸载镜像磁盘;
$ umount /media/s1

$ qemu-nbd --disconnect /dev/nbd2
或
$ qemu-nbd -d /dev/nbd2

如挂载NTFS分区,需在Step5前增加如下操作,即NTFS对应安装ntfs-3g文件系统后,再挂载;

$ apt-get install ntfs-3g

Pelican Image

Comments