rockchip linux系统 GPT 分区结构 和 挂载关系
完整的 GPT 分区表逐行解读一、整体分区布局Part分区名Start LBAEnd LBA大小用途1uboot0x40000x5FFF4MBU-Boot 引导程序2misc0x60000x7FFF4MB启动模式标志recovery/normal3boot0x80000x27FFF64MB内核Image DTB4recovery0x280000x47FFF64MBRecovery 系统5backup0x480000x57FFF32MB备份分区6rootfs0x580000xC57FFF6GB根文件系统7oem0xC580000xC97FFF128MBOEM 数据8userdata0xC980000x3A3FFDE~14GB用户数据LBA 扇区大小 512字节所以大小计算(End - Start 1) × 5120x0 ~ 0x3FFF 去哪了u-boot阶段 part list mmc 0 Partition Map for MMC device 0 -- Partition Type: EFI Part Start LBA End LBA Name Attributes Type GUID Partition GUID 1 0x00004000 0x00005fff uboot attrs: 0x0000000000000000 type: 27380000-0000-400d-8000-145900003307 guid: de370000-0000-4f5c-8000-60b500005d2a 2 0x00006000 0x00007fff misc attrs: 0x0000000000000000 type: 9f730000-0000-4c08-8000-1ba40000746d guid: 8e360000-0000-4a12-8000-1d6d000019a4 3 0x00008000 0x00027fff boot attrs: 0x0000000000000000 type: 112b0000-0000-4f3e-8000-279300003be4 guid: cd6d0000-0000-4028-8000-73dd00002483 4 0x00028000 0x00047fff recovery attrs: 0x0000000000000000 type: a6190000-0000-424e-8000-464f00000d16 guid: c25e0000-0000-4a27-8000-7c2e00002c70 5 0x00048000 0x00057fff backup attrs: 0x0000000000000000 type: 860a0000-0000-4d2d-8000-1c00000043a8 guid: 96200000-0000-4f6e-8000-648800003413 6 0x00058000 0x00c57fff rootfs attrs: 0x0000000000000000 type: d8600000-0000-4720-8000-5dcc00000a45 guid: 614e0000-0000-4b53-8000-1d28000054a9 7 0x00c58000 0x00c97fff oem attrs: 0x0000000000000000 type: c5100000-0000-4945-8000-55de00006393 guid: 795a0000-0000-4d6c-8000-62f500007219 8 0x00c98000 0x03a3ffde userdata attrs: 0x0000000000000000 type: 74230000-0000-4a0c-8000-615c0000223a guid: d9640000-0000-4503-8000-3758000052cc bootLBA 0x0000 保护性 MBR1扇区LBA 0x0001 GPT 主头1扇区LBA 0x0002 GPT 分区表项32扇区128个分区槽LBA 0x0022 ~ 0x3FFF 留给 idbloaderRockchip 特有的 SPL/TPL 阶段LBA 0x4000 uboot 分区开始 ← 你的 Part 1Rockchip 平台 eMMC 的 0x0 ~ 0x3FFF 这段空间存放idbloader.imgminiloader这是 GPT 分区表之外的特殊区域U-Boot 烧录时直接写裸扇区。完整启动挂载时序U-Boot└─ 传 bootargs: rootPARTUUID614e0000-0000↓内核启动└─ 挂载 rootfs → / Part6, 6GB↓init 进程BusyBox init 或 systemd└─ 读取 /etc/fstab├─ 挂载 userdata → /userdata Part8, 剩余空间├─ 挂载 oem → /oem Part7, 128MB└─ 挂载 boot → /boot Part3, 64MB可选↓系统完全就绪/ ← rootfs (系统程序、库、配置)/userdata ← userdata (用户数据、日志)/oem ← oem (厂商定制)五、在板子上验证当前挂载状态二、你的分区布局设计逻辑eMMC 物理空间假设16GB┌──────────────────────────────────────┐│ 0x0000 ~ 0x3FFF idbloaderSPL │ ← Rockchip 特有裸写├──────────────────────────────────────┤│ Part1: uboot 4MB │ ← U-Boot 本体│ Part2: misc 4MB │ ← 启动模式标志│ Part3: boot 64MB │ ← 内核 DTB│ Part4: recovery 64MB │ ← 救砖用的备用系统│ Part5: backup 32MB │ ← 备份│ Part6: rootfs 6GB │ ← 系统根目录 /│ Part7: oem 128MB │ ← 厂商定制数据│ Part8: userdata 剩余全部(~9.7GB) │ ← 用户数据 /data└──────────────────────────────────────┘3. 分区号和 GPT 的对应关系mmcblk0p1 → Part1 uboot 未挂载U-Boot 直接使用mmcblk0p2 → Part2 misc 未挂载U-Boot 读写mmcblk0p3 → Part3 boot 未挂载内核已加载完无需挂载mmcblk0p4 → Part4 recovery 未挂载进 recovery 模式才用mmcblk0p5 → Part5 backup 未挂载mmcblk0p6 → Part6 rootfs → 挂载为 /mmcblk0p7 → Part7 oem → 挂载为 /oemmmcblk0p8 → Part8 userdata → 挂载为 /userdata为什么 boot/misc 等分区没有挂载uboot → U-Boot 在启动阶段直接读取内核起来后不需要misc → U-Boot 读写启动标志Linux 不需要挂载也可以挂载来读写boot → 内核 Image 和 DTB 已经被 U-Boot 加载进内存了Linux 启动后这个分区就用完了不需要再挂载recovery→ 只在进入 recovery 模式时才是根文件系统backup → 备份用正常启动不挂载整个链路现在清晰了parameter.txt 定义分区 → 烧录成 GPT → U-Boot 读 GPT 加载内核→ 内核挂载 mmcblk0p6 为 / → init 读 fstab → 挂载 p7/p8→ 最终/ /oem /userdata 三个分区都可用