So I am using Hefftor Linux (a boutique spin of ArcoLinux) with bspwm. I decided to install on BTRFS so I can get the benefits of snapshots and CoW and the like. Got the install completed and it runs. I installed grub-btrfs and and snapper but I am at a loss what to do next. I checked the subvolume list and @ (root) and @home were created. How do I add @snapshots and set up the system to automatically take snapshots and modify grub so I can rollback to the snapshot if needed?
Easiest way is to simply install Timeshift and maybe also timeshift-autosnap (AUR (en) - timeshift-autosnap) which basically works like zsys and creates automatic snapshots before any pacman operation (you have options how many to keep).
Alternatively, you need to mount the top level root into a directory e.g. /mnt
ˋˋˋ
mount -o subvolid=5 /dev/yourbtrfspartition /mnt
ls /mnt
create btrfs subvolume /mnt/@snapshot
ls /mnt
ˋˋˋ
Then you can set up Snapper or btrbk to take snapshots for you or do it manually. Again I. Would simply use Timeshift as it automatically deletes snapshots as well and sets also everything up in /run/timeshift/backup/ for easy access.
grub-btrfs creates grub boot entries of all your snapshots independent of the way they are taken.
I have some references on my HomePage for btrfs which might be useful for you (Installation guides | Willi Mutschler)
timeshift-autosnap
did the trick! Thanks! I expect that the first snapshot will be a bit time consuming and future ones are just deltas?
For some reason it is working in rsync
mode not btrfs
mode.
If you use btrfs mode in Timeshift then snapshots are instant due to copy on write.
If you use rsync mode then the first one will take long of course.
Open timeshift and change to btrfs mode in the settings.
I just did that and manually kicked off a snapshot but is 0 bytes in size. Is that normal?
Yes that is the beauty of btrfs or zfs, it takes a snapshot of your current system. Once you start changing files, adding or removing stuff this snapshot increases in size. But note that now you can always return to this point in time.
https://forum.manjaro.org/t/btrfs-tips-and-tricks/71186/6
I found this thread and particularly the comments by tomz very useful in understanding btrfs
Question:
How do I limit the number of snapshots kept by timeshift-autosnap
? Considering how many times Arch based distros update I don’t want to consume my drive with snapshots.
By default it keeps only the last 3 snapshots created by timeshift-autosnap (it does not care about the other snapshots you took with e.g. timeshift schedule) . There is a configuration file /etc/timeshift-autosnap.conf where you can change this setting.
As you are on Arch, have a look at the following thread for more information
So my work on this has inspired me to try it out on my main workstation. Here the drive situation is more complex. I would like to use btrfs
for all of it but since RAID56 is still broken, those bits will stay as they are.
I have two nVMe drives: one for / and the other for /home. The first drive isn’t a problem, it’s mounting the home drive as a subvolume. Or am I barking up the wrong tree? the btrfs
wiki’s section on multiple drives mostly talks about RAID0/1/01/10 and the dire warnings about RAID56. I am not sure how to proceed.
For the record my existing RAID arrays: one internal (LVM RAID5 + Cache Drive +XFS) and one external (HW RAID5 + ext4) will remain untouched.
Your guidance is sought and highly appreciated.
Turns out it was simpler than I expected. After having made two backup copies of my /home folder, the install proceeded thusly:
- Boot off installer USB key.
- Once booted, launch
gparted
. - Create new
gpt
partition table on root drive. - Create efi, root, and swap partitions.
- Format efi as fat32 and root as btrfs.
- Set flags to
esp
andboot
on efi partition. - Switch to second drive.
- Create new ‘gpt’ partition table on home drive.
- Create a single partition and format it btrfs.
- Exit gparted.
- Start
calamares
. - Proceed with install as normal until you get to drives section.
- Choose
manual partitioning
. - Set the efi partition to mount on /boot/efi/. Do not format.
- Set the root partition to mount on /. Do not format.
- Set the single partition on the second drive to mount on /home.
- Finish the install.
- After booting into the system, run an update then install the following
timeshift
,timeshift-autosnap
,snapper
, andgrub-btrfs
. - Reboot the system. Open
timeshift
and set the target tobtrfs
.timeshift
will create an appropriate target. Disable any automatic backups. - Now, when you do a system update,
timeshift-autosnap
will take a snapshot of your system before applying updates. The backups are visible inside oftimeshift
or on the grub menu.