浏览.img而不进行安装


13

无论如何,有没有浏览.img文件而无需挂载的情况?我有一个从clonezilla分区快照生成的.img文件。我以某种方式在挂载文件时遇到问题mount -o loop sda5.img /mnt/

dmesg | tail 显示了以下错误:

[1325.395286] EXT4-fs(loop0):几何形状错误:块计数11221248超出了设备的大小(11218432块)

任何人都知道如何在不安装的情况下进行浏览,否则可能会导致此错误?



Answers:


18

如果这是整个硬盘驱动器的映像,或者在您的情况下,这可能是扩展分区的映像,则需要知道分区布局以及文件中每个分区的偏移量才能进行安装。

为此,您将需要该parted工具,可以使用以下命令进行安装:

apt-get install parted

安装后parted,从映像文件的路径启动它。parted将显示一个提示:

$ parted /path/to/image/file/sda5.img
GNU Parted 2.3
.....
(parted)

在此提示符(带有前缀(parted))中,键入以下命令:

(parted) unit B
(parted) print
.....
Number  Start          End            Size           Type     File system  Flags
 1      1048576B       1573912575B    1572864000B    primary  ntfs         boot
 2      1573912576B    156774694911B  155200782336B  primary  ntfs
 3      156774694912B  171454758911B  14680064000B   primary  ntfs
 4      171454758912B  180044693503B  8589934592B    primary

(parted) q

输出中的表将告诉您文件中每个分区的偏移量以及每个分区中的文件系统类型。例如,要在上面的示例输出中挂载第一个分区,您将需要输入以下命令:

sudo mount -o loop,ro,offset=1048576 /path/to/image/file/sda5.img /mnt/partition

确保/mnt/partition首先存在。


1
好的,我认为问题可能是在运行print命令时出现错误,因为它显示未知的分区表。猜猜图像坏了吗?
Ahatius

看起来很像坏了。但是,请先尝试在Google上解决您的错误。
弯机

1
Can't have a partition outside the disk!与gparted一样的错误...
Philippe Gachoud

8

我从Clonezilla快照生成的ext4图像遇到了同样的问题。

对我来说真正有效的方法是使用truncate将文件扩展到分区表报告的大小。在我的案例中报告的错误dmesg是:

[15687.653868] EXT4-fs (loop0): bad geometry: block count 18482176 exceeds size
  of device (18352672 blocks)

所以我用以下命令调整了文件的长度:

truncate -o -s 18482176 /path/to/partition.img

(^注意是第一个,也是日志中两个数字中的较大者)

挂载之后很开心,我可以访问我的数据了。


尽管大小错误,但是这对我有用,我猜块大小是不同的,因此我必须以字节为单位指定大小。请小心,因为如果将图像文件截断到小于原始大小的大小,则可能会丢失数据。
golimar

1
您怎么知道正确的尺寸?请在此处添加命令。
洪苏2014年

@Hunsu在错误消息(dmesg)中报告了大小。
Melebius '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.