QEMU Disk Network Block Device Server

kvm磁盘read-only修复

Posted by Derrick on April 7, 2022

qemu-nbd介绍

NBD(Network Block Device),即网络块设备。可以将一个远程主机的磁盘空间,当作一个块设备来使用。就像一块硬盘一样使用它,你可以很方便的将另一台服务器的硬盘空间,增加到本地服务器上。NBD与NFS有所不同,NFS只是提供一个挂载点供客户端使用,客户端无法改变这个挂载点的分区格式,而NBD提供的是一个块设备,客户端可以把这个块设备格式化成各种类型的分区,更便于用户的使用。NBD是一个内核模块,大部分Linux发行版都已包含它。



操作步骤

kvm磁盘read-only恢复

内核启动nbd

modprobe nbd max_part=8

关闭机器

virsh destroy virtualhost_Name

挂载磁盘,挂载只读磁盘对应的qcow2文件

cd /qcow2Path/

qemu-nbd -c /dev/nbd0 virtualhost_Name_sda.qcow2

修复分区

磁盘镜像中存在多个分区的话,分区会被映射成p2 p3等

fsck.ext4 -y /dev/nbd0p2

fsck.ext4 /dev/nbd0p3

卸载磁盘

qemu-nbd -d /dev/nbd0

启动kvm

virsh start virtualhost_Name



参考

https://www.qemu.org/docs/master/tools/qemu-nbd.html