无法挂载镜像文件

无法挂载镜像文件

我正在尝试将image_file_name.img具有多个分区的目录挂载到一个目录,但没有成功。

分区详细信息:

sfdisk -l -uS image_file_name.img 
Disk image_file_name.img: cannot get geometry

Disk image_file_name.img: 11 cylinders, 255 heads, 63 sectors/track
Warning: The partition table looks like it was made
  for C/H/S=*/4/63 (instead of 11/255/63).
For this listing I'll assume that geometry.
Units = sectors of 512 bytes, counting from 0

   Device Boot    Start       End   #sectors  Id  System
image_file_name.img1           252       503        252  83  Linux
image_file_name.img2           504    177407     176904  83  Linux
image_file_name.img3             0         -          0   0  Empty
image_file_name.img4             0         -          0   0  Empty


我正在运行以下mount命令:

mount -o offset=$((252*512)) image_file_name.img /tmp/abc/

错误信息:

mount: mounting /dev/loop0 on /tmp/abc/ failed: Invalid argument

对应的错误dmesg

[106359.764567] NTFS-fs error (device loop0): parse_options(): Unrecognized mount option offset.

这是在没有诸如kpartx.

任何帮助表示赞赏。

答案1

鉴于您在 中看到的错误dmesg,我会跳过offset作为一个mount选项并依赖它losetup

通过util-linuxs losetup,您可以使用分区处理:

losetup -P -f --show image_file_name.img

这将显示所使用的循环设备的名称;用它来安装,使用

mount /dev/loop0p1 /tmp/abc

但替换loop0不是 p1) 作为适当的。其他分区可以使用p2etc来访问。

使用busyboxs losetup,您需要直接指定偏移量:

losetup -o $((252*512)) -f image_file_name.img

然后直接安装loop设备,例如

mount /dev/loop0 /tmp/abc

如果卸载文件系统,还应该使用 释放循环设备losetup -d

相关内容