Daily Driving Linux and My Personal Postmortems

Michael RWXMichael RWX
8 min read

Postmortem (noun) - : an analysis or discussion of an event after it is over. (adjective) - : done, occurring, or collected after death.

Prelude

I've wanted to write about this for a while now but was in the learning process for a good bit. When I was in college, I took an Introduction to UNIX/Linux class. No disrespect to the professor, but I found the class extremely boring. Not because I didn't learn anything. It's because I didn't understand the extent at which Linux could be used. The material taught refused to stick with me.

Linux was introduced to me as a hard operating system with a convoluted terminal knowledge requirement. The terminal commands we ended up learning about were grep, vi, cat, ls, basically chapter 2 of the RHSCA certification. We had a computer lab where every workstation had Linux Mint installed. I don't remember if we used any of the other programs, but I remember a lot of the class being inside of the terminal.

Consider this blog to be the Shrek 2 equivalent sequel of "Blackbuntu: Turning My Old Laptop Into a Cyber Weapon." Honestly, I kinda wince at the title at this point. It's giving r/masterhacker or script kiddie. That said, that was written about about a year and a half ago. And oh man, a lot has changed since then:

  • That laptop is now barely used, I think the last time I turned it on, I installed Pop_OS just to see how good it was.

  • I've completely shifted gears into focusing on obtaining a career in DevOps instead of Cybersecurity. Which is mind boggling considering in between these blogs, I obtained the Security+ (I wish I could just give it away to one of my co-workers who are still interested in the field).

  • Michaelnet is still around and hosted many servers for my friends! I'm currently remaking it, and I'm hoping to post more about it.

But on the cybersecurity (it's one word and I refuse to budge on that) interest change, I found myself looking more into Linux stuff on my free time. I can't tell you where it originated from, but the more I looked into it, the more interested I was. Maybe it came from my distaste of the amount of telemetry data on Windows. I did the rounds on Linux youtubers like Brodie Robertson, Chris Titus, The Linux Experiment, etc. My feet were in the water, but I refused to dive.

That is until I learned that my most anticipated game of 2024, Rivals of Aether II, was discovered to be working very well on Linux. This was a game that was in a beta testing period, and it was working well.

All the homelabbing, the things I do at work, and this piece of news finally gave me the confidence to jump in, no turning back. I learned a lot of lessons in doing this, and I WILL be embarrassing myself for your enjoyment.

"Necessary" Upgrades

I hit a personal financial goal around this time, so I decided that with installing my new operating system, I wanted to upgrade my PC (what a lovely excuse).

For those who have NVIDIA cards and were hoping to hear my journey with NVIDIA on Linux: I'm sorry to say that I refused to take the first step. I was reading mixed things on NVIDIA at the time, and didn't want to risk anything. I got myself an AMD Radeon RX 7900 XT. AMD drivers have always been open source, meaning from the jump the Linux developers have been able to get it working.

Also, AMD cards tend to deliver better performance than NVIDIA for a cheaper price. I reckon I spent about $700 on a card equivalent to a $1000 RTX 4080.

I built the PC without issue, booted on first go.

Installation

The Linux distribution you choose is entirely preference and needs. None of them are inherently better than the other. The only differences are package managers and who's developing them, really. I picked the distribution with the rolling releases. :)

A rolling release basically means there are frequent updates to the system. Instead of version numbers, the same system is consistently upgraded, sometimes without much testing. Call it continuous delivery if you want. This detail will be important later.

I've ran through the Arch installation before using the wiki. I decided to use Archinstall instead because I was excited to get the system up and running. Some people crucify the use of Archinstall, but my system my rules (that's pretty much the whole thing behind Linux)!

And this is how my desktop looked on 5/2/2024:

Everything was going GREAT. Super AWESOME. I was able to get my games to work. The performance was phenomenal. The only real problems were with Discord screensharing being inconsistent. This was due to the Wayland desktop environment being weird and the native Discord client not playing nice with Linux. Honestly, I didn't have any complaints. Any question I had, I could simply Google it. Until.....

Postmortem 5/3/2024 - The NTFS Disaster

I know postmortems typically have timelines, but we're going to forgo that since part of my job is writing postmortem timelines and I didn't get an exact timeline of when everything happened.

When I installed everything, I elected to keep other external drives to be NTFS. NTFS is the file system Windows uses. Linux on the other hand, has like 10 billion different file systems thanks to its open source nature, the most common being EXT4. For some reason, I hated the inconsistency between having two different file systems. I forget if there was slowness or if there were weird behaviors with copying and pasting. So I attempted to rewrite the external drives file systems to use EXT4.

And once I rebooted my PC, it took me to the terminal screen. Uh oh.

Out of panic, I reinstalled my operating system, still keeping the drives NTFS.

I proceeded to Google how to properly redo the drives. And I did it successfully! The problem is, I was naive. Surely, rewriting the file systems wouldn't cause a mass deletion right?

It did.

And guess what I didn't have? Backups.

This, is extremely, extremely embarrassing to admit on a public forum. But I'm hoping it shows that nobody is infallible. In IT, there are a lot of best practices that are preached. They are also extremely easy to ignore. If these practices WEREN'T ignored, I'd be out of a job. Suffice to say, every time I decide to do dramatic to my system, I take backups.

Lessons learned:

  • Take backups and put them somewhere external. I installed Timeshift, which is basically Apple's Time Machine but for Linux.

  • I learned how to mount drives on boot without a graphical interface. The file is /etc/fstab, and it follows a very simple format:

  • /dev/sda1 and /dev/sdb1 are my external hard drives. I first defined their ID, where in the file system they are stored, the type of file system it is, and then other default settings. I used a tool called blkid to get the UUIDs.

Also, I one time made a syntax error in editing that file. My system wouldn't boot again because I forgot to put "UUID=" before the long UUID strings!

Changing My Workflow

I went down a deep rabbit hole of different desktop environments. To put it simply: a desktop environment is what is on your screen. Here's what mine looks like as I'm writing this:

And with 2 windows:

You may notice that the Windows look quite organized and rounded out. What gives?

This is what you call a tiling window manager. A tiling window manager organizes windows automatically to fit the screen. In typical window managers, you drag and resize the windows on your own. With tiling, you use keybinds to create and rearrange windows.

For my setup, I use Hyprland and the hyperdots repository for the configuration. I made a few small changes and uploaded them to my own github, just in case I lose all my data again.

Also, I wanted to learn to "live in the terminal" as they say. I wanted to be able to write code and push it to github without leaving the terminal. To accomplish this, I installed Neovim, the Kickstart project for Neovim, and I learned git:

I even installed a Python language server protocol for Neovim so that I could autocomplete things and catch errors like I'd be able to in VSCode. This has done wonders for my ability to sit down and learn programming. I have this set up for Golang as well.

Postmortem 9/17/2024 - Bad Desktop Installation

I took this picture when my friend asked me to hop on a game. Told him I couldn't play tonight:

I installed an update that I probably shouldn't have installed for my SDDM (Simple Desktop Display Manager) that broke everything. I had to reinstall my entire OS, again.

LUCKILY, I learned my lesson from last time and actually made backups to my homelab! So, restoring everything was no bother.

Why I Won't Go Back

Daily driving Linux has given me complete control over my computer, and with the direction Microsoft and Apple are taking their products, it feels like I'm future proofing my computer and personal privacy.

Some things I am missing out on that don't bother me that hard:

  • I can never use an Adobe product for as long as I have this. Adobe has no plans to support Linux. That's fine for me, especially since I don't do media stuff, but I can see how it's a turnoff for many.

  • Can't play Fortnite, Roblox, or anything Riot Games. Most of my play time with my friends in these would only last a week anyway.

Otherwise, I'm making network configurations, display screen settings, and anything I want to do to my operating system via text files on a terminal. That to me is much, much better than any graphical user interface. Plus, all my games work, especially Rivals of Aether II! :)

I personally don't recommend doing this unless you're able to be patient with technology. Thanks for reading.

0
Subscribe to my newsletter

Read articles from Michael RWX directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Michael RWX
Michael RWX

Always looking for a cyber challenge!