Linux Adds BSOD Service in Systemd 255
According to an announcement by Phoronix, the Linux system component systemd version 255 has been released, introducing a service called systemd-bsod, which displays full-screen error messages on Linux.
The term BSOD, known as the Blue Screen of Death, commonly associated with system crashes, has now been integrated into Linux. Similar to Windows, the Linux BSOD screen includes a QR code, directing users to a support website for detailed information about the errors causing startup failures.
The stable release of systemd version 255 coincides with the first half of the 2024 Linux distribution releases, meaning upcoming rolling release versions of Linux will also be updated to version 255, bringing the blue screen crash interface to a wider audience.
The following are the highlight features of systemd version 255:
– A new component “systemd-storagetm” has been added that exposes all lock block devices as NVMe-TCP. This is a very nifty feature inspired by macOS with the new systemd Storage Target Mode.
– A new component “systemd-bsod” has been added to show logged error messages full-screen if they have a “LOG_EMERG” log level. This is intended as a tool for displaying emergency log messages full-screen on boot failures. Yes, BSOD in this case short for “Blue Screen of Death”. This was worked on as part of Outreachy 2023. The systemd-bsod will also display a QR code for getting more information on the error causing the boot failure.
– There’s been an overhaul to the way systemd services are spawned. Rather than forking the process that shared all of the manager’s memory via CoW before exec’ing the target executable, the new process is now spawned using CLONE_VM and CLONE_VFORK via posix_spawn().
– A “systemd-pcrlock” has been added that allows managing local TPM2 PCR policies for PCRs 0-7 and similar.
– A new “systemd-vmspawn” tool has been added that provides for VMs the same interfaces and functionality that systemd-nspawn provides for containers. The systemd-vmspawn tool uses QEMU as its back-end. For systemd 255, systemd-vmspawn is experimental.
– A new “varlinkctl” tool has been added to allow interfacing with Varlink services.
– SECCOMP now supports the LoongArch 64-bit CPU architecture.
– Systemd’s bootctl will now show whether the system was booted from a Unified Kernel Image (UKI).
– systemd-boot has new hotkeys of “B” to reboot and “O” to poweroff from the boot menu.
– Most internal process tracking is now using PIDFDs rather than PIDs when running on a supported kernel.
– systemctl will now automatically soft-reboot into a new root file-system if found under /run/nextroot/ when a reboot operation is invoked.
– A new option “SurveFinalKillSignal” has been added to skip the final SIGTERM/SIGKILL spree on shutdown in order to survive soft-reboot operation.
– A new “ConditionSecurity=measured-uki” option for only running when the system has been booted via a measured Unified Kernel Image (UKI).
– TPM measurements are now written to an event log at /run/log/systemd/tpm2-measure.log.
– Support for split-usr has been removed.
– Support for System V service scripts has been deprecated and will be removed in the future.
– A variety of systemd TPM(2) improvements.
– Hibernation into swap files backed by Btrfs are now supported.