Skip to content

Instantly share code, notes, and snippets.

@thejhh
Created January 24, 2012 20:42
Show Gist options
  • Save thejhh/1672448 to your computer and use it in GitHub Desktop.
Save thejhh/1672448 to your computer and use it in GitHub Desktop.
Testing btrfs snapshots and git on ramdisk (tmpfs)

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 this doesn't work:

# btrfsctl -D /ramdisks/mnt/disk0/snapshot/disk0-20120124-2149 /ramdisks/mnt/disk0/snapshot
ioctl:: Invalid argument

...or any of these -- although these are probably wrong anyway:

# 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
# btrfsctl -D disk0-20120124-2149 /ramdisks/mnt/disk0/snapshot
ioctl:: No such file or directory
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment