These are my notes while testing.
Ubuntu LTS 10.04 doesn't support removing btrfs snapshots. It can be fixed by installing newer btrfs.
cd /tmp
wget "http://se.archive.ubuntu.com/ubuntu/pool/main/b/btrfs-tools/btrfs-tools_0.19+20100601-3ubuntu3_i386.deb"
dpkg -i btrfs-tools_0.19+20100601-3ubuntu3_i386.deb
Creating the master git repository (on a flash drive):
mkdir -p /flash/disk0
cd /flash/disk0
git init
echo 'This is a test file.' > test.txt
git add test.txt
git commit -a -m 'Added initial test data.'
Initialising tmpfs:
mkdir /ramdisks
mount -t tmpfs tmpfs /ramdisks
mkdir /ramdisks/raw /ramdisks/mnt
Creating images on ramdisk:
dd if=/dev/zero of=/ramdisks/raw/disk0 bs=1M count=256
Initializing btrfs image: mkfs.btrfs /ramdisks/raw/disk0
Mounting btrfs image:
mount -o loop /ramdisks/raw/disk0 /ramdisks/mnt/disk0
Cloning flash to the ramdisk:
git clone /flash/disk0 /ramdisks/mnt/disk0/data
Creating snapshot:
btrfsctl -s /ramdisks/mnt/disk0/snapshot/disk0-20120124-2149 /ramdisks/mnt/disk0/data
Removing snapshot:
cd /ramdisks/mnt/disk0/snapshot && btrfsctl -D disk0-20120124-2149 . && cd -
For some strange reason these do not work:
# btrfsctl -D disk0-20120124-2149 /ramdisks/mnt/disk0/data
ioctl:: No such file or directory
# btrfsctl -D /ramdisks/mnt/disk0/snapshot/disk0-20120124-2149 /ramdisks/mnt/disk0/data
ioctl:: Invalid argument