Seed-device
From btrfs Wiki
Seed-device use example
The original filesystem and devices are included as a readonly starting point to the new FS. All modifications go onto different devices and the COW machinery makes sure the original is unchanged.
# dd if=/dev/zero of=/mnt/gentoo/btrfs-test-1 count=2 bs=1G # dd if=/dev/zero of=/mnt/gentoo/btrfs-test-2 count=2 bs=1G
# losetup /dev/loop0 /mnt/gentoo/btrfs-test-1 # losetup /dev/loop1 /mnt/gentoo/btrfs-test-2
# mkfs.btrfs /dev/loop0
# mount /dev/loop0 /mnt/test/ # echo a > /mnt/test/a # echo b > /mnt/test/b
# umount /mnt/test # btrfstune -S 1 /dev/loop0
# mount /dev/loop0 /mnt/test mount: block device /dev/loop0 is write-protected, mounting read-only # btrfs device add /dev/loop1 /mnt/test # ls /mnt/test a b # echo c > /mnt/test/c bash: c: Read-only file system
# mount -o remount,rw /mnt/test OR # umount /mnt/test # mount /dev/loop1 /mnt/test
# echo c > /mnt/test/c # echo d > /mnt/test/d # umount /mnt/test
# mount /dev/loop0 /mnt/test mount: block device /dev/loop0 is write-protected, mounting read-only # ls /mnt/test a b # umount /mnt/test # mount /dev/loop1 /mnt/test # ls /mnt/test a b c d # cat /mnt/test/c c