Make RAW disks recovery partition expandable #2159
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes the recovery partition expandable, so the RAW disk image created by the "build-disk" command only includes the EFI partition, OEM partition and the Recovery partition sized as the recovery image it includes. On first boot the recovery partition is resized to the configured size for recovery (4G by default) and state and persistent partitions created. Finally the deploy command after the first full boot resets from recovery to install an active system to state partition.
In order to do that this PR adds a new Yip stage at boot. Why? Because the earliest stage we had (
rootfs
) is called once the root partition (recovery in this case) is already mounted, hence too late to run any expand operation. The new stage introduced in this PR is called after OEM partition is mounted, but before root device is mounted. This allows running an expand partition operation for recovery on first boot.As a result RAW images will no longer be around 4G but around 1G, almost like ISO's.