浏览.img无需安装

反正有没有安装它浏览.img文件? 我有一个.img文件,我是从clonezilla分区快照生成的。 我在使用命令mount -o loop sda5.img /mnt/文件时遇到了问题。

dmesg | tail dmesg | tail显示以下错误:

[1325.395286] EXT4-fs(loop0):坏几何:块计数11221248超出设备大小(11218432块)

任何人都知道如何浏览没有安装或可能导致此错误的原因?

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

要执行此操作,您将需要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首先存在。

我从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 

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

在mount之后很高兴我可以访问我的数据。