I think that installation was originally 18.04 and I installed it when it was released. A while ago anyways and I’ve been upgrading it as new versions roll out and with the latest upgrade and snapd software it has become more and more annoying to keep the operating system happy and out of my way so I can do whatever I need to do on the computer.
Snap updates have been annoying and they randomly (and temporarily) broke stuff while some update process was running on background, but as whole reinstallation is a pain in the rear I have just swallowed the annoyance and kept the thing running.
But now today, when I planned that I’d spend the day with paperwork and other “administrative” things I’ve been pushing off due to life being busy, I booted the computer and primary monitor was dead, secondary has resolution of something like 1024x768, nvidia drivers are absent and usability in general just isn’t there.
After couple of swear words I thought that ok, I’ll fix this, I’ll install all the updates and make the system happy again. But no. That’s not going to happen, at least not very easily.
I’m running LUKS encryption and thus I have a separate boot -partition. 700MB of it. I don’t remember if installer recommended that or if I just threw some reasonable sounding amount on the installer. No matter where that originally came from, it should be enough (this other ubuntu I’m writing this with has 157MB stored on /boot). I removed older kernels, but still the installer claims that I need at least 480MB (or something like that) free space on /boot, but the single kernel image, initrd and whatever crap it includes consumes 280MB (or so). So apt just fails on upgrade as it can’t generate new initrd or whatever it tries to do.
So I grabbed my ventoy-drive, downloaded latest mint ISO on it and instead of doing something productive I planned to do I’ll spend couple of hours at reinstalling the whole system. It’ll be quite a while before I install ubuntu on anything.
And it’s not just this one broken update, like I mentioned I’ve had a lot of issues with the setup and at least majority of them is caused by ubuntu and it’s package management. This was just a tipping point to finally leave that abusive relationship with my tool and set it up so that I can actually use it instead of figuring out what’s broken now and next.
In general, consider setting up any kind of rollback functionality; this will enable you to get right back to action without any downtime when you’re time-restricted. This can be achieved by configuring your system with (GRUB-)Btrfs+TImeshift/Snapper. Please bear in mind that it’s likely that you have to come back to solve it eventually, though*. (Perhaps it’s worth thinking about what can be done to ensure that you don’t end up with a broken system in the first place. *cough* ‘immutable’ distro *cough*)
If this seems too troublesome to setup, then consider using distros that have this properly setup from the get-go by default; like (in alphabetical order) Garuda Linux, Manjaro, Nobara, openSUSE Aeon/Kalpa/Leap/Slowroll/Tumbleweed, siduction and SpiralLinux. Furthermore, so-called ‘immutable’ distros also have rollback functionality while not relying on aforementioned (GRUB-)Btrfs+TImeshift/Snapper; this applies to e.g. blendOS, Fedora Kinoite/Sericea/Silverblue, Guix, NixOS and Vanilla OS.
If you feel absolutely overwhelmed by the amount of choice, then you should probably consider the bold ones; not because I think they’re necessarily better but:
- openSUSE’s offerings are generally speaking very polished, therefore being highly suitable to replace Linux Mint or Ubuntu. It’s its own thing though, therefore you might not be able to access packages that are exclusively found in Debian’s/Ubuntu’s repos (though Distrobox solves that trivially). Tumbleweed if you like rolling release, Slowroll if you prefer updates only once every 1-2 months and finally Leap if you lean more towards Stable/LTS releases.
- siduction for being based on Debian; but it’s strictly on the Unstable(/Sid) branch.
- SpiralLinux for being based on Debian; this one -however- has proper support for switching branches.
- Vanilla OS for being based on Debian; this one is very ambitious. But, because it’s an ‘immutable’ distro, it might require the biggest changes to your workflow.
nvidia drivers are absent
While any of the aforementioned distros do a decent job at ‘supporting’ Nvidia, perhaps you might be best off with uBlue’s Nvidia images. As these are images relying on the same technology that Fedora’s immutable distros do, rollback functionality and all the other good stuff we’ve come to love -like automatic upgrades in the background- are present as well. In case you’re interested to know how these actually provide improved Nvidia support:
"We’ve slipstreamed the Nvidia drivers right onto the operating system image. Steps that once took place on your local laptop are now done in a continuous integration system in GitHub. Once they are complete, the system stamps out an image which then makes its way to your PC.
No more building drivers on your laptop, dealing with signing, akmods, third party repo conflicts, or any of that. We’ve fully automated it so that if there’s an issue, we fix it in GitHub, for everyone.
But it’s not just installation and configuration: We provide Nvidia driver versions 525, 520, and 470 for each of these. You can atomically switch between any of these, so if your driver worked perfectly on a certain day and you find a regression you just rebase to that image.
Or switch to another desktop entirely.
No other desktop Linux does this, and we’re just getting started."
Great piece of information. I personally don’t see the benefits with immutable distribution, or at least it (without any experience) feels like that I’ll spend more time setting it up and tinkering with it than actually recovering from a rare cases where things just break. Or at least that’s the way it’s used to be for a very long time and even if something would break it atleast used to be pretty much as fast as reverting a snapshot to fix the problem. Sure, you need to be able to work on a bare console and browse trough log files, but I’m old enough that it was the only option back in the day if you wanted to get X running.
However the case today was something that I just couldn’t easily fix as the boot partition just didn’t have enough space (since when 700MB isn’t enough…) even a rollback wouldn’t have helped to actually fix the installation. Potentially I might had an option to move LVM partition on the disk to grow boot partition, but that would’ve required shrinking filesystem first (which isn’t trivial on a LVM PV) and the experience ubuntu has lately provided I just took the longer route and installed mint with zfs. It should be pretty stable as there’s no snap packages which update at random intervals and it’s a familiar environment for me (dpkg > rpm).
Even if immutable distros might not be for my use case, your comment has spawned a good thread of discussion and that’s absolutely a good thing.
Ah, I had misunderstood your /boot situation previously. There’s an easy way to fix it by backing up current content of boot, unmounting it, creating some dir somewhere where there’s space (
/tempboot
was my choice last time), bind mounting it to /boot and going through the apt process. Then unmount the bind, mount the real boot, delete everything except currently booted kernel stuff, copy all the things from/tempboot
update the initrd and grub. Et voila!Why I didn’t think of that. It whould have fixed the immediate problem pretty fast. I would still have the issue with too small boot partition, but it would’ve been faster to fix the issue at hand. But in either case, I’m pretty happy I got new distro installed and hopefully that’ll fulfil my needs better for years to come.
Thinking straight is rare in stressful situations.
Broken computers aren’t really stressful to me anymore, but it sure plays a part that I kinda-sorta had waited for reason to wipe the whole thing anyways and as I could still access all the files on the system, so in the end it was somewhat convenient excuse to take the time to switch the distribution. Apparently I didn’t have backup for ~/.ssh/config even if I thoguht I did, but those dozen lines of configuration isn’t a big deal.
Thanks anyway, a good reminder that with linux there’s always options to work around the problem.
‘immutable’ distro
Are there even immutable distros old enough to have compatibility issues between a 5 year old installation and the latest version?
NixOS has been around since 2003, thus making it older than Ubuntu (2004). Even Silverblue has been out since more than 5 years (October 2018). Finally, we can’t forget about Guix that had its first release over 10 years ago (January 2013).
Honestly, for a long term usage like this a rolling release distro is better. I’ve never not had massive issues upgrading ubuntu release to release, but I’ve only ever had minor ones on arch and pretty much nothing on gentoo. Arch is bleeding edge, so can’t recommend it to you all that much and gentoo has some learning curve initially. But I’ve heard good things of whatever rolling names are from fedora and opensuse.
I just had pacman uninstall itself the other day during a routine -Syu. I was finally able to figure out how to fix it, untar the pkg to / and then tell pacman to install pacman with —overwrite.
That sounds fun
People think “updates are time consuming” therefore prefer LTS because its supported for longer. I parole for quite some time that LTS has no place for private use and rolling release is the right way.
I can’t stand rolling releases (for personal use) and I never recommend them to anyone. To me it feels like being in drift sand.
I need fixed releases to test my documentation (shell scripts) against something. With a rolling release those scripts can break at any time, unless you read the changelog of every package update.
But I also want and use fully automatic updates, so reading changelogs for every update would be the direct opposite of what I am looking for in an OS. I am ok with reading release notes every couple of months for a distribution upgrade though.
I want my systems to be reproducible and that’s impossible with
drift sandrolling releases. In my opinion Fedora or Ubuntu have a decent release cycle, I would never consider Arch or Tumbleweed or Solus.Uhm you never actually used a rolling release distro obviously. Why would you have to read change logs? Also what are you referring to with “test my documentation (shell scripts)”? Why would those not work if package xyz is updated? You are not making much sense, but maybe I am lacking the experience in UNIX to understand your point of view.
Your package manager should tell you about conflicts and even if it doesn’t and something is not working like it did before, you do a simple snapshot rollback and wait another week to update or actually read what might cause the issue. And those incidents are like super rare, at least on Opensuse Tumbleweed (e.g. 2-3 times in a year).
I’ve used Arch Linux and openSUSE Tumbleweed in the past and I have been using Linux for over 10 years …
With each new version of an application there’s the change that configuration files or functionality changes. Packages might even get replaced with others.
You would be surprised how much changes between Ubuntu LTS versions … My archived Ubuntu installation script had lots of if-statements for different versions of Ubuntu, since stuff got moved around. Such things can be as simple as gsettings schemas (keys might get renamed), but even these minor changes make documentation and therefore reproducable reinstallations troublesome.
With a fixed release all these changes are nicely bundled in one large upgrade every couple of months/years, which makes it easy to document and to plan when to do the upgrade.
With each new version of an application there’s the change that configuration files or functionality changes. Packages might even get replaced with others.
Even if this would be true, how would that impact your configuration? It doesn’t full-stop. If you want to access those new features you simply need to check how to activate them in your config file. Or are you making config edits in /etc/ ?!
Your next paragraph I don’t understand, it seems specifically aimed at some kind of self “maintained” script, which as nothing to do with rolling release or distributions.
how would that impact your configuration?
It impacts my documentation. If, for example,
gsettings set org.gnome.software allow-update false
no longer works, because they changed the key fromallow-update
toupdates-allowed
, then my documentation no longer works correctly. Same when new technology is introduced, e. g. a switch from Pulseaudio to Pipewire. With a rolling release distribution these changes can happen at any time, whereas with a fixed release these changes only occur when a new release of the distribution is made and I upgrade to it.I don’t have the time to continously track these changes and modify my documentation accordingly. Therefore I appreciate it if people bundle all those changes for me into one single distribution upgrade and write release notes with a changelog. Then I can spend a day reading the release notes, adjust the documentation, apply the upgrade on all devices and then move on for the next couple of months/years.
which as nothing to do with rolling release or distributions.
I tried to explain to you why I dislike rolling release distributions. That’s why I tried to give you one example where a fixed release distribution is more suitable in my opinion.
I understand that these things might not matter to you, if you only have one computer (or so) to maintain at home or maintaining home computers is your hobby. But I have four personal computers and multiple devices from the family to maintain and system administration is no longer my hobby …
But I have four personal computers and multiple devices from the family to maintain and system administration is no longer my hobby …
but you are writing documentation for scripts?
LTS does have a place on the desktop: Learning how to daily drive linux. I started with kubuntu non-LTS and didn’t know you needed to manually start a full-upgrade to not get moved to backport repos. Of course that came crashing down on me at the worst time and I took a break from linux. But I did learn enough that I can use arch now and it’s been great.
I don’t understand what it means to "not get moved to backport repos, but this seems ubuntu specific. What you need is proper rollback/snapshot mechanisms in place. Looking at Tumbleweed which offers it out of the box. For Arch you can set it up yourself or use something community made like EndeavourOS.
LTS has no place on personal desktops.
I haven’t been paying attention on the rolling releases scene, but I’m pretty sure there was no mature option back when I installed that thing in 2019 or so other than Debian Sid (and daily driving that used to be an adventure in itself, but it’s been years since I last had a system like that). With ubuntu since at least version 14 upgrading from stable release to another was pretty stable experience, but that’s not the experience I’m having today.
Iam using Tumbleweed for close to 10 years now and it was pretty mature from the start. You can’t go wrong with rolling release + perfectly configured btrfs + snapper by default.
Debian sid is not a distro, it is a staging area for Debian testing. It is not meant for use other than testing new packages.
Same here. Ubuntu almost made me believe that linux is a pain in the ass to use and you need to fix some shit after every update.
Now I use arch and it’s great. Nvidia is very annoying because they constantly publish drivers that break things, but you can just roll those back and wait until they fix it again. And that gets worse as GPUs age. Apart from nvidia, I’ve had exactly one update issue (telepathy-kde being removed and causing the pacman dependency resolver to get confused) that was fixed in about 2 minutes of googling.
My biggest complains with Ubuntu lately are Firefox is a snap package and when it updates it yells at me to close Firefox so it can update it and if I wait too long it forces the it closed, and it gives me countdown notifications. Annoying and something out of Windows 10 forced reboot type shit. The other is the automatic apr upgrades break cuda/nvidia drivers forcing me to reboot the whole system. Pain in the ass.
Automatic updates that need reboots but run at any time other than when shutting down?
Sounds like something microsoft would do, but even they get that part right.