挂载虚拟机镜像文件里的 LVM 逻辑分区

   把一个 guest 操作系统 ubuntu11.10 server安装到一个 raw 文件里,那么在以后的维护过程中就可能会遇到麻烦。比如忘记木马的时候则需要挂载这个虚拟机的文件系统并恢复 shadow,这时候就需要能够挂载虚拟机的文件系统。虚拟机的文件系统在一个 raw 文件上, 这个镜像文件完全模拟了一个硬盘,包含硬盘分区表和 LVM 逻辑卷,所以不能通过 mout 简单挂载,需要一些额外的工作,那么如何才能挂载这个镜像文件里的 LVM 逻辑分区呢?


首先用 losetup 工具把 server.img 文件和 loop 设备映射起来:

sina@ubuntu:~/work/system$ sudo losetup -f server.img 
[sudo] password for sina: 
sina@ubuntu:~/work/system$ sudo losetup -a
/dev/loop0: [0806]:65 (/host/ubuntu/disks/root.disk)
/dev/loop1: [0700]:606647 (/home/sina/work/system/server.img)
然后通过 fdisk  来查看 server.img 里的分区表,-u 参数指明使用 sector 为单位记录偏移量(offset)而不是 cylinder 为单位:

sina@ubuntu:~/work/system$ sudo fdisk -c -u -l /dev/loop1 

Disk /dev/loop1: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders, total 8388608 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: 0x0007da2a

      Device Boot      Start         End      Blocks   Id  System
/dev/loop1p1   *        2048      499711      248832   83  Linux
/dev/loop1p2          501758     8386559     3942401    5  Extended
/dev/loop1p5          501760     8386559     3942400   8e  Linux LVM
在这里记住LVM的偏移量是 501760 * 512.

先解除掉 /dev/loop1 和 server.img 的映射,然后重新用 offset =  501760 * 512. 映射起来:

sina@ubuntu:~/work/system$ sudo losetup -d /dev/loop1 
sina@ubuntu:~/work/system$ sudo losetup -f -o $((501760*512)) server.img
sina@ubuntu:~/work/system$ sudo losetup -a
/dev/loop0: [0806]:65 (/host/ubuntu/disks/root.disk)
/dev/loop1: [0700]:606647 (/home/sina/work/system/server.img), offset 256901120


查看 /dev/mapper 目录下内容:

sina@ubuntu:~/work/system$ ls /dev/mapper/
4f99368b--30fc--45c5--ae22--3273efba7349-root    control
4f99368b--30fc--45c5--ae22--3273efba7349-swap_1
挂载文件到 /mnt

sina@ubuntu:~/work/system$ sudo mount /dev/mapper/4f99368b--30fc--45c5--ae22--3273efba7349-root /mnt
sina@ubuntu:~/work/system$ ls /mnt/
bin   dev  home        lib         media  opt   root  sbin     srv  tmp  var
boot  etc  initrd.img  lost+found  mnt    proc  run   selinux  sys  usr  vmlinuz


使用完后,需要按顺序干净卸载:
$sudo umount /mnt
$sudo losetup -d /dev/loop1


转载省略了很多东西。



原文链接:

http://www.vpsee.com/2010/10/mount-lvm-volumes-from-loopback-disk-images/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值