如何在 Linux 中挂载 .bin 映像文件

如何在 Linux 中挂载 .bin 映像文件

我使用 AWS 导入服务导入了一个大型 (2TB) 驱动器,他们在我的 S3 帐户中放入了两个 .bin 文件。他们的说明说要将 EBS 卷合并在一起,以形成一个足够大的驱动器来容纳映像,然后只需使用它即可。

好吧,我已经把所有东西都条纹化了,但我不知道该怎么处理这个 .bin 图像。似乎无法使用mount,或者至少没有任何选项,我不知道该放什么选项。

>file -k image-NPX7P-0000.bin
image-NPX7P-0000.bin: x86 boot sector; partition 1: ID=0xb, starthead 1, startsector 63, 3907024821 sectors, extended partition table (last)\011, code offset 0x0

>file -k image-NPX7P-0001.bin
image-NPX7P-0001.bin: data

编辑:我附加了文件信息,从表面上看,我认为无法仅安装 0000 的原因是因为 0001 是它的扩展(这与我假设他们这样做的方式一致)。但我该如何合并两者并安装它呢?

EDIT2:使用 osgx 的答案,我能够将两个 bin 文件放在一起,并使用 kpartx 读取分区表。

> file-sk: /dev/dm-2: x86 boot sector, code offset 0x58, OEM-ID "BSD 4.4", sectors/cluster 64, heads 255, sectors 3907024821 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 476816, reserved3 0x1000000, reserved 0x1, serial number 0x5cb415f7, label: "SOURCE-PSE " DOS executable (COM), boot code –

但是这仍然无法挂载。它说它需要文件系统类型,而我使用的任何方法都无济于事。由于它很长,因此也发布到 pastebin 上,这是我的内核配置的相关(可能)值:

http://pastebin.com/j7iS7RF3

答案1

根据file -k,您有一个磁盘映像(可能它被分成两个卷);该磁盘映像有一个 2TB 的分区表(39G 扇区,512 = 2TB),类型为 FAT32(0x0b)。

做一只猫将两个图像连接成一个

cat image*bin > image.iso

或者 (小心!这将修改第一个文件)

cat image*0001* >> image*0000*

运行 akpartx通过 loop1 设备读取 image.iso 上的分区表(现在您需要一个根;如果您使用第二种方式,则将 image.iso 替换为 image*0000* cat

losetup /dev/loop1 image.iso; kpartx -av /dev/loop1;

输出将会像add map loop1p1 ...

loop1p1 然后在/dev/mapper 中找到

ls -l /dev/mapper
file -sk /dev/mapper/*   # finally check that it is a FAT32

并挂载它:

mount -o ro -t auto /dev/mapper/loop1p1 /where/to/mount

使用 fs;卸载它;运行 a kpartx -d -v /dev/loop1;;取消映射 loop1losetup

(手动使用http://nfolamp.wordpress.com/2010/08/16/mounting-raw-image-files-and-kpartx/

答案2

尝试使用该-o loop选项安装它。

答案3

使用 bchunk 并转换为 iso 然后你就可以轻松挂载 http://goinggnu.wordpress.com/2007/05/08/howto-mount-bincue-files-in-linux/

答案4

将文件转换为 ISO 并从那里开始使用它。我已成功使用 iat(Iso9660 分析工具)。

安装它(在我居住的地方,是在 Ubuntu 下 - YMMV):

sudo apt-get install iat

用它:

iat inputFile.bin > newShiny.iso

相关内容