如何解压.bin
包含 DOS/MBR 引导扇区和另一个未检测到的文件系统的文件。我运行binwalk
了它,它向我显示了数据的(估计)位置及其类型。输出为file
:
chromeos_15393.58.0_reven_recovery_stable-channel_mp-v2.bin: DOS/MBR boot sector; partition 1 : ID=0xc, active, start-CHS (0x16,176,27), end-CHS (0x1e,216,58), startsector 364544, 131072 sectors; partition 2 : ID=0xee, start-CHS (0x0,0,2), end-CHS (0x0,0,2), startsector 1, 1 sectors
根据这些信息,我知道一开始有一个引导扇区,但是映像中的文件在哪里,我如何获取它们。仅供参考,它是基于 Android 的 ChromeOS(Android 基于 Linux),包含的 ZIP.bin
位于此处。我已将dd
磁盘映像编辑到 USB 并从那里使用它。
我尝试了gdisk
一下,结果如下:
GPT fdisk (gdisk) version 1.0.10
Caution! After loading partitions, the CRC doesn't check out!
Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!
Warning! One or more CRCs don't match. You should repair the disk!
Main header: OK
Backup header: OK
Main partition table: ERROR
Backup partition table: OK
Partition table scan:
MBR: hybrid
BSD: not present
APM: not present
GPT: damaged
Found valid MBR and corrupt GPT. Which do you want to use? (Using the
GPT MAY permit recovery of GPT data.)
1 - MBR
2 - GPT
3 - Create blank GPT
Your answer: 2
Disk /dev/sdb: 61341696 sectors, 29.3 GiB
Model: Cruzer Blade
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 1F1C043E-3E55-B14D-94F1-3962AC2C5E25
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 13815959
Partitions will be aligned on 1-sector boundaries
Total free space is 266217 sectors (130.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 5414912 13815944 4.0 GiB 8300 STATE
2 69 32836 16.0 MiB 7F00 KERN-A
3 499712 5414911 2.3 GiB 7F01 ROOT-A
4 32837 65604 16.0 MiB 7F00 KERN-B
5 495616 499711 2.0 MiB 7F01 ROOT-B
6 65 65 512 bytes 7F00 KERN-C
7 66 66 512 bytes 7F01 ROOT-C
8 331776 364543 16.0 MiB 8300 OEM
9 67 67 512 bytes 7F02 reserved
10 68 68 512 bytes 7F02 reserved
11 64 64 512 bytes 7F03 RWFW
12 364544 495615 64.0 MiB EF00 EFI-SYSTEM
当我看到“损坏的 GPT”时,我感到很困惑。它不可能损坏。说实话,这些区域的名称对于 Linux 安装来说是有意义的(例如 EFI-SYSTEM、KERN-A)。
根据我的经验,有两种很好的方法可以在 Linux 上探索这样的图像。
一种方法是使用提取单个分区
7z
,然后根据需要单独处理每个分区:将每个分区提取到不同的文件(如果发生命名冲突,可以选择自动重命名);完成后,可以使用以下命令挂载每个分区文件
另一种方法是使用 Linux 内置的循环设备分区支持:
这样,每个分区除了主循环设备外,通常还会有一个循环设备
/dev/loop0p1
,等等。每个分区都可以照常挂载:/dev/loop0p2
/dev/loop0
要进行清理,请卸载已挂载的分区,并且如果您使用了
losetup
,请使用 删除循环设备losetup -d
。