无虚拟化环境读取KVM虚拟机文件

2,089次阅读
没有评论

共计 3757 个字符,预计需要花费 10 分钟才能阅读完成。

前几天在 VPS 上折腾把 VPS 折腾挂掉了,却没有备份最新的数据,还好 VPS 可以还可以进行快照。下载快照文件后导入到本地 CentOS 中,使用 kpartx 工具可以读取其中的文件然后进行恢复。

 

下载快照文件后解压,得到 vm-649251.disk 文件。

1)模拟查看映射,通过以下结果可以看到能够读取虚拟磁盘的分区信息

[root@lnmt ~]# kpartx -l ./vm-649251.disk
loop0p1 : 0 614400 /dev/loop0 2048
loop0p2 : 0 20352640 /dev/loop0 616448
loop deleted : /dev/loop0

2)开始映射

[root@lnmt ~]# kpartx -av ./vm-649251.disk
add map loop0p1 (253:3): 0 614400 linear /dev/loop0 2048
add map loop0p2 (253:4): 0 20352640 linear /dev/loop0 616448
这里看到映射了两个 loop0 文件在 /dev/mapper

[root@lnmt ~]# ll /dev/mapper/
总用量 0
lrwxrwxrwx. 1 root root       7 3 月   23 10:11 centos-home -> ../dm-2
lrwxrwxrwx. 1 root root       7 3 月   23 10:11 centos-root -> ../dm-0
lrwxrwxrwx. 1 root root       7 3 月   23 10:11 centos-swap -> ../dm-1
crw——-. 1 root root 10, 236 3 月   23 10:11 control
lrwxrwxrwx. 1 root root       7 3 月   27 08:42 loop0p1 -> ../dm-3
lrwxrwxrwx. 1 root root       7 3 月   27 08:42 loop0p2 -> ../dm-4
我这里是两个 LINUX 分区,如果有使用 LVM 分区的话就需要用 LVM 的方式处理挂载,这里先不详叙了。

 

3)挂载 LINUX 分区

[root@lnmt ~]# mkdir /mnt/p1

[root@lnmt ~]# mkdir /mnt/p2

[root@lnmt ~]# mount /dev/mapper/loop0p1 /mnt/p1
[root@lnmt ~]# mount /dev/mapper/loop0p2 /mnt/p2

 

[root@lnmt ~]# ll /mnt/p1
总用量 99790
-rw-r–r–. 1 root root   108103 5 月   11 2016 config-2.6.32-642.el6.x86_64
-rw-r–r–. 1 root root   108228 1 月   27 01:55 config-2.6.32-696.20.1.el6.x86_64
-rw-r–r–. 1 root root   182745 3 月   23 2017 config-4.10.5-1.el6.elrepo.x86_64
-rw-r–r–. 1 root root   189210 1 月   29 12:36 config-4.15.0-1.el6.elrepo.x86_64
drwxr-xr-x. 3 root root     1024 3 月   14 2017 efi
drwxr-xr-x. 2 root root     1024 2 月    3 16:55 grub
-rw——-. 1 root root 18357173 3 月   14 2017 initramfs-2.6.32-642.el6.x86_64.img
-rw——-. 1 root root 18411832 2 月    3 16:54 initramfs-2.6.32-696.20.1.el6.x86_64.img
-rw——-. 1 root root 21695360 3 月   23 2017 initramfs-4.10.5-1.el6.elrepo.x86_64.img
-rw——-. 1 root root  7790394 2 月    3 16:55 initramfs-4.15.0-1.el6.elrepo.x86_64.img
drwx——. 2 root root    12288 3 月   14 2017 lost+found
-rw-r–r–. 1 root root   215559 5 月   11 2016 symvers-2.6.32-642.el6.x86_64.gz
-rw-r–r–. 1 root root   215711 1 月   27 01:55 symvers-2.6.32-696.20.1.el6.x86_64.gz
-rw-r–r–. 1 root root   341832 3 月   23 2017 symvers-4.10.5-1.el6.elrepo.x86_64.gz
-rw-r–r–. 1 root root   358724 1 月   29 12:36 symvers-4.15.0-1.el6.elrepo.x86_64.gz
-rw-r–r–. 1 root root  2615003 5 月   11 2016 System.map-2.6.32-642.el6.x86_64
-rw-r–r–. 1 root root  2627250 1 月   27 01:55 System.map-2.6.32-696.20.1.el6.x86_64
-rw——-. 1 root root  3417542 3 月   23 2017 System.map-4.10.5-1.el6.elrepo.x86_64
-rw——-. 1 root root  3635388 1 月   29 12:36 System.map-4.15.0-1.el6.elrepo.x86_64
-rwxr-xr-x. 1 root root  4264528 5 月   11 2016 vmlinuz-2.6.32-642.el6.x86_64
-rwxr-xr-x. 1 root root  4282608 1 月   27 01:55 vmlinuz-2.6.32-696.20.1.el6.x86_64
-rwxr-xr-x. 1 root root  6249120 3 月   23 2017 vmlinuz-4.10.5-1.el6.elrepo.x86_64
-rwxr-xr-x. 1 root root  6663568 1 月   29 12:36 vmlinuz-4.15.0-1.el6.elrepo.x86_64
[root@lnmt ~]# ll /mnt/p2
总用量 135284
dr-xr-xr-x.  2 root root      4096 2 月    3 16:53 bin
drwxr-xr-x.  2 root root      4096 3 月   14 2017 boot
drwxr-xr-x.  2 root root      4096 3 月   14 2017 dev
drwxr-xr-x. 74 root root      4096 3 月   23 08:15 etc
drwxr-xr-x.  2 root root      4096 9 月   23 2011 home
dr-xr-xr-x. 10 root root      4096 2 月    3 10:33 lib
dr-xr-xr-x.  9 root root     12288 2 月    3 16:53 lib64
drwx——.  2 root root     16384 3 月   14 2017 lost+found
drwxr-xr-x.  2 root root      4096 9 月   23 2011 media
drwxr-xr-x.  2 root root      4096 9 月   23 2011 mnt
-rw-r–r–.  1 root root         0 3 月   14 2017 null
drwxr-xr-x.  3 root root      4096 2 月    3 15:00 opt
drwxr-xr-x.  2 root root      4096 2 月    3 10:29 patch
drwxr-xr-x.  2 root root      4096 3 月   14 2017 proc
dr-xr-x—.  7 root root      4096 3 月    1 17:31 root
dr-xr-xr-x.  2 root root     12288 2 月    3 16:53 sbin
drwxr-xr-x.  2 root root      4096 3 月   14 2017 selinux
drwxr-xr-x.  2 root root      4096 9 月   23 2011 srv
-rw——-.  1 root root 138412032 2 月    3 10:17 swap
drwxr-xr-x.  2 root root      4096 3 月   14 2017 sys
drwxrwxrwt.  3 root root      4096 3 月   23 08:15 tmp
drwxr-xr-x. 13 root root      4096 3 月   14 2017 usr
drwxr-xr-x. 18 root root      4096 2 月    3 10:23 var
drwxr-xr-x.  7 root root      4096 2 月    3 10:45 www
这里我们可以看到 /mnt/p1 是虚拟机 /boot 分区的内容,/mnt/p2 是数据分区的内容,接下来我们就可以将我们需要的数据拷贝出来后进行数据恢复操作。

正文完
 
Winter
版权声明:本站原创文章,由 Winter 2018-03-27发表,共计3757字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码