-
-
Notifications
You must be signed in to change notification settings - Fork 15k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
systemd-boot-252 loading initrd renders some systems unbootable with "Error preparing initrd: Bad Buffer Size" (suspected broken EFI implementation) #227431
Comments
Broken system details
|
@ElvishJerricco Did we get somewhere regarding that? |
This is a bug in some firmwares. When an initrd is too big, the file reading APIs provided to the boot loader by the firmware fail in weird ways. The kernel knows to work around this when loading initrds passed on the cmdline by reading the initrd in chunks, but systemd-boot does not implement this workaround when loading large files currently. Until recently, systemd-boot has always passed the initrd to the kernel via the cmdline, but in systemd/systemd#22550 (first released in v253 I believe), they changed it to use The fix is systemd/systemd#25948, which has not been merged upstream, although it appears to be approved. If we want to fix this in NixOS, we can include that patch, but again it's not even merged upstream yet, so I don't know if that's considered acceptable. Another workaround is to revert the behavior indirectly by putting initrd in the |
The upstream PR is now merged! |
If we can cleanup things before branch-off regarding this, that'd be awesome. |
Should we wait for a stable backport from upstream, or include the patch in nixpkgs for the time being? |
In all the cases, a systemd rebuild will have to go through staging, so I'd say: we can afford one or two days and do the patch thing for the next staging-23.05. |
This fix has landed in |
https://nixpk.gs/pr-tracker.html?pr=235770 tracks when it lands. If you still have issues please let me know! |
Describe the bug
When selecting any boot entry that has separate initrd entry (not linux parameter initrd) boot fails with
Error preparing initrd: Bad Buffer Size
systemd/systemd#25911
Steps To Reproduce
Steps to reproduce the behavior:
boot.loader.systemd-boot.enable
on a system with certain kind of EFI.Expected behavior
System boots
Notify maintainers
@NixOS/systemd
Metadata
Workaround
The text was updated successfully, but these errors were encountered: