把一个 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/