通过losetup和kpartx挽救虚拟机里的数据

基于Xen的虚拟机是把一个文件虚拟成完整的磁盘,因此会有分区信息,不能直接mount。

要mount这个文件需要 losetup(loop setup,专门将镜像类文件mount到loop硬件的命令),和kpartx(专门从镜像文件mount分区的命令)。

# sudo losetup /dev/loop100 /OVS/running_pool/server_file_path/disk_file.img

这个时候 /dev/loop100 基本可以看做虚拟机的磁盘了。

# sudo fdisk -l /dev/loop100

可以看到磁盘分区。

 

接下来就是kpartx,把虚拟磁盘的分区分别挂载到 /dev/mapper/

# sudo kpartx -a /dev/loop100

# ls /dev/mapper/

control  loop100p1  loop100p2  loop100p3  loop100p5  loop100p6

到此就可以根据需要挂载相应的磁盘来恢复了,例如:

# sudo mkdir /mnt/temp

# sudo mount /dev/mapper/loop100p3 /mnt/temp/

loop100p3 就是虚拟磁盘的第三个分区,现在从 /mnt/temp 拷文件出来就随意了。

加入对话

1条评论

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注