如何恢复故障KVM虚拟机qcow2磁盘镜像文件LVM分区中的数据
时间:2022-07-26
本文章向大家介绍如何恢复故障KVM虚拟机qcow2磁盘镜像文件LVM分区中的数据,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
KVM虚拟机发生故障,无法正常启动,但是里面存在重要数据,这时如何进行恢复
问题:如何恢复故障KVM虚拟机qcow2磁盘镜像文件LVM分区中的数据
下面以Fedora32 Cockpit方式安装的虚拟机为演示环境,介绍如何恢复故障KVM虚拟机qcow2磁盘镜像文件LVM分区中的数据
1)Fedora32默认安装了cockpit
yum安装cockpit-machines
yum install cockpit-machines.noarch
2)登录cockpit并创建虚拟机 https://192.168.31.155:9090登录cockpit
3)上传自动化安装CentOS7的系统镜像用于测试
4)创建虚拟机
5)在/data分区下写入数据,用于测试
6)模拟系统无法启动的故障
7)关闭虚拟机
接下来进入正题
如何恢复故障KVM虚拟机qcow2磁盘镜像文件LVM分区中的数据
方法一、使用qemu-nbd工具挂载KVM虚拟机的磁盘镜像文件
1. 首先检查当前系统的kernel对NBD模块的支持(NBD:network block device),并加载nbd驱动
Fedora32默认带nbd驱动,CentOS7系统需要手动编译
modinfo nbd
手动加载nbd驱动
modprobe nbd max_part=16
lsmod | grep nbd
2、将qcow2镜像映射为网络块设备(nbd)
qemu-nbd -c /dev/nbd0 /var/lib/libvirt/images/YF_OS.qcow2
ll /dev/nbd0*
3、挂载nbd设备
lsblk
lsblk -f
挂载
mount /dev/mapper/vg_centos-lv_data /kvm_data/
并查看data分区下数据,这时就可以拷贝该分区下的数据进行备份恢复
方法二:使用guestmount挂载KVM虚拟机的磁盘镜像文件
1、安装软件包libguestfs和libguestfs-tools
yum install libguestfs libguestfs-tools -y
2、virt-filesystems检测虚拟机磁盘文件
virt-filesystems 参数-a 检测虚拟机磁盘文件
virt-filesystems -a /var/lib/libvirt/images/YF_OS.qcow2
3、guestmount命令进行挂载
guestmount -a /var/lib/libvirt/images/YF_OS.qcow2 -m /dev/vg_centos/lv_data /mnt/kvm_images/
命令解释:
-a参数指定虚拟磁盘镜像文件
-m参数指定要挂载的设备在虚拟机中的挂载点
最后给出宿主机中的挂载点
cd /mnt/kvm_images/
ll -trh
查看虚拟机中的/data数据下数据,这时就可以拷贝该分区下的数据进行备份恢复
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一起来读开源项目的代码-Agar.io为例
- C语言入门系列之11.文件和文件操作
- 自己动手改造 Jetpack LiveData
- FastDFS基于Docker安装
- 用Python实现批量高效文件处理 解放你的双手
- Windows下使用VS2013编译使用SDL库
- C语言经典习题100例(一)1-5
- C语言经典习题100例(二)6-10
- Python 快速验证代理IP是否有效
- C语言入门系列之6.一维和二维数组
- C语言经典习题100例(五)21-25
- Python 列表 使用技巧
- 通过案例学Python之判断属相
- C语言经典习题100例(七)31-35
- C语言经典习题100例(八)36-40