无需挂载即可浏览 .img

无需挂载即可浏览 .img

有没有办法在不挂载 .img 文件的情况下浏览它?我有一个从 clonezilla 分区快照生成的 .img 文件。不知为何,我无法使用命令挂载该文件mount -o loop sda5.img /mnt/

dmesg | tail显示以下错误:

[1325.395286] EXT4-fs(loop0):几何形状不良:块数 11221248 超出设备大小(11218432 个块)

有人知道如何在不安装的情况下进行浏览或者什么可能导致此错误吗?

答案1

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

为此,您将需要该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存在。

答案2

我在使用从 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

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

之后,安装就顺利了,我就可以访问我的数据了。

相关内容