我使用 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
Run Code Online (Sandbox Code Playgroud)
编辑:我附加了文件信息,从它的外观来看,我认为我不能只挂载 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 –
Run Code Online (Sandbox Code Playgroud)
然而,这仍然不会安装。它说它需要一个文件系统类型,我用过的任何东西都没有帮助。也发布到 pastebin 因为它很长是我的相关(可能)值的内核配置:
根据file -k,您有一个磁盘映像(可能被分成两个卷);磁盘映像的分区表为 1 2TB(39G 扇区,512 = 2TB),类型为 FAT32 (0x0b)。
做一只猫将两个图像连接成一个
cat image*bin > image.iso
Run Code Online (Sandbox Code Playgroud)
或 (小心!这将修改第一个文件)
cat image*0001* >> image*0000*
Run Code Online (Sandbox Code Playgroud)
运行 akpartx以通过 loop1 设备读取 image.iso 上的分区表(现在您将需要一个根目录;如果您采用第二种方式,请将 image.iso 替换为 image*0000* cat)
losetup /dev/loop1 image.iso; kpartx -av /dev/loop1;
Run Code Online (Sandbox Code Playgroud)
输出会像 add map loop1p1 ...
然后loop1p1 在/dev/mapper中找到
ls -l /dev/mapper
file -sk /dev/mapper/* # finally check that it is a FAT32
Run Code Online (Sandbox Code Playgroud)
并安装它:
mount -o ro -t auto /dev/mapper/loop1p1 /where/to/mount
Run Code Online (Sandbox Code Playgroud)
与 fs 合作;卸载它;运行一个 kpartx -d -v /dev/loop1;; 取消映射 loop1 与losetup
(使用手册http://nfolamp.wordpress.com/2010/08/16/mounting-raw-image-files-and-kpartx/)