Skip to content

Latest commit

 

History

History
288 lines (270 loc) · 15.4 KB

File metadata and controls

288 lines (270 loc) · 15.4 KB

MBR GPT

分析MBR GPT分区格式

参考文档

术语及缩写

术语/缩写 解释
GPT GUID Partition Table
MBR Master Boot Record
LBA Logic Block Address

MBR分区数据格式

存贮字节位 内容及含义
第1字节 引导标志。若值为80H表示活动分区,若值为00H表示非活动分区。
第2、3、4字节 本分区的起始磁头号、扇区号、柱面号。其中:
磁头号——第2字节;
扇区号——第3字节的低6位;
柱面号——为第3字节高2位+第4字节8位。
第5字节 分区类型符:
00H——表示该分区未用(即没有指定);
06H——FAT16基本分区;
0BH——FAT32基本分区;
05H——扩展分区;
07H——NTFS分区;
0FH——(LBA模式)扩展分区(83H为Linux分区等)。
第6、7、8字节 本分区的结束磁头号、扇区号、柱面号。其中:
磁头号——第6字节;
扇区号——第7字节的低6位;
柱面号——第7字节的高2位+第8字节。
第9、10、11、12字节 逻辑起始扇区号 ,本分区之前已用了的扇区数。
第13、14、15、16字节 本分区的总扇区数。

GPT分区数据格式

起始字节 长度 内容
0 16字节 分区类型GUID
16 16字节 分区GUID
32 8字节 起始LBA(小端序)
40 8字节 末尾LBA
48 8字节 属性标签(如:bit60表示“只读”)
56 72字节 分区名(可以包括36个UTF-16(小端序)字符)

RPI SD info

fidsk p获取信息

Command (m for help): p
Disk /dev/mmcblk0: 14.9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x92edae2c

Device         Boot Start      End  Sectors  Size Id Type
/dev/mmcblk0p1       8192    98045    89854 43.9M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      98304 31116287 31017984 14.8G 83 Linux

MBR

  • sudo dd if=/dev/mmcblk0 of=mmcblk0.img count=1 bs=512
    00000000: fab8 0010 8ed0 bc00 b0b8 0000 8ed8 8ec0  ................
    00000010: fbbe 007c bf00 06b9 0002 f3a4 ea21 0600  ...|.........!..
    00000020: 00be be07 3804 750b 83c6 1081 fefe 0775  ....8.u........u
    00000030: f3eb 16b4 02b0 01bb 007c b280 8a74 018b  .........|...t..
    00000040: 4c02 cd13 ea00 7c00 00eb fe00 0000 0000  L.....|.........
    00000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000060: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000070: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000100: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000150: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000001a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000001b0: 0000 0000 0000 0000 2cae ed92 0000 0082  ........,.......
    000001c0: 0300 0c1a 1206 0020 0000 fe5e 0100 001e  ....... ...^....
    000001d0: 1906 83fe ffff 0080 0100 004c d901 0000  ...........L....
    000001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000001f0: 0000 0000 0000 0000 0000 0000 0000 55aa  ..............U.
    00000200: 0a                                       .
    
  • 起始磁头、扇区、柱面地址,基本只对硬盘有用,SD卡不关注;
  • 0x1be ~ 0x1dd: 0082 0300 0c1a 1206 0020 0000 fe5e 0100
    • 00: 引导标志
    • 0c: W95 FAT32 (LBA)
    • 00200000: 0x2000 -- ‭8192‬ sector -- offset sectors -- 本分区相对物理0号扇区的偏移量
    • fe5e0100: 0x15efe -- ‭89854‬ sector -- content sectors -- 本分区所占的扇区总数

GPT

  • 需要注意的是SD/eMMC的LBA可能不是512B,所以需要注意GPT是以LBA来算的;
  • dd if=device-partitions.img of=gpt.img count=2 bs=1024
    00000000: faeb fe00 0000 0000 0000 0000 0000 0000  ................
    00000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000060: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000070: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000100: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000150: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000001a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000001b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000001c0: 0100 eeff ffff 0100 0000 ffff 7f03 0000  ................
    000001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000001f0: 0000 0000 0000 0000 0000 0000 0000 55aa  ..............U.
    00000200: 4546 4920 5041 5254 0000 0100 5c00 0000  EFI PART....\...
    00000210: e0a3 9370 0000 0000 0100 0000 0000 0000  ...p............
    00000220: ffff 7f03 0000 0000 2200 0000 0000 0000  ........".......
    00000230: deff 7f03 0000 0000 1765 f86c fee1 b843  .........e.l...C
    00000240: b51a 8cf9 bed7 d016 0200 0000 0000 0000  ................
    00000250: 8000 0000 8000 0000 2771 d89b 0000 0000  ........'q......
    00000260: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000270: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000280: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000290: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000002a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000002b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000002c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000002d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000002e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000002f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000300: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000310: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000320: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000330: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000340: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000350: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000360: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000370: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000380: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000390: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000003a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000003b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000003c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000003d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000003e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000003f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000400: 2873 2ac1 1ff8 d211 ba4b 00a0 c93e c93b  (s*......K...>.;
    00000410: f386 18b5 2d05 6541 8256 0574 73a9 cd3d  ....-.eA.V.ts..=
    00000420: 0040 0000 0000 0000 ff7f 0600 0000 0000  .@..............
    00000430: 0000 0000 0000 0000 6200 6f00 6f00 7400  ........b.o.o.t.
    00000440: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000450: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000460: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000470: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000480: af3d c60f 8384 7247 8e79 3d69 d847 7de4  .=....rG.y=i.G}.
    00000490: 23b6 dee4 8138 f141 a3fc 1295 f6e2 b013  #....8.A........
    000004a0: 0080 0600 0000 0000 ffef 7f03 0000 0000  ................
    000004b0: 0000 0000 0000 0000 6600 7300 0000 0000  ........f.s.....
    000004c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000004d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000004e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000004f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000500: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000510: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000520: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000530: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000540: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000550: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000560: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000570: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000580: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000590: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000005a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000005b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000005c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000005d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000005e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000005f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000600: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000610: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000620: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000630: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000640: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000650: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000660: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000670: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000680: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000690: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000006a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000006b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000006c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000006d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000006e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000006f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000700: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000710: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000720: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000730: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000740: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000750: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000760: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000770: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000780: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000790: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000007a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000007b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000007c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000007d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000007e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    000007f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    00000800: 0a                                       .
    
  • 0x1be ~ 0x1dd: 0000 0100 eeff ffff 0100 0000 ffff 7f03 0000
    • 0xEE
  • 0x400(LBA2):
    • 2873 2ac1 1ff8 d211 ba4b 00a0 c93e c93b: 分区类型GUID
    • f386 18b5 2d05 6541 8256 0574 73a9 cd3d: 分区GUID
    • 0040 0000 0000 0000: LBA开始 -- 0x400
    • ff7f 0600 0000 0000: LBA结束 -- 0x67FFF
    • 6200 6f00 6f00 7400: 分区名
  • bpt配置信息
    pi@raspberrypi:~/zengjf/bpttool/output $ cat device-partitions.bpt
    {
      "settings": {
        "ab_suffixes": ["_a", "_b"],
        "disk_size": 30064771072,
        "disk_alignment": 2097152,
        "disk_guid": "6cf86517-e1fe-43b8-b51a-8cf9bed7d016"
      },
      "partitions": [
        {
          "label": "boot",
          "offset": 8388608,
          "size": 209715200,
          "grow": false,
          "guid": "b51886f3-052d-4165-8256-057473a9cd3d",
          "type_guid": "c12a7328-f81f-11d2-ba4b-00a0c93ec93b",
          "flags": "0x0000000000000000",
          "ignore": false,
          "ab": false,
          "ab_expanded": false,
          "position": 0
        },
        {
          "label": "fs",
          "offset": 218103808,
          "size": 29844570112,
          "grow": true,
          "guid": "e4deb623-3881-41f1-a3fc-1295f6e2b013",
          "type_guid": "0fc63daf-8483-4772-8e79-3d69d8477de4",
          "flags": "0x0000000000000000",
          "ignore": false,
          "ab": false,
          "ab_expanded": false,
          "position": 0
        }
      ]
    }