背景
当虚拟机出现崩溃,客户并不急于恢复虚拟机或者虚拟机已经无法恢复时,可以通过挂载虚拟机镜像,可以获取虚拟机镜像内部的数据,这样用户的数据就可以抢救出来了。
挂载方法
假设虚拟机磁盘镜像路径为$PATH
,镜像格式为$FORMAT
, 挂载的目标目录为$mnt
按照如下顺序执行命令:
# modprobe nbd max_part=16
# lsmod | grep nbd #查看nbd模块是否加载
# qemu-nbd -c /dev/nbd0 $PATH -f $FORMAT #将磁盘镜像挂载到/dev/nbd0设备
# fdisk -l /dev/nbd0 #查看镜像的分区情况
- 1
- 2
- 3
- 4
通过fdisk查看分区情况,查看结果例如:
Disk /dev/nbd0: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders, total 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008104f
Device Boot Start End Blocks Id System
/dev/nbd0p1 * 63 208844 104391 83 Linux
/dev/nbd0p2 208845 41929649 20860402+ 8e Linux LVM
/dev/nbd0p3 41929650 167766794 62918572+ 83 Linux
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
非lvm分区挂载
可以看到其中第二个分区使用了lvm,其他两个分区是非lvm分区,如果需要挂载第三个分区,也就是非lvm分区,可以执行下列命令:
# qemu-nbd -c /dev/nbd1 $PATH -f $FORMAT -P 3
# mount /dev/nbd1 $mnt
- 1
- 2
lvm分区挂载
如果需要挂载第二个分区,就是lvm分区,可以执行下列命令:
# qemu-nbd -c /dev/nbd2 $PATH -f $FORMAT -P 2
# pvscan
- 1
- 2
pvscan可以看到物理卷的信息
PV /dev/sda5 VG hty-compute2-vg lvm2 [465.52 GiB / 0 free]
PV /dev/loop2 VG cinder-volumes lvm2 [30.00 GiB / 30.00 GiB free]
PV /dev/nbd1 VG VolGroup00 lvm2 [19.88 GiB / 0 free]
Total: 3 [515.39 GiB] / in use: 3 [515.39 GiB] / in no VG: 0 [0 ]
- 1
- 2
- 3
- 4
lvm分区都被映射到/dev/mapper/下
# ls /dev/mapper/
control hty--compute2--vg-swap_1 VolGroup00-LogVol01
hty--compute2--vg-root VolGroup00-LogVol00
- 1
- 2
- 3
以上在VolGroup00组中,有两个lv,分别尝试挂载之后,发现其中一个是swap分区,无法挂载,在本文的例子中,VolGroup00-LogVol01是swap分区,VolGroup00-LogVol00是逻辑分区,因此挂载VolGroup00-LogVol00.
# mount /dev/mapper/VolGroup00-LogVol00 $mnt
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2016-01-13 MingW编译virt-viewer
2016-01-13 virt viewer Usbredir USB重定向
2016-01-13 libvirt虚拟系统如何增加usb设备
2015-01-13 openStack windows2008 centos6.* img
2015-01-13 openStack icehouse for centos6.4 production Env 实战
2014-01-13 always NetWork Performance measure Tools
2014-01-13 C_functions