如何检查磁盘映像

如何检查磁盘映像

我有一个硬盘转储文件。一家硬盘恢复公司帮我转储的。我不知道他们用什么软件转储的,我只有一个文件disk.img

我唯一的想法是使用file

$ file disk.img 
12693A.img: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, stage2 address 0x2000, stage2 segment 0x200; partition 1: ID=0xc, starthead 1, startsector 63, 312576642 sectors, code offset 0x48

我猜,如果这是硬盘的转储,它按以下顺序包含 a) 引导扇区 b) 分区表 c) 分区。所以我猜该file工具只读取(任何)文件的第一部分,在本例中,第一部分是引导扇区,尽管文件包含的内容远不止这些。

我如何能:

1) 查看分区表。不是十六进制代码,而是一些人类可读的关于分区的信息。

2) 我如何查看每个分区的内容?我猜这被称为“安装”,尽管它不是物理磁盘,尽管我对更改任何文件不感兴趣,只是想查看内容。

答案1

由于它是一个包含整个磁盘副本的文件,因此您可以像对待其他块设备一样简单地对待它并fdisk在其上运行。鉴于磁盘映像名为disk.img,以下命令就足够了:

fdisk -l disk.img

这将产生类似以下内容的输出:

Disk /home/yjwong/disk.img: 250.1 GB, 250058268160 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488395055 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device              Boot      Start         End      Blocks   Id  System
/home/yjwong/disk.img1            2048     3905535     1951744   82  Linux swap / Solaris
/home/yjwong/disk.img2   *     3905536   488394751   242244608   83  Linux

要挂载分区,Linux 内核允许您在 mount 命令中指定磁盘映像的偏移量(以字节为单位)。您需要在磁盘映像内循环挂载分区。但是,由于fdisk指定了扇区的起始偏移量,您需要将给定的偏移量乘以扇区大小(通常为 512)。

要挂载上面示例中的第二个分区,偏移量为3905536 * 512 = 1999634432

ext4假设分区类型为,并且/mnt是预期的挂载点,以下命令将发挥作用:

sudo mount -t ext4 /home/yjwong/disk.img /mnt -o loop,offset=1999634432

如果想要以只读的方式查看内容,可以添加ro到挂载选项中:

sudo mount -t ext4 /home/yjwong/disk.img /mnt -o loop,offset=1999634432,ro

答案2

图片是 mime 中已知的文件类型。

mimeopen <file>.img 

会向您提供明智的选择。如果要将映像刷入 SD 卡以从其启动 Ubuntu,并且该映像已安装在

/media/$USER

显然他开始应用程序/x-raw-磁盘映像
系统很可能会调整这些命令,所以我希望这种技术也能很好地发挥作用。

相关内容