Timeshift works only with BTRFS subvolumes, thus, if you wanna have backups (snapshots), you have to have subvolumes and not install in the root of a BTRFS filesystem 😔.
That’s only to backup/rollback the root though, right? If one’s looking to backup - say - their home dir, they can just recreate the home as a subvolume without reinstalling the system. Or am I mistaken?
If you want to you can just create a new subvolume, mount it temporarily and move all your files from root to there. Then you need to figure out how to make the new subvolume your root directory upon boot and you are done.
I know how to do that, you set the subvolume as the default one, thus, when mounting, if no options are passed, it always mounts that subvolume as root.
But, you have to disable that. Sure, I set it during install, cuz installers are stupid (if you tell it to install in /@, it will most probably moan), but disable it after first run (set the real root as the default subvol, i.e. mount point) and just add subvol mount options in fstab.
It’s just extra steps I have to do now 😒, that’s why the rant.
Snapper also uses btrfs subvolumes to create snapshots, so if you did create them during your installation process, nothing to worry about.
I don’t remember if there is a way to create them after the installation, neither if it’s a tough process tho. I used to simply reinstall when I messed up with the subvolumes.
Yeah, but Timeshift uses the Ubuntu style subvolume naming, @ for root, @home for /home, so you have to create them that way, otherwise, it won’t work. It can work if you tell it to ignore home, but checks for @ as root on start up.
Ok, I don’t get it. Can you explain it to me?
Timeshift works only with BTRFS subvolumes, thus, if you wanna have backups (snapshots), you have to have subvolumes and not install in the root of a BTRFS filesystem 😔.
That’s only to backup/rollback the root though, right? If one’s looking to backup - say - their home dir, they can just recreate the home as a subvolume without reinstalling the system. Or am I mistaken?
You can definitely do this with a few commands.
https://github.com/raldone01/config_fish/blob/main/tdcff_functions/btrfs_folder_to_subvol.fish
Because I often forget to do it I wrote a little helper script.
This file can be run or sourced and only depends on btrfs-progs and fish.
Awww man, thanks ☺️.
Good thing I love fiish, it’s my default shell 😉.
Yes, you can just set it to mount a, let’s say @home, subvolume to /home and that’s that, done.
If you want to you can just create a new subvolume, mount it temporarily and move all your files from root to there. Then you need to figure out how to make the new subvolume your root directory upon boot and you are done.
I know how to do that, you set the subvolume as the default one, thus, when mounting, if no options are passed, it always mounts that subvolume as root.
But, you have to disable that. Sure, I set it during install, cuz installers are stupid (if you tell it to install in /@, it will most probably moan), but disable it after first run (set the real root as the default subvol, i.e. mount point) and just add subvol mount options in fstab.
It’s just extra steps I have to do now 😒, that’s why the rant.
Thank you for sharing your knowledge.
Immutable distros rejoice 😎
Take way too much space… I dual boot on the same drive 🤷.
Oh okey so if I have Snapper already, nothing I need to worry about?
Snapper also uses btrfs subvolumes to create snapshots, so if you did create them during your installation process, nothing to worry about.
I don’t remember if there is a way to create them after the installation, neither if it’s a tough process tho. I used to simply reinstall when I messed up with the subvolumes.
sudo btrfs subvolumes create /path/to/subvolume
If you don’t configure anything, root will already be a subvolume.
If you wanna make a used directory a subvolume, you have to move the contents first, and move them back after creation.
The only thing that takes time here is the move
Yeah, but Timeshift uses the Ubuntu style subvolume naming, @ for root, @home for /home, so you have to create them that way, otherwise, it won’t work. It can work if you tell it to ignore home, but checks for @ as root on start up.
Wasn’t aware of that, using snapper for my snapshotting needs.
I haven’t tried it. Does it have like daily, weekly, monthly snapshots setup?
You can have hourly, daily, weekly, monthly and yearly. I also use snap-pac to make snapshots before and after pacman transactions.
Check out https://wiki.archlinux.org/title/Snapper
Check out Btrfs Assistant. It does what Timeshift does with a similar UI but works with any subvolume layout.
Hm, will check it out, thanks for the suggestion 😉.