Over the weekend I updated my favourite rolling release of my Linux distro, Solus-Project. I looked through the updates, like I always do and seen there were some updates - one including the Linux kernel! Later that day I shut the PC down and went about the rest of my day.
Yesterday I needed to get back on my PC to do something and it wasn’t booting - God damn it! Not all is lost though, this is Linux and with the power of Linux there is something out there on the big web that can help - before I use my small circle of friends if they’ve had this.
After some searching on DDG I found the command I was trying to get to for when booting failed once it passed the boot screen and boot loader -
ctrl+alt+F2. Once I logged in with my normal user credentials I found this article on the Solus Project help forum and run the suggested command;
CBM_DEBUG=1 clr-boot-manager update. This allowed me to run the
update command and get the debug output I needed - thank you to people who add good logging!
The results shown that there was no space on my device… odd. Then the dredd hit me - I didn’t set the boot partion to a large size, because.. well I thought it would be fine. The size you ask, it was 512Mb… I know.
So as I dual boot, I booted into my Windows partion downloaded Rufus and the Solus-Project ISO and set them to work together to create me a bootable USB. Once booted I tried to re-size my partition labeled
BOOT and quickly found … I can’t.
Next step, purge the old versions. I thought that
clr-boot-manager would have a command to purge something by date or “keep recent versions” but it doesn’t have that:
$ clr-boot-manager -h Usage: clr-boot-manager version - Print the version and quit report-booted - Report the current kernel as successfully booted help - Show help message update - Perform post-update configuration of the system set-timeout - Set the timeout to be used by the bootloader get-timeout - Get the timeout to be used by the bootloader set-kernel - Configure kernel to be used at next boot list-kernels - Display currently selectable kernels to boot Options: -p, --path Set the base path for boot management operations. -i, --image Force clr-boot-manager to run in image mode. -n, --no-efi-update Don't update efi vars when using shim-systemd backend.
So, I had to do it myself. Boot into my USB drive and the Solus Live image worked a treat -
sudo su mount /dev/MY_BOOT_PARTITION /boot xdg-open /boot
In here had all my boot partitions under
/EFI. Once I am in there
com.solus-project and then change to a list view and order by most recent. Here I could remove the oldest ones from the past few years. Once that was done I needed to set the kernel to the latest version with
clr-boot-manager set-kernel com.solus-project.current.184.108.40.206 (find your available kernels with
clr-boot-manager list-kernels - the one with the
* on the left is the one that is set).
reboot now and all works again!
The lesson I was taught here; set something more sensible for the boot partition - 512Mb is just stupid when using a rolling release. The bonus is if I do need to re-install Linux (and Windows in tthis case) then I have a partition
/home so that wouldn’t be affected - my Windows partition would though from what I can tell…