linux kvm img目录更换,恢复KVM虚拟机中的文件

前几天RHRL中的qemu-KVM的一个虚拟机上面安装的window

server系统不知因为中毒还是什么原因,一打开就卡死,懒得去找原因直接重建一个。Linux可以直接从KVM虚拟机的镜像文件(**.img)中将虚拟机文件系统中的文件读取出来,下面记录一下解决的过程。

首先要将虚拟机关闭,使用file命令查看镜像的格式eg: file

windows.img,得到的结果可能是raw格式的也可能是qcow2格式的。我的是qcows格式的,这种格式的也可以直接挂载但是要用到KVM-ndb工具,而不一定所有版本的Linux都支持NDB模块,非要用的话还要进行内核的重编译,相对比较麻烦。不如直接把qcow2的合适转化成raw格式,可以用qemu-img命令eg

:

qemu-img convert -O raw -f qcow2 linux-6-x86_64.img linux-6-x86_64_bak.img

,这样得到的linux-6-x86_64_bak.img 是前者的备份但是已经变成了raw格式。

下面要用到loop设备,loop

设备是一种伪设备(pseudo-device),或者也可以说是仿真设备。它能使我们像块设备一样访问一个文件。首先使用命令

losetup -f

看看有哪些是空闲的,一般找到的是/dev/loop0设备,下面将loop0设备与之前的镜像关联起来,eg:losetup

/dev/loop0 kvm/linux-6-x86_64_bak.img

,现在loop0就是一个虚拟的设备,我们可以将它挂载,kpartx -av

/dev/loop0可以查看它的分区,然后可以分别挂载它的不同的分区,mount /dev/mappper/loop0p1

/mnt 这边的loop0p1即它的第一个分区。

最后,如果虚拟机安装的是linux系统还好,如果里面是windows系统,它的文件系统是NTFS格式的,不能直接安装,安装一个叫NTFS-3g的软件,安装好后mount

-t ntfs-3g /dev/mappper/loop0p1

/mnt 就OK了,现在进入/tmp目录就可以查看虚拟机中的文件了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值