如何映射磁盘映像的分区

如何映射磁盘映像的分区

linux0.11 调试环境中有一个硬盘影像hdc-0.11-new.img
我想看看它的内容. 我的系统是ubuntu14. 当然应该在主系统上看.
1. 将该文件映射到一个loop 设备上
$ sudo losetup /dev/loop0 hdc-0.11-new.img

但当我们mount 到一个安装点时却不能成功
$ sudo mount /dev/loop0 /mnt
mount: you must specify the filesystem type
纵使指定了文件系统(minix)也不能成功,因为它并不是一个单纯的文件系统,而是一个硬盘影像
硬盘影像可以包含分区,而每个分区都可以是单独的一个文件系统
查看一下这个文件的分区.

$ sudo fdisk /dev/loop0

Command (m for help): p

Disk /dev/loop0: 127 MB, 127631360 bytes
16 heads, 38 sectors/track, 410 cylinders, total 249280 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: 0x00000000

      Device Boot      Start         End      Blocks   Id  System
      /dev/loop0p1               2      124031       62015   81  Minix / old Linux
      /dev/loop0p2          124032      248063       62016   81  Minix / old Linux

我们知道,minix 文件系统是在第一个分区/dev/loop0p1 上,
那我们如何才能把这个分区安装成功?
这需要用到一个命令kpartx, 从分区表中创建映射.


2. 通过分区表创建设备映射,设备名在/dev/mapper/ 下
$ sudo kpartx -av /dev/loop0
add map loop0p1 (252:0): 0 124030 linear /dev/loop0 2
add map loop0p2 (252:1): 0 124032 linear /dev/loop0 124032

我们已经可以在/dev/mapper下看到loop0p1,loop0p2的映射,
在ubuntu 下已经自动弹出了2个磁盘影像,可以点击查看.

如果没有自动mount, 也可以手工操作之,示例如下:
3. 挂载之:
$ sudo mount /dev/mapper/loop0p1 /mnt
4. 查看:
hjj@hjj-Inspiron:/dev/mapper$ cd /mnt
hjj@hjj-Inspiron:/mnt$ ls -F
bin/  dev/  etc/  image/  mnt/  shoelace*  tmp/  usr/  var/

 

你可能感兴趣的:(kernel)