Skip to content

Support for multiple initrds#78

Open
arcriley wants to merge 1 commit intoedera-dev:mainfrom
arcriley:feature/multi-initrd
Open

Support for multiple initrds#78
arcriley wants to merge 1 commit intoedera-dev:mainfrom
arcriley:feature/multi-initrd

Conversation

@arcriley
Copy link
Copy Markdown

@arcriley arcriley commented Apr 2, 2026

Added support for several initrds which are provided to the kernel concatenated into one buffer. Most tools that build initrds (eg Dracut) do this for you but there are some situations where this can be extremely useful.

A single string is still supported this will still work
chainload.linux-initrd = 'path/to/initrd'

but now an array of initrds are also supported which as a good feel with other kernel arrays in sprout.toml;
chainload.linux-initrd = ['path/to/initrd1', 'path/to/initrd2']
chainload.options = ["root=rootfs", "ro", "init=/usr/lib/systemd/systemd"]

This still supports undefined initrd and empty_is_none* functions were removed as now obsolete.

concatenated into one buffer. Most tools that build initrds (eg Dracut) do
this for you but there are some situations where this can be extremely useful.
@arcriley arcriley requested a review from azenla as a code owner April 2, 2026 17:54
@azenla
Copy link
Copy Markdown
Member

azenla commented Apr 16, 2026

Will review this weekend!

@arcriley
Copy link
Copy Markdown
Author

Will review this weekend!

I am mostly looking for feedback on the code styling before I put too many hours into the next steps.

The purpose of splitting initrd is to use signed hashes. It would be trivial to hide malware in a monolithic initrd.

However this was just a low hanging fruit. I am mostly looking for an experienced Rust developer to review this before I put too much additional time into boot selection or other more complex PRs.

If you have other repositories that are higher priority please point me at them, I am job hunting and looking to contribute to Rust projects refresh my familiarity. You can use me for free code work until I am locked into another "no compete" deal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants