Create a perfect backup of the LinkStation filesystem
This article Based on work by haberschnasel, nix, and frontalot.
Originally by frontalot.
at Linkstationwiki.org
Contents
Backing up the Linkstation
Very Basic Backup
If you don't want to read the contents of hda1 and simply want to backup and later restore it you don't need to fix_ext2_magic because dd copies low level without interpreting the data. Use the command:
- dd if=/dev/hda1 of=/mnt/whatever/hda1.bin
No compression, saved on the data partition, you can copy it to any other PC later. This command should work even when the system is running and files are locked. If you want to make the image better compressable you could do:
- dd if=/dev/zero of=/fillmeup
and delete this file later on. This has the advantage that unused parts become filled with zeroes which allows better compression.
Be careful what you type ! Specifying the wrong "of" parameter can easily wipe out data you would like to keep
USB or External Hard Drive Backup
As soon as you connect an external memory device to the LinkStation it get's mounted as /mnt/usbdisk1 or /mnt/usbdisk2. You could now copy the image you created above to the device:
- cp /mnt/whatever/hda1.bin /mnt/usbdisk1
In case you use a quite small usb stick you can compress the data using:
- gzip -9 /mnt/whatever/hda1.bin
This commands shrinks the image of my system partition to 95MB which easily fit's on a 128MB usb stick. If you gzip you have to add a ".gz" to the copy command above.
Do:
- umount /mnt/usbdisk1
after you are finished.
The LinkStation comes with a simple backup system for performing regular backups of the data in the shared directories to an USB disk. To configure it use the LS web interface. Goto Maintenance -> Disk Backup and configure the backup as you desire.
The LS' own backup system is rather slow, so you might want to consider the following methods.
You want a true incremental backup, i.e. after one full backup only daily changes shall be transferred to the LS? Install @@rsync@@ and use it in the LS backup script:
- Binary for the PPC LS see this forum thread
- Binary for the MIPS LS see this forum thread
- Replace the existing file /www/cgi-bin/do-backup.pl with the modified script posted by weikai on this forum thread
You want an incremental backup with history, i.e. keep replaced and deleted files? For information on these more advanced @@rsync@@ uses (like creating snapshots using hard links and @@cron@@) read rsync snapshots
Unix-style Backup
You find @@rsync@@ not suitable or risky? Install @@cpio@@. Write / setup a cron job. In this job use @@find@@ to identify files which need to be backed up. E.g., for an incremental backup search for all files newer than the last backup. Pipe the output of @@find@@ through @@cpio@@. Let @@cpio@@ write its output to an external USB disk or some other mounted network partition on a physically separate device.
Use a backup rotation schema like GFS (grandfather-father-son). Store backups off-site.