備份linux系統

2021-06-16 23:24:21 字數 2777 閱讀 7007

1.我該用什麼來備份我的系統呢?

也許你會問。小事一樁,就像你備份或壓縮乙個別的檔案一樣,tar。不像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的檔案——很可能相當巨大。現在你可以把燒錄到***上,或者移動到另一台機器,你可以做任何你想做的事情。

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

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

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

2. 通過網路備份

如果空白的檔案系統太少了並且你又不能掛載其它

的檔案系統來儲存備份檔案,你有可能使用 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

linux系統備份

剛剛重新安裝系統,這次決定備份一些重要的目錄。以前一直知道tar命令是這方面的高手,但是到底要怎麼備份?並沒有系統的研究過,所以剛才的實踐,總結了經驗,放出來和大家分享。第一部分 備份 首先 我們需要在 目錄下重建乙個壓縮檔案,為什麼要在 下面建立呢?就是因為不能讓我們把這個壓縮檔案自己壓縮的自己的...

備份linux系統

備份linux系統 sudo su cd tar cvpzf backup.tgz exclude proc exclude lost found exclude backup.tgz exclude mnt exclude sys 如果你想排除所有的其他分割槽,你可以使用 l 引數代替 exclu...

Linux系統備份

linux相對於windows有乙個最大的好處就是 linux安裝程式的過程只有複製檔案的過程,沒有寫登錄檔的過程,因此,linux系統重灌之後只要將之前系統的程式檔案備份好,重新放到新系統下即可使用。如何備份取決於如何使用的linux以及你備份的目的!我是這樣使用linux的 大部分使用者應用軟體...