「Llinux學習筆記」如何備份系統文件

如何備份linux系統

不像Windows,Linux不限制根用戶存取任何東西,因此,你完全可以把一個分區上每一個的文件放入一個TAR文件中。來實施這一方法,用這個成為根用戶:

sudo su

接著去你的文件系統的根目錄(在我們的例子中,我們使用它,不過你可以去你希望備份的任何地方,包括遠程或可移動驅動器。)

cd /

然後,下面就是我用來備份我的系統的完整的命令:

tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys

接著,讓我們稍微解釋一下:

  • 很明顯,'tar'部分就是我們將要使用的軟件
  • 'cvpfz'是我們給tar加的選項,像“創建一個壓縮文檔”(這是顯然的),“保存權限”(以便使每一個相同的文件有相同的權限),以及“gzip”(縮減大小)。
  • 接下來,是壓縮文檔將獲得的名稱,在我們的例子中是backup.tgz。
  • 緊隨其後的是我們想要備份的根目錄。既然我們想備份所有東西:/
  • 接著就是我們要剔除的目錄了。我們不想備份每一樣東西,因為包括有些目錄不是非常有用。同時確保你沒有把備份文件本身也加進去了,否則,你會得到怪異的結果的。你也許同樣不打算把/mnt文件夾包括進來——如果你在那兒掛載了其他分區——否則最終你會把那些也備份的。同時確保你沒有任何東西掛載在 /media(即沒有掛載任何cd或可移動介質)。否則,剔除/media。

如果你想排除所有的其他分區,你可以使用 'l' 參數代替 --exclude, 上面的命令看起來象這樣:

tar cvpzlf backup.tgz / --exclude=/lost+found --exclude=/backup.tgz

按:kvidell在論壇主題裡建議也剔除/dev目錄。不過,我有其他證據表明這樣做是不明智的。

好了,如果命令適合你的話,敲擊確定鍵(或者回車鍵,管它叫什麼名字),然後什麼都不用幹,放鬆一下。備份也許會花上一段時間。

完了以後,在你的文件系統的根目錄會有一個叫作backup.tgz的文件——很可能相當巨大。現在你可以把燒錄到DVD上,或者移動到另一臺機器,你可以做任何你想做的事情。

按2:在進程的最後,你也許會得到一條信息,寫著“tar:由於先前錯誤的耽擱而存在錯誤”或者其他什麼,不過大多數情況下你可以僅僅忽略它。

作為選擇,你可以使用Bzip來壓縮你的備份。這意味著較高的壓縮比但是也意味著較低的速度。如果壓縮比對你很重要,只需用“j”替換命令中的“z”, 同時給備份命一個相應的擴展名。這些會使命令變成這樣:

tar cvpjf backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys

2.1. 通過網絡備份如果空白的文件系統太少了並且你又不能掛載其它的文件系統來保存備份文件,你有可能使用 netcat 來完成備份.

在接受端你必須設置 netcat 用於寫備份文件,象這樣:

nc -l -p 1024 > backup.tar.bz2

然後你傳送 tar 命令,不帶 'f' 參數通過 netcat 在發送端,象這樣:

tar cvpj / | nc -q 0 1024

在上面的命令中 1024 僅僅是一個隨機的端口號, 任何從 1024 或以上的都可以工作.

如果安全的通過網絡備份不依賴文件系統完成備份. 事實上一個真正快的網絡比寫備份文件到磁盤要快.

在上面的講述中 (由於我剛剛發呆,因此我不能證實它是可靠的) 是這個命令:

tar cvpj / | ssh "cat > backup.tar.bz2"

3. 恢復警告:看在上帝的份上,在這一部分請小心謹慎。如果你不理解你在這裡幹了什麼,你可能最終毀壞了對你而言很重要的東西,所以請小心謹慎。 那麼,我們將緊接著上一章的例子:在分區的根目錄下的backup.tgz文件

再一次確保你是根用戶以及備份文件在文件系統的根目錄。

Linux美妙的地方之一就是這一項工作甚至可以在一個正在運行的系統上進行;沒必要被引導cd或者任何東西搞得暈頭轉向。當然,如果你使你的系統無法被引導了。你也許別無選擇,只能使用一張live-cd了,但是結果是一樣的。你甚至可以在Linux系統正在運行的時候,移除它裡面所有文件。可是我不告訴你那個命令!

好了,言歸正傳。這是我要用的命令:

tar xvpfz backup.tgz -C /

如果你使用 bz2

tar xvpfj backup.tar.bz2 -C /

警告:這會把你分區裡所有文件替換成壓縮文檔裡的文件!

只要敲一下確定/回車/你的兄弟/隨便什麼,然後去看焰火吧。同樣,這會花一段時間。等它完成了,你就有了一個完全恢復的Ubuntu系統!只需確保在你做其他任何事情之前,重新創建你剔除的目錄:

mkdir proc mkdir lost+found mkdir mnt mkdir sys etc...

當你重啟以後,所以的事情都會和你備份的時候一模一樣。

3.1. 恢復 GRUB那麼,如果你想把你的系統移動到一塊新硬盤上,或者,你想對你的GRUB做一些糟糕的事情(比方說,安裝Windows),你也將需要重裝GRUB。在這個論壇裡,有不少如何做這個的非常好的指導,所以我不會從頭重新做起。相反,看一下這裡(論壇) 或者這兒:RecoveringUbuntuAfterInstallingWindows

在這個論壇主題中,提出了一些方法。我個人建議第二個,remmelt貼出來的,因為我發現它每次都管用。

對,就是那個!我希望它有幫助!

4. 其他方法也許你也想看一下這些能幫助你自動備份系統的程序

  • Partimage
  • Mondo Rescue


分享到:


相關文章: