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命令无效,可通过以下方式安装
- 安装软件包 qemu-utils;
$ apt-get update
$ apt-get install qemu-utils
- 开启 nbd
$ modprobe nbd max_part=4
- 在宿主系统中首先挂载虚拟机所在磁盘分区,挂载后可定位到镜像文件对应的qcow2文件所在目录,如本例中
$ mount /dev/sdd1 /media/folderd
$ ls /media/folderd/nas_sdb1/images/100/vm-100-disk-1.qcow2
- 连接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
- 挂载nbd2设置到系统文件中,正常 Mount分区后可进行读写等操作,如通过rsync备份数据;
$ mount /dev/nbd2p1 /media/s1
- 使用完成后的卸载方式与顺序,先卸载本系统中分区,然后卸载镜像磁盘;
$ umount /media/s1
$ qemu-nbd --disconnect /dev/nbd2
或
$ qemu-nbd -d /dev/nbd2
如挂载NTFS分区,需在Step5前增加如下操作,即NTFS对应安装ntfs-3g文件系统后,再挂载;
$ apt-get install ntfs-3g