先說說Clonezilla備份Linux系統
現在Linux系統下的備份工具極多,我這前用的是Clonezilla,但是還是有一些限制的:
1.它會記錄你備份的分區在分區表中的歸屬,比如我備份的是sda6,如果我恢復到別的機器的sda7分區上,會出現錯誤提示,無法恢復。當然,這個可以通過把備份文件改名來避過,問題不大。
2.重要的問題,如果你備份的原始分區是10GB,以後恢復的目標分區是8GB,那就不能恢復,提示partclone要加上“-C”參數來跳過這個容量檢查,可是,Clonezilla是一組shell文件的命令集,它是中間調用的partclone,所以,這個參數加起來很困難,至少我是沒有搞定。
tar備份系統的優點
基於以上兩點,我想到了用tar來備份系統,這個是從Unix時代就有的通用辦法,基本上是一切通吃的,基本上的優點有以下:
1.避過上面Clonezilla的缺點二,不會有容量檢查的問題,當然,要人為的確定恢復的時候不會出現分區空間不夠的問題。
2.分區格式可變化,用Clonezilla的話,源分區是什麼格式,目前分區就是什麼格式,如果源是ext4的,突然你想把目標改成reiserfs,那是不可能的,但是用tar備份,就可以做到,因為tar本質只是打包和解包文件,並不會關注分區的文件系統的格式,當然,前提是,在解包前,目標分區你要先格式化好。
tar備份Linux系統的缺點
1.需要一個LiveCD,或者任一種引導到一個基本CLI模式Linux系統的方式,因為需要運行tar及對目標分區進行格式化,但這個基本上是很容易做到的,不算大問題。
2.速度,Clonezilla備份我的ARCH+KDE系統,大概只需要5分鐘,從生成的文件看,也是一個.gz文件,但是不知道為什麼,用tar備份一樣的系統,要打包半個小時左右,速度差很多,但好在一般打包都是一次,解包才是多次,而解包速度tar和Clonezilla是差不多的。
下面說正題:tar備份Linux系統的方法,具體步驟如下
一、引導到基本Linux系統,可用LiveCD,我個人用是grub4dos引導U盤上的archboot ISO鏡像。
二、將源分區掛到系統的一個目錄下,一般是/mnt,至少我選的是這個。
三、在/mnt下執行“;tar jcvpf backup.tar.bz2 ./ –exclude=files”,其中backup.tar.bz2是備份文件的名字,–exclude=files是要排除的文件及文件夾,要施加多次–exclude=參數,具體要排除的文件及目錄如下:
1./mnt/*,當然,也可以直接的排除/mnt目錄,這個無所謂
2./proc/*,這個和網上說的直接排除/proc目錄不同,我試了一下,如果直接排除了目錄,會影響ARCH的啟動,其他發行版不知
3./sys/*,同上,建議把目錄留下
4./tmp/*,這個可以直接排除/tmp目錄,但是還是覺得留下目錄,排除目錄下的東西比較好
5./opt,這個直接排除目錄就行了,反正如果有東西要裝在/opt下,目錄不存在的話,會自己創建的
6./media/*,這個排除目錄還是目錄下的內容其實無所謂
7./var下的一些東西,這個/var不能完全排除,但是這個目錄下的一些log和緩存可以排除,具體的自己選,對於各發行版,備份前記得用各自的命令把軟件包緩存清一下,不然……
8.備份文件本身,這個比較傻,但tar的確是這樣做的,因為你備份了當前目錄下的東西,而備份文件又是在當前目錄下,所以,它會把自己也加進去,這個,不知道說什麼好。
四、解包,這個是恢復系統的時候用的,沒什麼好說的,簡單的tar解包指令就行了,目錄分區先格式化好,然後掛載到某處,直接解包就行了。