plan for migrating pc to desktop linux
why?
windows is a labyrinth of horrors, an ancient monument the local residents scaffolded off of into increasingly precarious ledges, a testament to the aesthetic of the early 2000s corporate office and the disregard for human intuition therein.
a non-exhaustive list of things about windows that give me the ick
my pc used to primarily be a gaming machine, but it’s transitioned into mainly filling the role of a server, and windows is not cutting it. even if gaming were the main use, support for games on linux is better than it’s ever been and windows was already getting on my nerves before i got into self-hosting.
my hope is that a linux server will reduce friction and frustration, opening up a bunch of opportunities for automation and self hosting, plus making maintenance and updating more straightforward. on top of that, i’d be able to have a much smoother time developing on mac and deploying on the server bc unix.
process
it’s appealing to wipe the system and install a distro in one go, but i depend on the server for a lot and can’t afford it being down for days while i troubleshoot
a better route would be to design the system in a vm and test all the services there, before actually booting to it
- create vm
- test distros and compare
- learn how to create, store, and reproduce configs (nix?)
- identify all services and features that need migrated
- demonstrate each in the VM
- use a laptop to run the essentials of server before taking main down, make sure it’s stable before continuing
- install everything on main
- allow for a few days of troubleshooting
picking a distro
i found this genealogy of linux distros infographic which is cool
these are my impressions at this point based on vibes from bloggers and posters and such. not necessarily accurate since i don’t have experience with any linux distros outside of docker containers and a little vm experimenting.
distro | easy to setup | stable | rolling release | learning | low bloat | weird |
---|---|---|---|---|---|---|
ubuntu | ✅ | ✅ | ||||
debian | ✅ | ✅ | with ‘unstable’ | ✅ | ||
arch | ✅ | ✅ | ✅ | |||
endeavour | ✅ | / | ✅ | ✅ | ✅ | |
nixos | ✅ | ✅ | ✅ | ✅ |
resources of interest
interoperability with macos
ideally i’d like to share as much configuration with my macbook as possible
by ‘interoperable’ i’m meaning, i can replicate the configuration on either linux or mac with the same seed files and the same number of commands
planning to look into nix some more
Nix Darwin Turned My Mac into a Fully Automated Machine - YouTube
Nix is my favorite package manager to use on macOS - YouTube
things that definitely are interoperable:
- shell config
- language support
- (python, node, go, rust)
- some packages and cli tools
- tie ins to self hosted services
- vaultwarden, radicale, etc
- wireguard || tailscale vpn tunnel
- coding environment, vsc, nvim
- various files in ~/.config
probably/mostly interoperable:
- some basic appearance customization
- wallpaper
- accent color
- keyboard shortcuts
- some cross platform apps
- cron jobs
- local LLMs
is there anyone who daily drives both mac and linux with a solution to the command vs control modifier war ?investigate
unlikely to be interoperable
- specific system settings
- native apps via app store or .dmg
- plists
- app data already tucked away in ~/Library
definitely not interoperable
- binaries of my own code laying around in /usr/local & ~/.local
- icloud, imessage, other apple stuff
- google drive
- graphics/gaming support
endeavor VM attempt 2024-12-17
Manual Partition EFI question - General system / EndeavourOS installation - EndeavourOS
When using manual partitioning and you are creating an efi partition it has to be fat 32 and you have to flag it as /boot/efi and also select to flag as /boot in the Window below
Partition 1: /boot/efi Usually it is recommended for a size of 512 mib to be used
the VM is up and running
name | flag | size | FS | encrypt | mount | notes |
---|---|---|---|---|---|---|
boot | boot | 512 MB | fat32 | no | /boot | stores bootloaders |
root | root | 20 GB | ext4 | LUKS | / | OS files |
home | remainder | ext4 | LUKS | /home | User files |