In the midst of attempting to get Plex working again, I discovered that apparently 60GB of space was not adequate for the system to do what it needed to do. I had installed debian 10 a few months back after running on debian 9 for a few years. At the time, I had reasoned to leave the debian 9 install alone as well as continue to leave an old install of Windows 8.1 installed (For photoshop/illustrator/traktor), plus an even older Gentoo install. My thoughts were in case I ever had to boot up into Windows for design work or if I hadn’t backed up absolutely everything in the other envs, they’d still be there. Hi, my name is tj0 and I’m a data horder.

I decided that today would be a great day to go ahead and deal with this issue. Saying goodbye to windows, gentoo, and debian 9, and setting up debian 10 again, just with way more space. I figured I would document this process so that maybe someone else will be able to reference this for establishing their own environment.

kill it with fire

I’m running on the assumption you have a bootable USB ready. If not, download the latest ISO and run:

dd if=/home/tj0/debian.iso of=/dev/usb

Replace /home/tj0/debian.iso with the path to your downloaded ISO and /dev/usb with the path to your USB drive. I’m not covering this in depth as I assume you know what you’re doing.

Next, reboot your system and make sure your BIOS is set to boot from USB. Again, I’m assuming you know your own environment well enough to handle this yourself. I chose to use the graphical installer, for expedience. In my case, I selected the option to use the entire disk with separate /home, /tmp, and /var partitions with an encrypted LVM. This way the drive will be encrypted at rest, just in case anything warrants that necessity. Security is important, mkay.

Go grab a beer and find something to do, it’s going to take a while as the installer will overwrite the disk with junk, and a 1TB disk is going to take a while to get through this. In my case, I have a secondary system so I hopped on IRC and cracked open VS Code to write this. YMMV. Anticipate it taking a while, either way.

re-establishing your comfort zone

Ah, my least favorite part of all of this. Doing a fresh install is awesome because it provides you a green field to do whatever you want. But, when you’ve been doing development and security type work for long enough, you know what you like. In my case (like many others) I set up a public git repo with all my dotfiles so that at least it’s not a completely devastating process to get back to that sweet place of comfort.

This round I’m debating going with fluxbox again. I was running xfce, but it doesn’t offer the elegance and simplicity of a super lightweight window manager. While this is still up in the air, I’m also split on using i3, as it seems all the cool kids are using it now. I’m also a fan of tiling WM’s, although I haven’t used a true tiling WM in some time. The end goal is to have a fluid UX when switching between my work system (Mac) and my home system. While the terminal is the same (zsh ftw), it’s important that much of the behavior is the same. This reduces cognitive load and frustration when hacking at home vs at work. The biggest thing of all: it has to just work. I’m far past the age and time allowance where I can continuously tweak shit and fix breakages between updates (coughGentoo :(cough). I need this environment to behave as I expect, not be easily broken, and just work. Patience in this regard is thin.

As a general package list of what I require:

One of my plans this round is to actually optimize my kernel for this environment. By default debian configures a very generalized kernel. While this doesn’t impact usability, as only modules are loaded as they are needed, it does lead to a bunch of extra cruft on your system that’s not needed. I haven’t noticed any significant performance impacts, but this round I want to make this system as stable as possible going forward. I’d also like to use the nvidia chip my system has versus the discrete intel graphics – this has historically been a real pain to get functioning properly as my board is an optimus-capable board and with the changing monitor configurations I have, shit gets complicated fast. In addition, it’d be nice to be able to use the CUDA functionality as I do a lot of CTF’s, and cracking with jtr could probably be a hell of a lot faster. It would also be nice to be able to use hashcat and similar, which require a dedicated GPU instead. I have no need for wine or any type of windows emulation; if I need to tread into that trash env I’ll spin up a VM.