Hello, I’ve been a long time Linux user but I had a 5 years break and I am coming back to it now.
I’ve been trying several Linux distributions in the past week, installing the packages and configuring them as I need with several different orders of success.
My last case was an Ubuntu installation that I was very happy with and pretty close to call it setup and done, until I installed virtualbox and restarted the system only to find it bricked.
Obviously I could try to drop into one of the terminals on ctrl + alt + Fx and fix it, but I wonder if I could be smarter about it and be more prepared for this kind of situation.
One of the starting points I think would be having a separate home partition from the rest of the system. I used to have it in the past and it was great.
But then what’s next? What are the best FS I could pick for each type of partition? A performant one to keep the code and package manager cache, a journaling/snapshop based one for system, another type for game data, etc etc.
What if I would like to have a snapshot of working version of my system backed up somewhere ready to restore as simple as simple as possible?
How do you configure your systems in order to quickly recover from an unexpected bricking without growing some more white hairs, and squeezing as much performance vs feature for each of your use case?
On servers I like to have /var on its own partition. Partially as a habit from the olden days of using FreeBSD in the 90’s, but also because that means that / will mostly be left with things that don’t really change. I’ve had to clean out clogged up / too many times. So in effect, my partion schema for a typical production server looks like this:
/ ext4
/local xfs
/global usually beegfs or nfs, but sometimes a local xfs.
/var ext4
/home ext4
I just have a different partition for /home. For snapshots, you could set a partition up as btrfs and use btrfs snapshots
Well having a dedicated /home
partition is the very minimum and pretty much default.
If you are interested in having a backup/restore solution for your system you are looking for BTRFS
which uses sub volumes instead of primary partitions and is compatible with snapshot tools, those tools being Timeshift and Snapper.
I do think Snapper is the superior solution however it’s also more complex to set up and requires significantly more prep work. Imo totally worth it.
I currently use it on my main machine Debian with BTRFS and Snapper and couldn’t be happier.
I installed (well, compiled) Btrfs Assistant, it integrates with snapper and btrfs maintenance, I had to create cron jobs for monthly/daily by hand, but the GUI is pretty nice.
This came pre installed and setup on my Garuda Linux install and it’s great. By default it takes a snapshot before and after every update or installation through the package manager so if something goes wonky I can just select the previous snapshot in grub and be back up and running in seconds.
Also just recently installed bazzite on a laptop and it appears to automatically do something similar, but I haven’t spent as much time with it to know the ins and outs yet.
That’s not the question that needs to be answered, first you must allocate enough space for you system
partition, and whatever other system related partitions that you want to use, var
, temp
, swap
, you get the gist, then whatever space you have left is your home
partition. This scenario being a default personal use desktop ofc.
If this is going to be a BTRFS system then it also doesn’t matter since sub volumes share the total space available dynamically.
Also if this is a modern hardware consider not having a swap partition and instead use ZRAM.
Partitioning doesn’t affect backups. Any modern system supports both full images and file-level backups, so even if you take a whole disk image, you can just restore /home if that’s what you want.
I would just use whatever filesystem is the default for your distro. For the root partition, usually that’s ext4. That’s a perfectly good default.