blob: bb997f0373ec1fd3349a0b3957d66d42e0e72cf7 [file] [log] [blame]
{
# See README.disk_layout.
"parent": "common_disk_layout.json",
"metadata": {
"block_size": 512,
"fs_block_size": 4096,
"fs_align": "2 MiB"
},
"layouts": {
# common is the standard layout template.
"common": [
{
# MiniOS A partition.
"num": 9,
"label": "MINIOS-A",
"type": "kernel",
"size": "128 MiB"
},
{
# Unused partition, reserved for software slot C.
"num": 6,
"label": "KERN-C",
"type": "kernel"
},
{
# Unused partition, reserved for software slot C.
"num": 7,
"label": "ROOT-C",
"type": "rootfs"
},
{
# Board specific files, mostly unused.
"num": 8,
"label": "OEM",
"type": "data",
"size": "4 MiB",
"fs_format": "ext4",
"uuid": "random"
},
{
# Used for Legacy Bios, and EFI Bios, not ChromeOS hardware.
"num": 12,
"label": "EFI-SYSTEM",
"type": "efi",
"fs_format": "vfat",
"size": "64 MiB",
"uuid": "clear"
},
{
# Kernel for Slot A, no file system.
"num": 2,
"label": "KERN-A",
"type": "kernel",
"size": "32 MiB"
},
{
# Slot A rootfs. Rootfs + extras must fit.
# FS size + Verity (64 * FS blocks) + Boot Cache (200M).
# Make sure that other layouts still have 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 -comp lzo -Xalgorithm lzo1x_999 -Xcompression-level 9",
"btrfs": "skinny-metadata"
},
"size": "4096 MiB",
"fs_size": "2300 MiB",
"uuid": "clear"
},
{
# Kernel for Slot B, no file system.
"num": 4,
"label": "KERN-B",
"type": "kernel",
"size": "32 MiB"
},
{
# Slot B rootfs. Must match Root A in size 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": "4096 MiB"
},
{
# User data, fills all remaining space on drive.
"num": 1,
"label": "STATE",
"type": "data",
"fs_format": "ext4",
"size": "4 GiB",
"features": ["expand"],
"uuid": "random"
},
{
# MiniOS B partition.
"num": 10,
"label": "MINIOS-B",
"type": "kernel",
"size": "128 MiB",
# Places partition at the end of disk.
"features": ["last_partition"]
}
],
# Used for installs on main device. By default, same as 'common'.
"base": [
],
# Used for bootable USB installs (not recovery).
"usb": [
{
"num": 3,
"size": "2400 MiB"
},
{
"num": 5,
"size": "2 MiB"
},
{
# MINIOS-B partitions are not filled with anything on USB images.
"num": 10,
"size": "2 MiB"
}
],
# Used for factory install images.
"factory_install": [
{
"num": 3,
"size": "420 MiB",
"fs_size": "400 MiB"
},
{
"num": 5,
"size": "2 MiB"
},
{
"num": 1,
"size": "140 MiB"
},
{
"num": 10,
"size": "2 MiB"
}
],
"recovery": [
{
# Kernel for Slot A, no file system.
# Make the partition as large as the firmware supports so we can boot
# larger recovery kernels. The kernel won't actually be this large.
"num": 2,
"size": "512 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": "2400 MiB"
},
{
# Slot B rootfs, unused on USB, but pad to 2M.
# Installation will expand this to size from base.
"num": 5,
"size": "2 MiB"
},
{
# Stateful on recovery is dynamically resized larger.
"num": 1,
"size": "2 MiB"
},
{
"num": 10,
"size": "2 MiB"
}
],
# Huge rootfs, suitable for VM only images, should not be used
# for actual hardware devices.
"16gb-rootfs": [
{
"num": 3,
"size": "16384 MiB",
"fs_size": "16000 MiB"
},
{
"num": 5,
"size": "2 MiB"
},
{
"num": 10,
"size": "2 MiB"
}
]
}
}