OpenSUSE

Breaking (and Recovering) SELinux

Breaking (and Recovering) SELinux

Connor Grout

This is a post about caution and how a simple mistake you can make can blow up a month after you make it. But as with anything, breaking something leads to fix it and learning a lot. This post will cover SELinux file contexts, SELinux tools such as semanage, restorecon, and matchpathcon, the nature of immutable filesystems and some fun quarks of btrfs.

The Beginning

So to start, I run OpenSUSE MicroOS as my server environment at home. This atomic server works great because all of the apps that I run are microservices. I have yet to migrate to Kubernetes, I really need to do that, so I am using podman and it’s systemd integration to run my stack. It actually works surprisingly well since everything from containers, networks, volumes, etc. are all defined in systemd unit files. This makes setup really easy because it all standardized and you can use systemctl and journalctl to manage your containers and logging.

systemd NSSwitch Confusion

systemd NSSwitch Confusion

Connor Grout

The Setup

This was definitely a fun issue to run into over this week. So it started with an update to my openSUSE desktop and was greeted with a frozen plymouth screen forever. I tried reverting, and got my box to boot again so I knew it was an issue with this update. I don’t update very often so it didn’t do me much good to read the snapshot release notes because a lot had changed from the last time I updated and the latest.

Migrating from Grub2 to systemd-boot

Migrating from Grub2 to systemd-boot

Connor Grout

I noticed that openSUSE MicroOS (and Aeon which is my daily driver) started supporting systemd-boot in 2024. Because of this I’ve read that systemd-boot is more efficient and faster than grub2 as a bootloader so I decided to migrate my Aeon RC1 to systemd-boot manually. It should be noted that when I installed my version grub2 was the only supported option, the newer RC of Aeon actually offers systemd-boot as an option during the installation process, but still defaults to grub2.