我有一个图像文件:kali-linux-1.0.9a-armhf.img
。它是 的图像Kali Linux ARMH build
。
我试图提取映像的内容,但无济于事。我尝试挂载映像,但一直收到文件系统类型错误的错误。
我尝试过:
sudo mount -o loop -t iso9660 kali-linux-1.0.9a-armhf.img /mnt/kali
sudo mount -o loop -t ext3 kali-linux-1.0.9a-armhf.img /mnt/kali
sudo mount -o loop -t ext4 kali-linux-1.0.9a-armhf.img /mnt/kali
我收到的错误是:
mount: wrong fs type, bad option, bad superblock on /dev/loop0
这是因为我正在尝试安装为不同架构创建的图像吗?
唯一接近工作的命令是挂载为iso9660
。该命令输出:
mount: block device /mnt/hgfs/Downloads/kali-linux-1.0.9a-armhf/kali-linux-1.0.9a-armhf.img is write protected, mounting read only
mount: wrong fs type, bad option, bad superblock on /dev/loop0
因此它似乎已挂载,但实际上并未挂载,然后我收到错误。当使用除此以外的文件系统时,iso9660
我只收到警告。
我可以通过哪些方式来提取该图像的内容?
答案1
这是因为我正在尝试安装为不同架构创建的图像吗?
不,这是因为您尝试安装的映像看起来首先不像任何可安装的文件系统。它是整个磁盘图像– 它以 MBR 分区表开始,然后才有一些包含文件系统的分区,每个分区都将单独安装。(不过,这个特定的映像只有一个分区。)
要访问其内容,您需要为每个分区设置一个循环设备,而不仅仅是为整个文件设置一个循环设备。
如果你有一个相对较新的内核和 util-linux,请使用losetup --partscan
:
# losetup -f -P kali-linux-1.0.9a-armhf.img
# losetup
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0 0 0 0 0 /tmp/kali-linux-1.0.9a-armhf.img
# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
loop0
└─loop0p1 ext4 DEBIAN_LIVE 5ac96015-c0e0-45dc-8642-a53d9e9826c8
# mount /dev/loop0p1 /mnt
如果您的系统太旧,也可以通过kpartx
工具。