Partition layout of ARM SD card images
Date: Sun, 10 Jul 2022 19:26:02 UTC
For example let's have a llok on the partition layout of, FreeBSD-13.1-RELEASE-arm64-aarch64-RPI.img (the others are similar): # mdconfig -a -u 0 -t vnode -f diskimg/FreeBSD-13.1-RELEASE-arm64-aarch64-RPI.img # gpart show md0 md0s2 => 63 6291393 md0 MBR (3.0G) 63 2016 - free - (1.0M) 2079 102312 1 fat32lba [active] (50M) 104391 6187041 2 freebsd (3.0G) 6291432 24 - free - (12K) => 0 6187041 md0s2 BSD (3.0G) 0 57 - free - (29K) 57 6186880 1 freebsd-ufs (2.9G) 6186937 104 - free - (52K) The start of the fat32 boot slice s1 (containing the u-boot) stuff is neither aligned to 1M nor to 4k, it starts on an odd base. The start of the BSD payload slice s2 and its size are odd as well. The padding of 57 blocks within s2 lets the UFS partition start on a globally even base, namely 104391+57 = 104448, which as a matter of fact is 4k aligned (104448*512/4096 = 13056) and 1M aligned as well (104448*512/1024/1024 = 51), however all this keeps looking strange. Are there reasons for this partition layout besides making it look more interesting? If yes, some insights would be good. For the time being, I created a second SD card from the initial one for my RPi 4, and it's partition table is as follows: # gpart show mmcsd0 mmcsd0s2 => 63 62410689 mmcsd0 MBR (30G) 63 25 - free - (13K) 88 102312 1 fat32lba [active] (50M) 102400 62308352 2 freebsd (30G) => 0 62308352 mmcsd0s2 BSD (30G) 0 56623104 1 freebsd-ufs (27G) 56623104 5685248 2 freebsd-swap (2.7G)