| { |
| # See README_disk_layout |
| |
| "metadata":{ |
| "block_size": 512, |
| "fs_block_size": 4096 |
| }, |
| "layouts":{ |
| # common is the standard layout template. |
| "common": [ |
| { |
| # Reserve space for RW firmware. Only used on some boards. |
| "num": 11, |
| "label":"RWFW", |
| "type":"firmware", |
| "size":"8 MiB" |
| }, |
| { |
| # Unused partition, reserved for software slot C. |
| "num": 6, |
| "label":"KERN-C", |
| "type":"kernel", |
| "blocks":"1" |
| }, |
| { |
| # Unused partition, reserved for software slot C. |
| "num": 7, |
| "label":"ROOT-C", |
| "type":"rootfs", |
| "blocks":"1" |
| }, |
| { |
| # Unused partition, reserved for future changes. |
| "num": 9, |
| "type":"reserved", |
| "label":"reserved", |
| "blocks":"1" |
| }, |
| { |
| # Unused partition, reserved for future changes. |
| "num": 10, |
| "type":"reserved", |
| "label":"reserved", |
| "blocks":"1" |
| }, |
| { |
| # Pad out so Kernel A starts on a 4096 block boundry for |
| # performance. This is especially important on Daisy. |
| "type":"blank", |
| "size":"2014 KiB" |
| }, |
| { |
| # Kernel for Slot A, no file system. |
| "num": 2, |
| "label":"KERN-A", |
| "type":"kernel", |
| "size":"16 MiB" |
| }, |
| { |
| # Kernel for Slot B, no file system. |
| "num": 4, |
| "label":"KERN-B", |
| "type":"kernel", |
| "size":"16 MiB" |
| }, |
| { |
| # Board specific files, mostly unused. |
| "num": 8, |
| "label":"OEM", |
| "type":"data", |
| "fs_format":"ext4", |
| "size":"16 MiB", |
| "uuid": "random" |
| }, |
| { |
| # Pad out, but not sure why. |
| "type":"blank", |
| "size":"64 MiB" |
| }, |
| { |
| # Used for Legacy Bios, and EFI Bios, not ChromeOS hardware |
| "num": 12, |
| "label":"EFI-SYSTEM", |
| "type":"efi", |
| "fs_format":"vfat", |
| "size":"16 MiB", |
| "uuid": "clear" |
| }, |
| { |
| # Slot B rootfs. Must match Root A in side for normal |
| # updates. Will contain copy of Root A after install, and |
| # contain new rootfs's after runtime updates. |
| "num": 5, |
| "label":"ROOT-B", |
| "type":"rootfs", |
| "size":"2048 MiB" |
| }, |
| { |
| # Slot A rootfs. Rootfs + extras must fit. |
| # FS size + Verity (64 * FS blocks) + Boot Cache (200M). |
| # Make sure that other layouts still has room for the |
| # extras, should you increase FS size |
| # |
| # Note that updates will fail if the rootfs size |
| # shrinks. (crbug.com/192136) |
| # |
| # Changes to the offset of this partition may require |
| # changes in cros-signing/security_test_baselines/ |
| # ensure_secure_kernelparams.config to allow secure boot. |
| "num": 3, |
| "label":"ROOT-A", |
| "type":"rootfs", |
| "fs_format":"ext2", |
| "fs_options": { |
| "squashfs":"-noI -no-xattrs -comp lzo -Xalgorithm lzo1x_999 -Xcompression-level 9" |
| }, |
| "size":"2048 MiB", |
| "fs_size":"1224 MiB", |
| "uuid": "clear" |
| }, |
| { |
| # User data, fills all remaining space on drive. |
| "num": 1, |
| "label":"STATE", |
| "type":"data", |
| "fs_format":"ext4", |
| "size":"1024 MiB", |
| "features":["expand"], |
| "uuid": "random" |
| } |
| ], |
| # Used for installs on main device |
| # by default, same as 'common'. |
| "base": [ |
| ], |
| # Used for bootable USB installs (not recovery). |
| "usb": [ |
| { |
| # Shrunken rootfs partition to support smaller USB sticks. |
| # installation will expand this to size from base. |
| "num": 3, |
| "size":"1290 MiB" |
| }, |
| { |
| # Slot B rootfs, unused on USB, but pad to 2M. |
| # installation will expand this to size from base. |
| "num": 5, |
| "size":"2 MiB" |
| } |
| ], |
| # Used for factory install images. |
| "factory_install": [ |
| { |
| "num": 1, |
| "size":"140 MiB" |
| }, |
| { |
| "num": 3, |
| "size":"420 MiB", |
| "fs_size":"400 MiB" |
| }, |
| { |
| "num": 5, |
| "size":"2 MiB" |
| }, |
| { |
| "num": 12, |
| "size":"32 MiB" |
| } |
| ], |
| # Used for recovery images. |
| "recovery": [ |
| { |
| # Stateful on recovery is dynamically resized larger. |
| "num": 1, |
| "size":"2 MiB" |
| }, |
| { |
| # Shrunken rootfs partition to support smaller USB sticks, |
| # and smaller recovery downloads. |
| # Installation will expand this to size from base. |
| # The offset to the beginning of this partition, and the FS |
| # size must match base exactly to allow secure boot. |
| "num": 3, |
| "size":"1290 MiB" |
| }, |
| { |
| # Slot B rootfs, unused on USB, but pad to 2M. |
| # installation will expand this to size from base. |
| "num": 5, |
| "size":"2 MiB" |
| } |
| ], |
| # Larger rootfs, suitable for development with symbols, etc. |
| # Cannot apply updates when running from USB (no slot B). |
| "2gb-rootfs": [ |
| { |
| # Will be shrunk to size from base on install. |
| "num": 3, |
| "size":"2048 MiB", |
| "fs_size":"2000 MiB" |
| }, |
| { |
| # Will be grown to size from base on install. |
| "num": 5, |
| "size":"2 MiB" |
| } |
| ], |
| # Larger rootfs, suitable for development with symbols, etc. |
| # CAN apply updates when running from USB. |
| "2gb-rootfs-updatable": [ |
| { |
| "num": 1, |
| "size":"3072 MiB" |
| }, |
| { |
| # The partition size matches base, so it's installable. |
| "num": 3, |
| "size":"2048 MiB", |
| "fs_size":"2000 MiB" |
| }, |
| { |
| # The partition size matches base, so it's installable. |
| "num": 5, |
| "size":"2048 MiB" |
| } |
| ], |
| # Very large rootfs, suitable for development with symbols, |
| # etc. Cannot apply updates when running from USB (no slot B) |
| "4gb-rootfs": [ |
| { |
| # This partition is larger than the base partition, so the |
| # installer will corrupt the disk during installation. |
| "num": 3, |
| "size":"4096 MiB", |
| "fs_size":"4000 MiB" |
| }, |
| { |
| "num": 5, |
| "size":"2 MiB" |
| } |
| ] |
| } |
| } |