Skip to content

Add support for partition based installation - #3007

Draft
schaefi wants to merge 1 commit into
mainfrom
partition_based_install
Draft

Add support for partition based installation#3007
schaefi wants to merge 1 commit into
mainfrom
partition_based_install

Conversation

@schaefi

@schaefi schaefi commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

Instead of dumping the entire disk also support a mode that dumps each partition individually. Reason for adding this mode is to test features of btrfs like the seed/sprout process which requires access to the partition with the btrfs filesystem. More details here:

@schaefi schaefi self-assigned this Jun 19, 2026
@Conan-Kudo

Copy link
Copy Markdown
Member

sproud->sprout

@schaefi
schaefi force-pushed the partition_based_install branch 5 times, most recently from 9554829 to ced8db2 Compare June 22, 2026 19:11
@schaefi

schaefi commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator Author

@Conan-Kudo

I completed the support for btrfs seed/sprout feature and ran several tests to see if this brings a significant performance gain. So far I could not see a significant performance gain. If you look at the code you see that I modified the disk builder to automatically enable seeding on the btrfs device if an install image is requested. The respective installer code then just maps the partitions (kpartx) runs seed/sprout procedure for the btrfs partition and the standard dump procedure for all others (EFI, etc ...). This works but is not significantly faster than dumping the entire disk image as one blob to the disk device.

I also added support for remote seeding. This is done in a way that the disk image first gets fetched as file (/image.raw) into the initramfs (ram space). From there the same procedure as described below is applied. In this mode I even see a performance loss due to the extra local store prior target dump. In addition this mode needs more resources (preserve RAM space in the initrd to store the disk image from the remote location)

Overall things are working but I don't see an improvement that legitimates the extra code so far.

Review from the experts is very much welcome.

To be honest I haven't expected a big performance win, somehow the blocks needs to be transferred to the target block device which is empty to begin with :)

Thanks this was a nice learning opportunity though.

I keep this open as a draft

@schaefi

schaefi commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator Author

We are also loosing target verification against the installed image blob because the seed/sprout transfer is not bit identical with the image

@schaefi
schaefi force-pushed the partition_based_install branch from 8e4e00c to b436796 Compare July 2, 2026 10:42
@schaefi
schaefi force-pushed the partition_based_install branch from b436796 to ef472ab Compare July 29, 2026 13:44
Instead of dumping the entire disk also support a mode
that dumps each partition individually. Reason for adding
this mode is to test features of btrfs like the seed/sprout
process which requires access to the partition with the
btrfs filesystem. More details here:

    https://btrfs.readthedocs.io/en/latest/Seeding-device.html
@schaefi
schaefi force-pushed the partition_based_install branch from ef472ab to c9081ba Compare July 29, 2026 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants