|
|
Line 1: |
Line 1: |
| This article is a couple of years old and I have already moved all of my precious data into the cloud. Because the flying spaghetti monster will save us all. Not.
| | <a href=https://essaywritingservices.us.com/>writing essay services</a> |
| | |
| ...but I am still convinced this may be helpful to you.
| |
| | |
| <blockquote>
| |
| Jesus saves. Buddha does incremental backups.
| |
| </blockquote>
| |
| | |
| In celebration of [http://ask.slashdot.org/story/12/03/31/1543200/ask-slashdot-its-world-backup-day-how-do-you-back-up World Backup Day], I hereby release my backup strategy.
| |
| | |
| == Features ==
| |
| | |
| * daily backup, fully accessible
| |
| * compressed storage
| |
| * block device encryption
| |
| * '''speed'''
| |
| | |
| == Requirements == | |
| | |
| * external harddrive
| |
| * modern linux kernel (use [[Wikipedia:Arch_Linux|Arch Linux]]!)
| |
| * current version of btrfs-progs (I have 0.19.20120110-2)
| |
| * a strong password (you may follow [http://www.thegeekstuff.com/2008/06/the-ultimate-guide-for-creating-strong-passwords/ this] guide or similar)
| |
| | |
| == Daily Routine ==
| |
| | |
| # Wake up
| |
| # Drink tea
| |
| # Go shit
| |
| # Exercise Yoga
| |
| # Eat breakfast
| |
| # '''Backup ALL the files''' (during hygiene)
| |
| # Leave home
| |
| | |
| My external harddrive is totally occupied by a [[Wikipedia:Linux_Unified_Key_Setup|LUKS]] container. After connecting the drive to my laptop, I start like this:
| |
| | |
| cryptsetup luksOpen /dev/sdb backup
| |
| | |
| If not happened yet, format the drive with a [[Wikipedia:Btrfs|btrfs]] filesystem
| |
| | |
| mkfs.btrfs -L backup /dev/mapper/backup
| |
| | |
| Then, mount it and use compression
| |
| | |
| mount -o compress=lzo -t btrfs LABEL=backup /media/backup
| |
| | |
| If not happened yet, create a subvolume
| |
| | |
| btrfs subvolume create /media/backup/nomaster
| |
| | |
| For may backups, I use rsync (with delete) to copy my files to an external hard drive. Vanished files will be deleted.
| |
|
| |
| rsync -aPv --delete --exclude downloads --exclude music --exclude .cache /home/nomaster/ /media/backup/nomaster/
| |
| | |
| After each sync, I make a snapshot of this state of my files.
| |
| | |
| sudo btrfs subvolume snapshot -r /media/backup/nomaster /media/backup/nomaster-$(date +%F)
| |
| | |
| Lastly, I unmount the filesystem and close the container.
| |
| | |
| sudo umount /media
| |
| sudo cryptsetup luksClose backup
| |
| | |
| Then, I disconnect the drive.
| |
| | |
| When my drive will be full at some point in the future, I’m going to remove old snapshots to free space occupied by large files deleted a long time ago.
| |
| | |
| == Initial Setup ==
| |
| | |
| '''I assume the external drive is /dev/sdb. If you have no idea about this, stop right now and come back when you know.'''
| |
| | |
| First, make sure, the external drive is clear to use. So mount it and have a look at the files if present.
| |
| | |
| Overwrite everything with zeroes.
| |
| | |
| sudo dd if=/dev/zero of=/dev/sdb bs=1024
| |
| | |
| Format the drive
| |
| | |
| sudo cryptsetup luksFormat /dev/sdb
| |
| | |
| (follow the instructions)
| |
| | |
| Open the crypto container
| |
| | |
| sudo cryptsetup luksOpen /dev/sdb backup
| |
| | |
| Create a BTRFS file system
| |
| | |
| sudo mkfs.btrfs /dev/mapper/backup
| |
| | |
| Mount it (with compression)
| |
| | |
| sudo mount -o compress /dev/mapper/backup /mnt
| |
| | |
| Create a subvolume
| |
| | |
| sudo btrfs subvolume create /mnt/nomaster # <- insert username here
| |
| | |
| Unmount, close and continue with '''daily routine'''.
| |
| | |
| sudo umount /mnt
| |
| sudo cryptsetup luksClose backup
| |