我有一个 ARM 嵌入式 Linux 系统的工作环映像文件。 rootfs 分区太大,我想缩小它。
初始场景:
Disk /dev/loop0: 7,22 GiB, 7744782336 bytes, 15126528 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: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/loop0p1 * 2048 206847 204800 100M c W95 FAT32 (LBA)
/dev/loop0p2 206848 12789759 12582912 1G 83 Linux
/dev/loop0p3 12789760 12810239 20480 10M a2 unknown
第二个分区 (rootfs) 是要减少的分区。我/dev/loop0
用gparted打开,减少到1G。然后我尝试将第三个分区(我不知道它是什么,也不知道它包含什么)移到前一个分区之后 - 否则它根本没有意义!
但 gparted 告诉我,移动此分区可能会阻止操作系统启动。据我所知,只有“启动”分区(即第一个分区)对于启动本身至关重要。
为什么移动第三个可能会阻止启动?
答案1
这可能是因为分区类型是a2。
A2 Hard Processor System (HPS) ARM preloader
此分区类型用于 ARM 类型计算机的可启动映像。
对于使用 x86 的普通 Linux 系统,您应该能够删除该分区。
- - 编辑 - -
因为这是 ARM,所以它是预加载器映像。它是许多用作第一阶段引导加载程序的 64K 块。是否可以移动它,取决于您的主板。有些主板使用分区表来查找类型 42 映像分区。
预加载器用作 bootrom 和引导加载器之间的中间步骤,因此它在 Linux 引导之前运行。