2021-05-12 14:32:11
Linux入門學習教學:如何備份Linux系統
在前面的一些文章中,我反復提到經常會把Linux系統搞崩潰,所以備份系統就是一件不容忽視的事情。由於Linux系統本身的優越性,系統的備份和還原還是比較容易的。主要表現在以下方面:
- Linux系統所有的資料都以檔案的形式存在,所以備份就是直接拷貝檔案;硬碟分割區也被當成檔案,所以可以直接克隆硬碟資料。
- Linux系統自帶很多實用工具,比如tar、dd、rsync等,備份還原系統不需要購買或下載第三方軟體。
- Linux系統在執行時其硬碟上的檔案可以直接被覆蓋,所以還原系統的時候不需要另外的引導盤。(當然,系統完全掛掉到無法啟動這種情況還是需要另外的引導盤的。)
備份Linux系統的策略有很多,比如使用dd命令直接克隆硬碟分割區:
sudo dd if=/dev/sda1 of=/dev/sdb1
或者,使用tar將硬碟上的檔案打包:
cd /
sudo tar cvpzf backup.tgz --exclude=/proc --exclude=/mnt --exclude=/sys --exclude=/backup.tgz /
還原系統的命令是:
sudo dd if=/dev/sdb1 of=/dev/sda1
或
tar xvpfz backup.tgz -C /
但是我最終選擇的是rsync命令。rsync是一個非常優秀的檔案同步工具,從它的名字可以看出,它支援遠端同步。當然,在備份我的桌面系統時,只需要用到它的本地同步功能就行了。之所以選擇rsync,是因為它具有如下優點:
- 在備份還原過程中,可以儲存檔案原有的時間、許可權、軟硬連結等資訊;
- 首次備份時,需要複製所有檔案,但是再次備份或還原系統時,只需要複製修改過的檔案。
關於rsync的使用方法,其主要參考文件是man rsync
,另外,rsync也可以作為守護行程執行用來建立檔案備份伺服器,可以參考文件man rsyncd.conf
。
桌面系統備份實戰
對於我的桌面系統,我選擇的備份策略是使用rsync命令將硬碟上的所有檔案(當然要排除/proc和/sys目錄下的內容)複製到U盤上。首先使用df -lh
命令檢視一下我電腦的系統佔多大空間,如下圖:
從上圖可以看出,根目錄所在的分割區佔用了14G,而/boot目錄所在的分割區才佔用100多M。其實Linux系統本來不用這麼臃腫,只是因為我安裝了太多的軟體包,比如一整套的texlive啊什麼的,才佔用了這麼多的空間。不過這都不是事兒,反正現在U盤也便宜,所以找個32G的USB 3.0的U盤來備份我這個系統,肯定是很輕鬆愉快的。
新U盤插到電腦上會被自動識別,使用不帶引數的mount
命令可以檢視U盤的裝置檔案和掛載路徑,使用fdisk
命令了解U盤的大小和分割區情況。如下圖:
整個U盤分成一個區我沒什麼意見,不過我不喜歡它的vfat檔案系統,萬一碰到超過4G的巨型檔案怎麼辦?so,先umount
它,然後使用mkfs.ext3
為它重新建立一個檔案系統,如下圖:
再把U盤mount
起來,掛載的路徑為/media/youxia/usb
。如下圖:
然後,可以開始備份了,我備份的命令是:
sudo rsync -Pa / /media/youxia/usb/backup_20141216 --exclude=/media/* --exclude=/sys/* --exclude=/proc/* --exclude=/mnt/* --exclude=/tmp/*
如下圖:
下圖是備份完成後的效果,可以看到整個備份過程花了59分多鐘,U盤被佔用15G,如下圖:
如果哪天系統再崩潰了的話,只需要使用sudo rsync -Pa /media/youxia/usb/backup_20141216 /
即可恢復系統。
相關文章