Skip to content

Instantly share code, notes, and snippets.

@arvati
Last active September 13, 2023 22:26
Show Gist options
  • Save arvati/d7d456d4d4e8d55bf5d9e3294d3e0b70 to your computer and use it in GitHub Desktop.
Save arvati/d7d456d4d4e8d55bf5d9e3294d3e0b70 to your computer and use it in GitHub Desktop.
copy btrfs filesystem from one disk to another smaller one
sudo mount -t btrfs -o subvolid=0 /dev/sde /mnt/disk
sudo btrfs subvolume list -qu --sort ogen /mnt/disk
ID 257 gen 69317 top level 5 parent_uuid - uuid 5c2a18a4-3b47-f64e-afa9-34e75535a728 path rootfs
ID 339 gen 61638 top level 5 parent_uuid 5c2a18a4-3b47-f64e-afa9-34e75535a728 uuid 64cc0383-d122-a24f-a2c3-6f58839b52db path snap-rootfs-buster
sudo btrfs property set -ts /mnt/disk/rootfs ro true
sudo mount -t btrfs -o subvolid=0 /dev/sdb /mnt/usb
sudo btrfs send /mnt/disk/rootfs | sudo btrfs receive /mnt/usb/
sudo btrfs send -p /mnt/disk/rootfs/ -c /mnt/disk/rootfs/ /mnt/disk/snap-rootfs-buster/ | sudo btrfs receive /mnt/usb/
sudo btrfs property set -ts /mnt/disk/rootfs ro false; sudo btrfs property set -ts /mnt/usb/rootfs ro false
sudo btrfs subvolume get-default /mnt/disk/
ID 257 gen 69317 top level 5 path rootfs
sudo btrfs subvolume list /mnt/disk/ -a -p -t
ID gen parent top level path
-- --- ------ --------- ----
257 69317 5 5 rootfs
339 61638 5 5 snap-rootfs-buster
sudo btrfs subvolume get-default /mnt/usb/
sudo btrfs subvolume list /mnt/usb/ -a -p -t
ID gen parent top level path
-- --- ------ --------- ----
299 162 5 5 rootfs
356 163 5 5 snap-rootfs-buster
sudo btrfs subvolume set-default 299 /mnt/usb
#more info at:
#https://superuser.com/questions/607363/how-to-copy-a-btrfs-filesystem
#https://github.com/mwilck/btrfs-clone
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment