Skip to content

Instantly share code, notes, and snippets.

@naota
Created October 2, 2014 00:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save naota/929bf442efbecee5df7b to your computer and use it in GitHub Desktop.
Save naota/929bf442efbecee5df7b to your computer and use it in GitHub Desktop.
#!/bin/bash
set -e
BACKUPROOT=/mnt/gentoo
export PATH=${BACKUPROOT}/btrfs-progs:$PATH
# init fs layout
if [ -z "${NOINIT}" ]; then
mkfs.btrfs -O skinny-metadata -d raid1 -m raid1 /dev/sda3 /dev/sdb2 /dev/sdc1 /dev/sde1
mkdir -p ${BACKUPROOT}/rootfs/mnt/btrfs
mount -o noatime,compress=lzo,autodefrag,space_cache,inode_cache /dev/sda3 ${BACKUPROOT}/rootfs/mnt/btrfs
cd ${BACKUPROOT}/rootfs/mnt/btrfs
btrfs su c home
mkdir usr
btrfs su c usr/portage
mkdir var
btrfs su c var/tmp
mkdir btrfs
else
mount -o noatime,compress=lzo,autodefrag,space_cache,inode_cache /dev/sda3 ${BACKUPROOT}/rootfs/mnt/btrfs
fi
# mount fs
# mount -o noatime,compress=lzo,autodefrag,space_cache,inode_cache /dev/sda3 ${BACKUPROOT}/rootfs/mnt/btrfs
# mount -o noatime,compress=lzo,autodefrag,space_cache,inode_cache /dev/sda3 ${BACKUPROOT}/rootfs/mnt/btrfs/btrfs
cd ${BACKUPROOT}/rootfs
mount --rbind /dev dev
mount -t proc proc proc
mount -t sysfs sysfs sys
mount --rbind /mnt/gentoo var/backup
cat <<EOM > restore.sh
#!/bin/bash
bacula-dir
bacula-fd
bacula-sd
bash
killall bacula-dir
killall bacula-fd
killall bacula-sd
EOM
chroot . /bin/bash restore.sh
umount ${BACKUPROOT}/rootfs/mnt/btrfs
umount -l dev
umount proc
umount sys
umount -l var/backup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment