備份Linux系統(tǒng)的策略有很多,比如使用dd命令直接克隆硬盤分區(qū):
sudo dd if=/dev/sda1 of=/dev/sdb1
或者,使用tar將硬盤上的文件打包:
cd / sudo tar cvpzf backup.tgz --exclude=/proc --exclude=/mnt --exclude=/sys --exclude=/backup.tgz /
還原系統(tǒng)的命令是:
sudo dd if=/dev/sdb1 of=/dev/sda1 或 tar xvpfz backup.tgz -C /
但是我最終選擇的是rsync命令。rsync是一個(gè)非常優(yōu)秀的文件同步工具,從它的名字可以看出,它支持遠(yuǎn)程同步。當(dāng)然,在備份我的桌面系統(tǒng)時(shí),只需要用到它的本地同步功能就行了。之所以選擇rsync,是因?yàn)樗哂腥缦聝?yōu)點(diǎn):
1、在備份還原過(guò)程中,可以保存文件原有的時(shí)間、權(quán)限、軟硬鏈接等信息;
2、首次備份時(shí),需要復(fù)制所有文件,但是再次備份或還原系統(tǒng)時(shí),只需要復(fù)制修改過(guò)的文件。
關(guān)于rsync的使用方法,其主要參考文檔是 man rsync
,另外,rsync也可以作為守護(hù)進(jìn)程運(yùn)行用來(lái)建立文件備份服務(wù)器,可以參考文檔 man rsyncd.conf
。
桌面系統(tǒng)備份實(shí)戰(zhàn)
對(duì)于我的桌面系統(tǒng),我選擇的備份策略是使用rsync命令將硬盤上的所有文件(當(dāng)然要排除/proc和/sys目錄下的內(nèi)容)復(fù)制到U盤上。首先使用df -lh
命令查看一下我電腦的系統(tǒng)占多大空間,如下圖:

從上圖可以看出,根目錄所在的分區(qū)占用了14G,而/boot目錄所在的分區(qū)才占用100多M。其實(shí)Linux系統(tǒng)本來(lái)不用這么臃腫,只是因?yàn)槲野?裝了太多的軟件包,比如一整套的texlive啊什么的,才占用了這么多的空間。不過(guò)這都不是事兒,反正現(xiàn)在U盤也便宜,所以找個(gè)32G的USB 3.0的U盤來(lái)備份我這個(gè)系統(tǒng),肯定是很輕松愉快的。
新U盤插到電腦上會(huì)被自動(dòng)識(shí)別,使用不帶參數(shù)的 mount
命令可以查看U盤的設(shè)備文件和掛載路徑,使用 fdisk
命令了解U盤的大小和分區(qū)情況。如下圖:

整個(gè)U盤分成一個(gè)區(qū)我沒(méi)什么意見,不過(guò)我不喜歡它的vfat文件系統(tǒng),萬(wàn)一碰到超過(guò)4G的巨型文件怎么辦?so,先 umount
它,然后使用 mkfs.ext3
為它重新建立一個(gè)文件系統(tǒng),如下圖:

再把U盤mount
起來(lái),掛載的路徑為 /media/youxia/usb
。如下圖:

然后,可以開始備份了,我備份的命令是:
sudo rsync -Pa / /media/youxia/usb/backup_20141216 --exclude=/media/* --exclude=/sys/* --exclude=/proc/* --exclude=/mnt/* --exclude=/tmp/*
如下圖:

下圖是備份完成后的效果,可以看到整個(gè)備份過(guò)程花了59分多鐘,U盤被占用15G,如下圖:

如果哪天系統(tǒng)再崩潰了的話,只需要使用 sudo rsync -Pa /media/youxia/usb/backup_20141216 /
即可恢復(fù)系統(tǒng)。