Skip to content

Instantly share code, notes, and snippets.

@arvati
Last active October 22, 2023 11:53
Show Gist options
  • Select an option

  • Save arvati/57d6015b6b036d016cc680094f12ec33 to your computer and use it in GitHub Desktop.

Select an option

Save arvati/57d6015b6b036d016cc680094f12ec33 to your computer and use it in GitHub Desktop.
Create and Manage Btrfs Snapshots

Create and Manage Btrfs Snapshots

Mount root subvolume

mount -t btrfs -o subvolid=5,noatime,nodiratime,noacl,nossd 'UUID=68706ead-a626-4209-b3d0-1187b835f803' /mnt/btrfs

List BTRFS subvolumes

btrfs subvolume list -t --sort=path /mnt/btrfs
ID      gen     top level       path
--      ---     ---------       ----
3637    212647  5               containers
8870    187149  3637            containers/alpine-nodejs/rootfs
8578    188944  3637            containers/build/rootfs
8858    212455  3637            containers/google/rootfs
11829   206650  3637            containers/jupyter/rootfs
8575    184082  3637            containers/pocketmine/rootfs
12021   220962  3637            containers/vcs/rootfs
8886    188953  3637            containers/vscode/rootfs
260     220814  5               data
1455    184009  260             data/debian
12022   220958  260             data/git
1443    220961  260             data/home
1447    220933  260             data/media/Backups
1448    211218  260             data/media/Documents
1449    213248  260             data/media/Movies
1450    201659  260             data/media/Music
1451    213247  260             data/media/Pictures
1452    212427  260             data/media/Server
1453    220653  260             data/media/Users
1454    213295  260             data/media/xxx
1444    180481  260             data/mysql
1445    220954  260             data/svn
1446    183953  260             data/www
1457    180788  5               overlay
1456    188580  5               rootfs
1460    213802  5               snaps
12451   213802  1460            snaps/Users

Create new snapshot

btrfs subvolume snapshot -r /mnt/btrfs/data/media/Users /mnt/btrfs/snaps/Users-new
btrfs subvolume snapshot -r /mnt/btrfs/data/git /mnt/btrfs/snaps/git-new
btrfs subvolume snapshot -r /mnt/btrfs/data/svn /mnt/btrfs/snaps/svn-new
btrfs subvolume snapshot -r /mnt/btrfs/data/home /mnt/btrfs/snaps/home-new
btrfs subvolume snapshot -r /mnt/btrfs/data/media/Pictures /mnt/btrfs/snaps/Pictures-new
btrfs subvolume snapshot -r /mnt/btrfs/data/media/Movies /mnt/btrfs/snaps/Movies-new
btrfs subvolume snapshot -r /mnt/btrfs/data/media/Music /mnt/btrfs/snaps/Music-new
btrfs subvolume snapshot -r /mnt/btrfs/data/media/Documents /mnt/btrfs/snaps/Documents-new
btrfs subvolume snapshot -r /mnt/btrfs/data/media/Server /mnt/btrfs/snaps/Server-new
btrfs subvolume snapshot -r /mnt/btrfs/data/media/Backups /mnt/btrfs/snaps/Backups-new
btrfs subvolume snapshot -r /mnt/btrfs/data/mysql /mnt/btrfs/snaps/mysql-new
btrfs subvolume snapshot -r /mnt/btrfs/data/www /mnt/btrfs/snaps/www-new
sync

Just delete old backups

btrfs subvolume delete -vc /mnt/btrfs/snaps/Users
mv /mnt/btrfs/snaps/Users-new /mnt/btrfs/snaps/Users
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment