Sometime on the 31st of July, I was trying to figure out why my computer wasn’t properly recognising one of the drives that was in it, so I decided to format it to see if that helped.
As it turns out, that drive had my Windows OS on it.
(The reason I didn’t know this was because it wasn’t listed separately to the other drive I was using, Windows somehow merged them and I always thought it just didn’t work)
Thus began my 2 week long, cold-turkey dive into using Linux as my primary desktop OS.
These are my stories. *dun dun*
Prelude – I think I can, I think I can!
In the week leading up to this fateful day, I had been toying with the idea of dual-booting Linux to ease myself into it (hence the fiddling with the drives, and also thankfully the full system image I had created to keep my data safe).
This meant that not only was I mentally prepared to start using Linux, but I also had the installation media handy.
Faced with the prospect of laboriously re-installing windows and its drivers and its updates all over again, or finally getting into Linux like I’ve always meant to do… I went with the fun one.
Being a follower of Bryan Lunduke (see also: title of this post), I obviously went with openSUSE as my distro of choice.
I dabbled a little with Tumbleweed for a day or so before realising, ‘breaks quite often’ is not what I am looking for in an at-home desktop, and switched to Leap 42.3 for the remainder.
At around the same time, Secret World Legends released on Steam and I decided I wanted to get back into it. So my goal was to play it on Linux. Once I got there, I could happily run Linux as my main Desktop, sure in the knowledge that ‘anything is possible’.
Little did I know what a fight I was in for.
Keep in mind, I have had formal training in Linux Sysadmin and configuration with RHEL, so I am not all that fresh faced, but I’ve never needed to do anything more complex than throw together a basic webserver (this one actually), so I’m hardly a guru either.
All I really wanted was to get set up with a desktop environment that ‘just works’ but with all the nifty features of Linux.
I’m no super-tuner or hyper-aggressive power-user. I’m just an interested user.
Chapter 1 – A Challenge… Appears?
I encountered my first problem with the first page of the installer.
By which I mean before even seeing it.
By which I mean trying to get it to appear.
Seeing a blank black screen with a blinking white cursor instead of a nice pleasant installer was not a good omen for the rest of my Linux experience, but Linux is about nothing if not diving into solving technical problems, so dive I did.
To cut a long story short, once I eventually remembered that actual Linux had virtual terminals (I had always previously ssh’d into Linux, so I had forgotten), I switched to one and figured out that it WAS displaying the installer page. Just not on any of the screens sitting in front of me. It was instead detecting the switched off smart TV behind me (that I had hooked up as a third monitor while running windows so that I could stream TV from bed), as my primary screen.
Unplugging that rewarded me with the ability to actually install something.
HOORAY!
Chapter 2 – Stop WINE-ing at me!
Now that I could see what I was doing, I did. I installed my beautiful tiny fast operating system onto my beautiful tiny fast SSD.
This was my first mistake.
While openSUSE defaults to BTRFS, which has out of the box support and some degree of optimisation for SSD’s, what I did not anticipate was that the plan to have the OS on the SDD and the data on the HDD would cause WINE to throw a tantrum.
Of course, I came to this discovery only AFTER configuring my desktop and my settings, logging into things and installing everyday programs like Vivaldi, Thunderbird, Discord, Steam for Linux,
NB: Steam for Linux is not great. Steam under WINE worked better than Native Steam…
Maybe it was the distro, maybe it was the app version, maybe it was KDE, but whatever it was, Steam for Linux was crippled from the start.
It had a system tray icon, but it didn’t do anything. No right click menu, not even double click to open. It just sat there.
And sure it filtered on Linux games by default, and the store works (unlike the WINE version), and yes it installed the linux games. But no it did not run them.
Clicking play did nothing. Not a thing. Opening the folder and running one of the linux-y things (run.sh or gamename.bin) worked just fine, but there was also a .exe in the directory, so my theory is that Steam was trying to run it and not knowing how and stopping again.
All-in-all, underwhelming for a company that rolled their own linux distro specifically to support gaming. I stopped installing it rather quickly and stuck with the WINE version.
But I digress.
and WINE (With Steam and some games for testing, running under it).
Oh well, that was fun while it lasted, guess I’ll have to confine myself to the HDD after all…
At least Linux is faster than Windows so it won’t be too bad.
Chapter 3 – It was bad.
Hello again Yast Installer. Long time no… Oh right.
Fortunately it’s a perfectly pleasant and sensible installer for the most part, though why it defaults to ‘manually specify an IP but provide no defaults’ instead of ‘get IP from DHCP’ for the network settings, I have no idea. But I’m sure they have their reasons.
The installation went okay. No major hiccups, I was up and running again!
By now I’m starting to see that Linux is surprisingly fragile. Startlingly so (see also: All the other chapters). Imagine MC Escher drew a game of Jenga. Stuff stands up that logically should fall down, stuff falls down that logically should stand up, and there’s no way to know which before you tap on it. You just have to try not to tap on anything unless you absolutely have to.
So what did I do?
I configured my desktop and my settings, logged into things and installed my everyday programs like Vivaldi, Thunderbird, Discord, and WINE (And Steam and some games for testing, running under it).
But you’d better believe I did it more cautiously, looked carefully at what it was doing, how it was doing it, etc etc. An unfortunate necessity, but what can you do?
It seemed to work though, because everything was going quite well! I solved a bunch of small problems, mostly the browser’s fault like H264/MP4 support and inappropriate caching of redirects, but also dipped my toes into the vast configurable-ness of KDE.
My system was a thing of beauty and grace!
That’s right, shortly afterwards I encountered a distro-crippling error that I had to try to figure out how to either fix, or avoid when I re-installed.
Installing SOMETHING broke the display manager so badly that every reboot, it was stuck in an infinite loop of ‘try start, switch to GUI term, fail, switch to CLI term’ and would force me to login, and sudo stop the display manager.
As if this weren’t bad enough, I had to do this while typing 1-2 characters at a time, and then waiting to get switched back to CLI to type more.
The passwords were the most fun, because you can’t even count the characters you’ve already entered.
After much Ducking, I arrived at one inescapable conclusion.
It’s dead Dave.
Chapter 4 – Just give me a little space!
Hello Yast-installer my old friend, I’ve come to talk with you again.
Because my vision-manager frequently blinking, persisted after significant thinking.
And the blinking, was giving me a headache
So I did break.
And reinstalled, the OS, from scratch.
Except! I didn’t.
Thanks to the magic of partitioning, I was successfully able to retain a lot of my data by mounting the /home partition instead of making a new one. Hooray for compartmentalisation! I’ll be sure to do more of that in future! It’ll work wonders for the stability and reliability of my system!
This isn’t foreshadowing at all, the future is bright and full of flowers and butterflies!
Learning a lesson from the previous chapter…
I configured my desktop and my settings, logged into things and installed my everyday programs like Vivaldi, Thunderbird, Discord, and WINE (And Steam and some games for testing, running under it).
And you better believe I rebooted each time. Never installing more than one package (and it’s dependencies) in between.
After all, the sooner you find out that something has broken your system, the (theoretically) easier it will be fixing it again. Don’t install everything all in one go. Increment.
It definitely wasn’t as slow as Windows would have been doing the same thing, but it was getting quite tedious at this stage, re-doing all this stuff…
Alas, it would not be the last time.
Getting as far as I did with setting up the environment the way I wanted it meant that for the first time so far, I was realising that 10G for the root partition (the default setting, and all that was available since I had retained the previous /home) was really not going to cut it.
For reasons best known to people that are not me, Yast/Zypper does not allow non-root users to install packages.
I don’t know whether that would have prevented this problem, but it certainly didn’t help matters, because everything was being installed on the root partition (10GB) instead of the /home partition (1.8TB). This got rather cramped, rather quickly.
A fun fact about Linux, if the root partition fills up. The whole thing grinds to a halt.
This time, I thought I might be able to avoid a full reinstall and get away with rebooting (all hail the IT Maxim!) into recovery mode, shunting all the heavy data (/var and /usr) to a subdirectory of /home, and symlinking across the partition.
However, this being a tedious and time-consuming process (having to look up how to do this properly so nothing would break, on a tiny and slow device did not help), I decided to just do the partitions right this time (the SUSE Wiki containing a helpful article on how to do this, as well as some dude on a forum somewhere… Thanks man!).
Chapter 5 – Iceberg, dead ahead!
Well well well Mr Yast, we meet again.
Tell you my villainous plans? Why certainly, you’ll soon meet your end at my hands anyway!
I plan to give /boot 500MB as is proper,
swap double my RAM as is proper,
/usr and /var each their own slice of 100GB,
and /home the remaining 1.49 TB.
I also plan to mount /tmp on TMPFS because it seems sensible.
I will ruthlessly crush the sub-optimal defaults beneath my jackbooted heels and rule over my operating system with an iron fist, and NONE shall stop me! Not even you! You are mine to command now Mr Bo… Yast. *Evil Laugh*.
In all seriousness, I actually thought I had it this time. Yast was doing what I told it to, my system was in a stable and functional state. I had done the needful and installed, configured and authenticated everything (again). I was slowly branching out into seriously trying to get WINE to work without having to worry that my system was going to die again.
I installed myself some AMD drivers in the hope it would solve the Direct3D errors I was getting for every single game. My hopes were high! I gave the go-ahead to a system update.
My hopes were dashed.
In one fell swoop, this system update had usurped my OS out from under me, and I had no idea. I just carried on in my battle with WINE, not knowing that I had already lost the war to the OS.
Not until the reboot.
As soon as it logged on I knew there was something wrong. Instead of folders on my desktop, there was an error message. An error message printed across the middle of the desktop background saying ‘Error, failed to read Desktop.so’.
I thought to myself:
Well that’s annoying, but it’s probably nothing too serious,
Just a mis-configuration or a permission issue or something from not shutting down cleanly.
No more serious than a lock file.
Surely nothing a little Yast-ing can’t fix?
Tip of Iceberg, meet rest of Iceberg.
Yast is dead. Can’t run it at all. Commandline says something about ruby and require.
It’s been gutted.
Okay, no problem, just do a clean with Zypper or something. The beauty of Package managers is that they know how the system should be for the package to work, right?
Zypper is dead. Can’t run it at all…
Well crap, I think I might be in trouble.
Oh a quick Ducking says that it’s probably a bad repository. I bet it’s the one I added since the last reboot, let’s just disable that one eh?
No.
Disable all the repos?
Yes!
Okay great, fix Yast?
No.
Oh…
I know! Snapshots! BTRFS has a neat feature where you can rollback your system changes! I’ll just do that?
No.
What? Why not?
Compartmentalisation.
… Oh.
That’s right folks! That thing I said wasn’t foreshadowing before, was actually foreshadowing after all!
Because /var and /usr and /etc are all closely linked when it comes to system the ‘goodness’ of the state of the system, and because I had split them out into separate partitions to save myself from those few memory hogs crippling the rest of my system…
I had also crippled the ability for the snapshots to capture all the data necessary to ACTUALLY restore the system.
This was the point, 2 weeks in, having gotten one game running at one stage after manually running the file in the install directory, and never having gotten any running under WINE.
This was the point, 2 weeks in, having fallen out of the habit of watching the TV shows that I enjoy because Linux was there demanding that I fix it first.
This was the point, 2 weeks in, spending all my time fighting my computer instead of using it.
This was the point, I gave up and decided to reinstall Windows.
Epilogue – It was the best of times, it was the worst of times
I’ve still got a hard road ahead of me. Windows is almost invincible once it’s going (long as you reboot it regularly so it doesn’t strangle itself), but getting it going is like Sisyphus and his boulder. The drivers, the updates, the tweaking.
But at least I only have to do it once.
At least I can play my games.
At least it won’t break on me* when I do something that is usually fine.
*This has actually happened to me twice in the past 7 years. Which is almost never but not never.
But I’ll sure miss Linux.
My time with Linux opened my eyes. It taught me, it beat me, it enthralled me.
When the times were good, they were really good.
- The Multi-Monitor Taskbar with a System Tray that Windows STILL can’t provide, made childishly simple with KDE
- Auto-login for my account so I don’t have a 2-stage, human-input boot cycle, while still password protecting the important stuff
- The sheer depth and variety of the aesthetic configuration, not 100% coverage, but pretty damn impressive
- The sheer awesomeness that is package managers. Despite their pitfalls, the idea is a good one
But when they were bad, they were horrid.
- The amount of time I spent fighting the system instead of using it
- The number of times doing something innocuous led to unpredictable and unwanted results
- The sheer amount of friction in component interaction
- The anxiety-inducing fragility of the system, far exceeding the oft-touted instability of Windows. A mere reboot can’t solve Linux’s problems, it can even sometimes make them worse
- Outdated documentation
Conclusion
Linux’s great strength is it’s open-ness that allows anyone and everyone to contribute. It means if you want a feature, you can get it. If you can’t get it, you can make it.
Linux’s great weakness is it’s instability, due almost entirely to it’s great strength. Because anyone and everyone contributes, linux is more like a ramshackle collection of individual pieces of varied reliability, rather than a cohesive and reliable union.
The pieces can be lovingly tended, or left to rot, with little difference to the stability of the structure as a whole.
But if the joins are left to fray… The structure falls.
Update
Windows is even more painful to reinstall than I had realised, so I have opted to try Linux again with GeckoLinux, an openSUSE based distro whose sole purpose is to provide a reliable and stable User Desktop experience.
Keep your eyes peeled for a part two. Here’s hoping I never have to write one!
Your mistake there that created a house of cards is your choice. OpenSuse is not the best PC Linux, any distro that uses rpm isnt for the faint of heart. If you only chose Linux Mint, you have not experienced that scenario.
Yeah, Deb based distros do a lot more coddling, but that wasn’t what I wanted out of mine. I loved the configurability and the tweaks and the like, particularly after I gave myself a refresher in linuxing, but expected the stable release to be more stable 😛
Downgrading to GeckoLinux (OpenSUSE 42.2 as a Stable Desktop) has been a much smoother ride. I haven’t run into ANY distro-crippling bugs so far and it’s already halfway through the 2 week trial.
My biggest problem now is WINE, and from what I can tell there’s nothing anyone or any deb file can do about WINE’s trickiness, so I’m pretty happy with how it turned out 🙂
Also, I left comments enabled for a week and got 42 spam and 1 genuine comment, so I’m just going to disable them again. But please do email me if you want to continue the discussion!