cgpt: Create a new disk layout v3
We need this new layout so we can add two new partitions at the
beginning and end of the disk. We don't have to be based on the V2
layout anymore as its a good idea now to remove some of the unnecessary
partitions in that layout. Some of the changes in this new partition
includes:
- Increase the MINIOS partitions to 128 MB as it seems new feature are
constantly getting added.
- Removal of "reserved" partitions with numbers 9 and 10. We can reuse
these numbers for MINIOS-A and MINIOS-B as these reserved partitions
have never been used before.
- Removal of RWFW partition as it is not being used anymore.
- Reduction in size of the OEM partition. If any board wants to use
this, it has to increase the size on their own. However, seems the build
initializes an ext4 filesystem in this partition, its not possible to
reduce its size by much.
- Move all these small partitions after MINIOS-A. This allows us to
fs_align the remaining of the large partitions in just one place.
- Keep KERN-A and ROOT-A right next to each other on disk in case we
wanted to play with resizing them (like taking from rootfs and giving to
kernel) in the future. I'm just preparing, not sure if this ever
happens. Same for KERN-B and ROOT-B.
The new layout is shown as:
$ ./cgpt.py debug minios_disk_layout.json common
Config Data
field:metadata value:{'block_size': 512, 'fs_block_size': 4096, 'fs_align': 2097152}
COMMON Layout Data
num: 9 label:MINIOS-A type:kernel size:128 MiB fs_size:auto features:[]
num: 6 label:KERN-C type:kernel size:1 fs_size:auto features:[]
num: 7 label:ROOT-C type:rootfs size:1 fs_size:auto features:[]
num: 8 label:OEM type:data size:4 MiB fs_size:auto features:[]
num: 12 label:EFI-SYSTEM type:efi size:64 MiB fs_size:auto features:[]
num: 2 label:KERN-A type:kernel size:32 MiB fs_size:auto features:[]
num: 3 label:ROOT-A type:rootfs size:4 GiB fs_size:2300 MiB features:[]
num: 4 label:KERN-B type:kernel size:32 MiB fs_size:auto features:[]
num: 5 label:ROOT-B type:rootfs size:4 GiB fs_size:auto features:[]
num: 1 label:STATE type:data size:4 GiB fs_size:auto features:['expand']
num: 10 label:MINIOS-B type:kernel size:128 MiB fs_size:auto features:['last_partition']
Or the output is:
start size part contents
0 1 PMBR (Boot GUID: B6D5AE7D-5254-954E-9B1F-C50116D780B5)
1 1 Pri GPT header
2 32 Pri GPT table
17313792 8401017 1 Label: "STATE"
Type: Linux data
UUID: 693129A9-0EF0-8E49-AA5C-15A8AEF07B5C
405504 65536 2 Label: "KERN-A"
Type: ChromeOS kernel
UUID: AB0FC033-2091-7048-8313-CEDB9FCC2678
Attr: priority=15 tries=15 successful=0
471040 8388608 3 Label: "ROOT-A"
Type: ChromeOS rootfs
UUID: 45145E0F-C32B-F642-A1AF-A89704A39518
8859648 65536 4 Label: "KERN-B"
Type: ChromeOS kernel
UUID: 464F8DCD-676C-7E45-8739-554C56A6CA87
Attr: priority=0 tries=0 successful=0
8925184 8388608 5 Label: "ROOT-B"
Type: ChromeOS rootfs
UUID: B17FA945-2342-1144-9FC2-AC5E047F2A05
262208 1 6 Label: "KERN-C"
Type: ChromeOS kernel
UUID: 70DF9D50-8129-F242-B6A5-0E3EFA269E51
Attr: priority=0 tries=0 successful=0
262209 1 7 Label: "ROOT-C"
Type: ChromeOS rootfs
UUID: F2FA51C1-AB2D-7542-A87C-BADAB4E98514
266240 8192 8 Label: "OEM"
Type: Linux data
UUID: 2BEFEC9E-3D92-2048-B703-97F218D395FB
64 262144 9 Label: "MINIOS-A"
Type: ChromeOS kernel
UUID: D2AF1CA9-B460-CA4D-97B9-27B62ECD726E
Attr: priority=0 tries=0 successful=0
25714809 4096 10 Label: "MINIOS-B"
Type: ChromeOS kernel
UUID: E97CD46C-C755-9C47-B1F2-511D3A3EA310
Attr: priority=0 tries=0 successful=0
274432 131072 12 Label: "EFI-SYSTEM"
Type: EFI System Partition
UUID: B6D5AE7D-5254-954E-9B1F-C50116D780B5
Attr: legacy_boot=1
25718920 32 Sec GPT table
25718952 1 Sec GPT header
BUG=b:187177283, b:172226909
TEST=build_images and chromeos-install
Change-Id: Ibea34fbabfffd431f394dfa1f38cda945c73f7b4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosutils/+/2876084
Tested-by: Amin Hassani <ahassani@chromium.org>
Commit-Queue: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Sarthak Kukreti <sarthakkukreti@chromium.org>
Reviewed-by: Evan Green <evgreen@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
2 files changed