this post was submitted on 11 Nov 2023
855 points (85.2% liked)

linuxmemes

20880 readers
2 users here now

I use Arch btw


Sister communities:

Community rules

  1. Follow the site-wide rules and code of conduct
  2. Be civil
  3. Post Linux-related content
  4. No recent reposts

Please report posts and comments that break these rules!

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 14 points 1 year ago (1 children)

When I started using Arch I just set it up on a btrfs filesystem and wrote a simple btrbk hook to take a snapshot before any package updates. That made it trivial to unfuck anything that broke after an update. I can't remember the last time I had to roll the system back but it's nice for peace of mind.

[–] [email protected] 3 points 1 year ago (2 children)

That’s quite clever, are there any guides for getting that set up? I’m using btrfs but haven’t gotten into snapshotting yet.

[–] [email protected] 10 points 1 year ago* (last edited 1 year ago)

Start by playing with subvolumes and snapshots so you can get a feel for how they work. Once you've got that down you can break down your root filesystem into sensible subvolume chunks (/, /home, /var/log, /var/cache etc) so that you only snapshot relevant content during each update. I wrote a btrbk config at that point, tested it a few times and then wrote a pacman hook to fire it on install, update or package remove events and went from there.

Here's what I use to take snapshots - you'll need to write an appropriate btrbk config file for your subvolume layout but it's otherwise feature complete. https://gitlab.com/arglebargle-arch/btrbk-autosnap

Like I mentioned above, I haven't actually needed to roll the system back in ages but I get a lot of mileage out of being able to reach back in time and grab old versions of files for comparison.

Time shift is a lot easier if you're just starting out but it also requires a specific subvolume structure and isn't very flexible.

Edit: pro tip: don't make /var a separate subvolume from /, it's way, way, way too easy to roll one or the other (/ or /var) back without the other. If you do that by accident pacman's state becomes out of sync with the running system and everything breaks. Stick to splitting frequently rewritten data like /var/cache and /var/log off, leave /var itself in the root subvolume.

[–] [email protected] 5 points 1 year ago

Timeshift, Timeshift auto-snap, and btrfs in the grub menu to have your snapshots there, too. Auto-snap takes a snapshot automatically whenever you upgrade or install some packages.