Clr Boot Manager

clr-boot-manager now available in Solus

March 26, 2017

We’re happy to announce the rollout of clr-boot-manager in our stable repository. clr-boot-manager, from the Clear Linux Project For Intel Architecture, enables a more bulletproof update experience by handling the maintenance and garbage collection of kernels, as well as configuration of the bootloader itself (i.e. GRUB2 for Legacy Boot, goofiboot for UEFI boot on Solus). Furthermore, it enables us to retain older, known-working kernels, so in the event a kernel upgrade results in the inability to boot, you’ll still be able to roll back to the last good kernel.

The importance of bulletproof boot management

clr-boot-manager also addresses the issue of modules of the currently running kernel being removed from the disk during an update. The Linux kernel loads modules at runtime from uniquely namespaced trees, as each tree is specific for each kernel. Prior to clr-boot-manager, those unique module paths would be removed, meaning if the module wasn’t previously loaded, it can’t load. This would result in USB devices not functioning, like a headset or mounting an external drive. Similarly,this would also result in failing to load the NTFS filesystem module, thus not being able to mount an NTFS disk. This would result in Windows disappearing during GRUB, since it could no longer “see” it. From a developer perspective, this offers a far simpler approach to kernel maintenance - we do not need dozens of meta packages to offer this experience.

Kernel configuration

On the configuration front, clr-boot-manager enables easier management and use of custom cmdline arguments, such as the common i8042.nomux=1 or resume=/dev/somePartition.

You can add your required kernel arguments to /etc/kernel/cmdline or /etc/kernel/cmdline/*.conf, and clr-boot-manager will merge those as appropriate into the final command line for each kernel. This is merged with the vendor cmdline, part of the kernel package, and any automatic cmdline that may be generated by clr-boot-manager itself (such as the root= or rd.luks.uuid= parameters). Once done, just run sudo clr-boot-manager update to commit the changes.

Future Considerations

As of now, all Solus users are on the linux-lts package by default. This now ensures that we no longer “branch jump” existing users onto a mainline kernel. Prior to this change, we had a single kernel package within Solus, meaning we’d follow the most stable in our consideration.

In future, we’d like to expand our supported kernels, with plans for a linux-mainline package, and allow our users to pick the most appropriate kernel for their needs, whilst retaining stability for the majority.

Upgrading to the new system

This change is entirely automated. Once you’ve updated and rebooted your system, you’ll now be using a clr-boot-manager managed system, and the new linux-lts package. No user intervention is necessary here.