个人工具

UbuntuHelp:BackupYourSystem

来自Ubuntu中文

Wikibot讨论 | 贡献2008年10月19日 (日) 14:21的版本

跳转至: 导航, 搜索


<<Include(Tag/NeedsExpansion)>> Backing up your system important, since you never know when your hard drive will die or some other disaster will strike. Several backup methods are listed below.

Archival backup

From the Desktop

If you go to Applications > Add/Remove, and search for 'backup' there are multiple items available.

Using Simple Backup Suite

Simple Backup Suite is a program that was created during the Google Summer of Code 2005. Using a familiar GNOME interface, you can specify how often it backs up, the destination, what to exclude and what to back up. Simple Backup Suite also makes incremental backups, after creating the initial backup, only the files that have changed are backed up. For more information see: BackupYourSystem/SimpleBackupSuite

Duplicity

DuplicityBackupHowto

BackupPC

UbuntuHelp:BackupPC

From the command line

Using the TAR command

Suitable for backing up your home directory. Open a terminal and enter the command:

tar cvfz output input

The compressed image created can be broken into smaller chunks for copying to removable media using the split command. More information can be found here: UbuntuHelp:BackupYourSystem/TAR

Creating disc images using dd

Suitable for backing up entire disks. Open a terminal (in the examples you will need to replace hda with the partition you wish to backup). Create a hard disk image:

dd if=/dev/hda1 of=/home/hda1.bin

Create a compressed disk image

dd if=/dev/hda1 | gzip > /home/hda1.bin.gz

Back up the MBR

dd if=/dev/hda of=/home/hda.boot.mbr bs=512 count=1

Restore MBR (from a Live CD)

dd if=/mnt/hda1/home/hda.boot.mbr of=/dev/hda bs=512 count=1

Backup a drive to another drive

dd if=/dev/hda of=/dev/hdb conv=noerror,sync bs=4k

The command:

dd -if /dev/hda1 > partitionimage.dd

will backup "/dev/hda1", the first partition on hda1. A whole drive (including the MBR) could be backed up using just /dev/hda as the input "file". Restoring is done by:

dd -if partitionimage.dd -of /dev/hda1

If you have a complete new harddrive and want to restore the backup (or copy your old system to the new drive). First, the new drive has to be bigger or exactly the same size as the old one. First go superuser and switch to runlevel 1 so that you can fumble around with the harddisk without other services interfering:

sudo su
init 1

restore either the whole disk to the new drive or one partition (depending on how you made the backup):

dd -if partitionimage.dd -of /dev/hda1

If you restored the whole drive (/dev/hda), the system will not automatically create the devices (/dev/hda1, /dev/hda2) if you just restored the whole drive. If you know how to make the devices show up without reboot, write it here, otherwise this is a good moment to reboot. If you restored the system to a new drive, and your device names changed (for example from /dev/hda to /dev/sda) then you must adapt the bootloader and the mount points. While still on runlevel 1, edit these files:

/boot/grub/menu.list
/etc/fstab

Update your drive mappings to the new devices there. Grub may be setup with numberish IDs for your drives, then you need the command blkid to read the new identifiers of your disk. After your system is able to boot and runs again, you can resize your partitions to fill the rest of the new harddisk (if you want that) as described here:

You can use the "loopback device" to mount this partition image, making it easy to read the old version of files and still keep your current version untouched. Mounting disks with Linux's loopback device by Jason Boxman

Incremental Backup

rsync

Rsync updates the copies the files that have changed and even then only transfers the parts of those files that have changed. That is useful for saving bandwidth when backing up over the network. For safety, transfer between two machines is done via SSH. Rsync is especially good for backing up home directories. The command for transferring to a remote machine is:

sudo rsync --delete -azvv -e ssh /home [email protected]:./backupdirectory

-z compresses the data --delete deletes files that don't exist on the system being backed up. Maybe you want this, maybe not. -a preserves the date and times of the files (same as -t), descends recursively into all directories (same as -r), copies symlinks as symlinks (same as -l), preserves file permissions (same as -p), preserves groups (same as -g), preserves file ownership (same as -o), and preserves devices as devices (same as -D). -vv increases the verbosity of the reporting process rsync has several graphical frontends: grsync, Backup Monitor, QSync, Zynk, rsyncbackup, TKsync For more options, there is a separate page about UbuntuHelp:rsync

See also

You might also want to check out these backup programs which will help you to make automated backups of your system:

Other wiki discussing various Linux backup techniques:

See the full discussion in these threads on the Ubuntu forums:

"Backup and Restore Your Ubuntu System using Sbackup" has nice step-by-step instructions (with screenshots) of using sbackup. Systems like UbuntuHelp:Subversion and Wayback and CopyFS are useful when you want to see how things were a week ago -- they let you see *every* change to a file. (But they don't help when the hard drive fails, so they are complementary to these other forms of backup that only store occasional snapshots, but also survive hardware failures). Ubuntu:ContinuousBackups and Ubuntu:HomeUserBackup and Ubuntu:MigrateAndBackup have some interesting ideas about making backups completely automated. Ubuntu:BackupOfPackageUserData and Ubuntu:UbuntuDownUnder/BOFs/SimpleBackupSolution also still needs help. What exactly does Ubuntu:SessionBackup do?