天天看點

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

你是不是經常希望做過的每一件事情都加上一個“撤銷”按鈕呢?

我就是這樣的人,實際上有很多次,我發現自己竟然在紙上寫錯字的時候試圖去按“ctrl+z”。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

這也就是為什麼系統恢複功能會讓人感覺如此神奇。你可以很快地重新回到工作中去,就像什麼事情都沒有發生一樣,也不用去管造成系統故障的原因。這也就是為什麼系統恢複功能在那些從windows轉向linux的使用者中一直排名靠前。有很多人甚至沮喪地認為,正因為系統恢複功能的缺乏,linux永遠不會做到windows那樣好。

實際上這些使用者真的應該好好讀一讀手冊了,或者這篇文章也能夠幫到你。因為這裡我将會給你介紹一些在linux中完成系統恢複功能的幾個工具。确實,這些工具并不是預設安裝在linux中的,但是在windows 10裡也沒有預設的系統恢複功能。在使用過這些工具之後,你很可能會感覺到這并不像在windows中做系統恢複,是以我需要重申在linux中系統恢複的工作方式與windows中是有本質不同的。

<a></a>

windows家族最初的系統恢複功能要回溯到2000年的windows me版本,當時還隻能恢複系統檔案和系統資料庫,而且并不穩定。在windows xp和vista中系統恢複的性能得到了很大的提高。也是從那時起,系統恢複開始依賴于一個叫做硬碟快照服務(volume snapshot service)的系統服務功能,能夠自動建立系統快照--包括正在使用的檔案--然後将這些檔案轉換為可恢複的節點檔案。

新的方式給使用者提供了更多的自定義功能,比如使用者可以為快照配置設定磁盤空間,可以選擇監視哪些檔案目錄等等。但是還是有很多的限制,比如隻有ntfs格式的分區具有系統恢複快照功能,而且在windows 8版本之前,快照并不能長期儲存。

windows的每次版本更新都帶來了混亂,比如vista的家庭版中沒有提供恢複從前的系統快照的使用者界面,而windows 8出現了不相容之前版本的系統快照的問題,最終windows 10索性禁用了系統恢複功能,讓使用者手動啟用與操作,這麼看起來這項決定是有意而為。

好了,不再說關于windows的事了,還是來看看在linux中我們應該怎麼做吧!

呃,實際上這并不是一項系統功能,至少不應該在名字裡帶上“系統”這兩個字,因為你不會在任何一個linux系統發行版的系統菜單中找到所謂的系統恢複(system restore)功能。你要做的是找到一個合适的應用程式并安裝才可以。絕大多數的系統恢複應用程式和windows中系統恢複功能的工作原理是相同的,在特定的時間節點為你的系統建立快照檔案,然後在系統出現問題的時候,允許你復原到標明的時間點。

在介紹這些應用程式之前,讓我們先簡單的了解一下系統快照究竟是什麼?

抛開這兩者的名字不同,總的來說,備份backup是指将檔案複制出一份副本并且儲存到另一個位置。備份很少會将整個磁盤備份,那樣做通常是叫做磁盤鏡像或者是磁盤克隆,這種類型的備份實際上是對整個磁盤做了一個鏡像,包括使用者資料,作業系統,啟動分區等等。磁盤鏡像可以被用在裸機恢複工作中。這時候你就可以在不需要安裝作業系統情況下,将一塊硬碟的全部内容複制到另一台電腦上。

而系統快照snapshot則是在特定的時間節點上儲存檔案系統的狀态,并且儲存在與檔案系統相同的儲存設備上。通常系統快照中會包含所有的目錄與檔案資訊,或者至少是儲存了作業系統所需要的檔案資訊。

将快照和檔案系統儲存在同一個位置就實作了復原的可能性,同樣也有利于節省磁盤空間。在這種情況下,每建立一個系統快照并不需要将整個檔案系統的狀态全部儲存下來。形象地說,系統快照就像是一個不斷增長的備份過程,每次隻是儲存和上次不同的資訊變化,這也就意味着每一個系統快照都要依賴于上一次系統快照,這樣才能完全完成系統恢複工作。而與之相反的是,一個完整的磁盤備份或者是磁盤鏡像則與其他的備份檔案互相獨立,可以單獨完成系統恢複工作。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

系統快照可能會碰到的問題是它們對于硬碟故障非常的脆弱。如果你的硬碟受到了嚴重的實體損傷,那麼很可能你的系統快照就無法幫助你恢複系統了。為了防止這一點,我們建議在安裝與設定好你的linux系統之後立即做一份系統快照,然後把它單獨複制到另外的儲存設備中。

在linux中有一些應用程式可以幫助你儲存系統快照。大多數應用程式都是針對于新手的,并不需要進階的linux操作技巧。我們在這裡挑選了一些,你可以從中選擇适合自己的應用。

timeshift提供了一個非常簡潔的圖形使用者界面,你也可以直接在終端輸入指令使用它。預設情況下。timeshift并不會包含使用者的個人檔案,但你可以通過自定義将特殊的目錄添加到快照中去。ubuntu及其分支的使用者可以從開發者的ppa擷取timeshift:

<code>sudo apt-add-repository ppa:teejee2008/ppa </code>

<code>sudo apt-get update </code>

<code>sudo apt-get install timeshift </code>

其他版本的使用者可以下載下傳安裝檔案并在指令行終端運作:

<code>./timeshift-latest-amd.64.run </code>

timeshift還提供了專門針對btrfs檔案系統的版本,可以支援原生的btrfs系統快照功能。

工作方式

timeshift能夠幫助你随時完成快照工作,或者你也可以設定讓timeshift自動建立快照。你可以安排任務計劃,每小時、每天、每周或者每個月進行快照,也可以設定清除這些快照的時間。timeshift有一個特殊的選項叫做重新開機快照,用來在每次系統重新開機之後建立一個新的快照檔案。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

timeshift從快照中進行系統恢複是一項非常簡單直接的工作,隻要選擇快照檔案并且告訴它應該存儲的位置就可以了。timeshift提供了将快照恢複到外設的選項,克隆功能能夠直接将現有系統狀态複制到另一個裝置中,這在将你的作業系統遷移到另一台新電腦時非常友善,因為你不再需要從頭開始安裝各種功能和應用。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

在恢複快照之前,timeshift會詢問你是不是需要儲存現有的應用設定,并且讓你選擇儲存哪一個。請記住timeshift需要grub 2啟動進入快照恢複。

如果你認為timeshift的操作已經足夠簡單的話,那麼cronopete甚至更加簡單,至少從外觀上看來是這樣的。cronopete自稱為os x的時間機器,與timeshift工作起來稍有不同。cronopete為ubuntu,debian和fedora提供了封包件,arch linux使用者可以在aur中找到它。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

與本文中介紹的其他應用程式不同,cronopete将備份與快照功能捆綁在一起,并且要求你将快照儲存在外部裝置上。預設情況下,它會每個小時都檢查一遍你的檔案變化,但是當然可以在設定中改變這個時間間隔。如果某個檔案并沒有發生變化,那麼cronopete将對這個檔案隻進行一個硬連結而并不複制這份檔案,這會幫助節省磁盤空間。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

cronopete的檔案恢複可能是它最酷的功能,好像真的能幫助你“穿越時間”,也就是說,可視化的浏覽所有儲存版本的檔案與檔案夾。想要恢複哪一個檔案,隻需要選上它,然後點選恢複就可以了,這個檔案就會從外部的儲存設備中複制到你現有的系統中來。當然這裡你可能也猜測到了,cronopete對于全系統恢複并不十分具有意義,但是如果你想要儲存單獨檔案的多個版本,那麼它是一個很好的選擇。

back in time的使用者界面看起來非常友好,能夠吸引住linux新手。它的設定對話框中提供了非常精細的操作控件,使用者界面看上去就像是一個檔案管理器一樣,在這裡你可以閱覽所有的快照,浏覽快照中的檔案,以及恢複標明的檔案與檔案夾。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

ubuntu使用者可以從ppa中安裝back in time:

<code>sudo add-apt-repository ppa:bit-team/stable </code>

<code>sudo apt-get install backintime-qt4 </code>

有些發行版會在自己的資源庫中提供back in time,如果你的發行版沒有的話,也總可以在網上找到源代碼并且下載下傳安裝。

back in time會對那些你選擇的目錄建立快照,但是隻會恢複那些擁有寫權限的目錄。你可以對快照進行加密并且存儲在網絡裝置、外部硬碟或者是本地的檔案系統中。back in time隻會對那些改變過的檔案進行更新。在設定&gt;選項标簽中,你可以選擇在沒有變化發生的時候禁用快照。

back in time的快照時間根據計劃設定,每天、每周、每個月或者是每天的某個或某幾個時間段,或者是每次重新開機之後。你可以在主工具欄的菜單中自己更改計劃時間。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

與cronopete相似,back in time更加适合于基于檔案夾或者是基于檔案的復原操作,但是如果你想對整個檔案系統進行復原也是同樣可行的。恢複一個快照相當簡單,隻要選擇它,并且選擇在哪裡進行恢複就可以了,取決于你是隻想恢複幾個檔案夾還是對整個系統進行恢複。

systemback的界面很小巧,但是功能卻非常強大。但不幸的是隻有debian和ubuntu及其分支的使用者可以使用,而沒有提供其他linux發行版的安裝檔案。systemback可以通過開發者ppa安裝:

<code>sudo add-apt-repository ppa:nemh/systemback </code>

<code>sudo apt-get install systemback </code>

systemback并不僅僅是另一個快照工具。它可以把你現在的系統轉變為一張live cd或dvd,這樣就可以直接在另一台電腦上啟動了。它可以修複或重裝grub 2啟動器以及修複fstab檔案,當然,systemback的主要用途還是用于系統快照。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

systemback将快照的總數量限制在10個以内。使用者擁有删除快照的權限。快照的功能可以選擇為遞增,也就是隻複制被改變過的檔案,而将其他的檔案以硬連結的形式儲存。但是在設定對話框中,你可以禁用這個功能。在恢複檔案的時候,你可以選擇執行全系統恢複,或者隻是複制關鍵的系統檔案。個人資料比如照片與文檔并不會被包含在快照中,但是你可以在建立&gt;包含使用者資料的選項中通過自定義操作将它們轉移到live cd中。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

systemback允許使用者自定義自動快照的計劃,但你也将這個選項關閉來手動設定恢複點。需要注意的是systemback并不支援ntfs檔案系統,是以不能對ntfs系統分區進行快照或者是恢複操作。

snapper和opensuse的關系非常密切。在其他linux版本上也許能夠安裝snapper,但是并不一定能正常工作了。在opensuse中安裝snapper的最簡單方法是将它安裝在btrfs分區上,這樣做snapper就能夠自動安裝與配置。你可以使用指令行工具來操作snapper,或者通過yast工具,此外還有另一種替代方案snapper-gui。

snapper能夠建立幾種不同類型的快照,比如在安裝新的應用程式之前與之後建立快照。通過這種方式你可以将快照進行對比,并且更有效的進行系統恢複。snapper會為快照自動建立時間計劃,你當然也可以把這個功能禁用掉。在snapper中,快照是存放在與系統相同的分區中,是以它們會不斷長大,要記得随時檢查自己的硬碟容量。

預設情況下,snapper隻對根分區建立快照。如果想要包含其他分區和btrfs副磁盤卷,你就需要為每一個項目建立一個配置,這必須在指令行終端中完成,你需要以root權限運作下面的指令:

<code>snapper -c configname create-config /path </code>

在這裡-c代表着配置“configure”,configname是你為這個配置所取的名稱,/path則是分區或是副磁盤卷的位置,例如:

<code>snapper -c home create-config /home </code>

你可以用下面的指令檢視目前的配置:

<code>snapper list-configs </code>

所有的配置檔案都儲存在/etc/snapper/configs目錄。在這裡,你可以用一個常用的文本編輯器來修改它們,例如你可以禁用每小時建立快照的功能,啟用自動删除快照的功能,手動設定可儲存舊快照的數量。

在yast snapper模式中,你可以建立并對比快照進行系統復原操作,或者将一個檔案或者其他一些被選擇的檔案恢複到以前的版本。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

了解了怎樣對整個作業系統進行恢複之後,你可能想知道怎樣恢複那些已經安裝的應用軟體。這在系統新版更新或重裝系統的情況下很常見。幸運的是已經有一些工具提供了應用程式遷移的功能,而且使用起來非常友善。

首先我要提到的是aptik,它是由timeshift的開發者建立的應用程式備份工具。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

aptik隻能用于基于ubuntu的發行版,你可以直接從開發者ppa安裝:

<code>sudo apt-get install aptik </code>

aptik能夠以清單的形式輸出系統現有的已安裝的包以及所使用的庫以及下載下傳的封包件。此外還有用于導出應用程式設定、桌面主題和圖示集的選項。aptik會根據安裝類型對這些包進行分類,例如分為作業系統預裝、使用者自主安裝、自動安裝的依賴與從.deb檔案安裝等等。對于.deb檔案你可以将它們拖拽到清單中并且包含在備份檔案裡。備份可以儲存在任何位置,如果想把它們提取到一個新安裝的發行版中,隻需要先安裝aptik,然後在主視窗中選擇備份并進行恢複即可。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

linux mint的使用者可以選擇mint備份工具,功能幾乎與aptik一模一樣。除了恢複已安裝的應用程式之外,這個工具還可以對所標明的檔案夾及其權限執行快速備份。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

arch linux的使用者可以使用backpac來備份與恢複應用程式。backpac可以建立手動安裝包的清單檔案,也可以按照你的選擇單獨備份檔案。使用backpac恢複系統狀态會重新安裝所輸出的包,删除掉快照中并不包含的檔案,并且會用之前輸出的版本覆寫系統檔案。

當然,你可以不使用任何一個第三方工具來完成這樣的操作。在包管理系統中提供了這樣的工具。在基于dpkg的系統中,你可以使用下面的操作來輸出一個已安裝應用的清單檔案:

<code>dpkg --get-selections &gt; /home/yourusername/apps.txt </code>

然後,将這個txt檔案與庫資訊從/etc/apt/sources.d/目錄與/etc/apt/sources.list檔案複制到新的系統中。使用如下指令行并提供正确的檔案路徑就可以将備份的應用遷移到新的系統中:

<code>dpkg --set-selections &lt; /path/to/apps.txt </code>

<code>sudo apt-get dselect-upgrade </code>

有些圖形化的包管理工具例如synaptic能夠提供圖形化的使用者界面,用來輸出與導入已經安裝的應用程式的清單,不需要使用終端指令行的形式來操作。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

如果上面建議的這些應用你并不認為合适,那麼我們還有其他的解決方案。我在這裡将它們稱為“進階”并不意味着這些方案非常複雜,而是說它們可能并不是新手使用者的第一選擇。

如果你想在指令行終端使用一種極簡而快速的方法進行快照操作,那麼可以試一下rsnapshot。你可以在絕大多數linux發行版的資源庫中找到它。rsnapshot的所有設定都在/etc/rsnapshot.conf這個檔案中。你可以打開這個檔案,自定義快照時間表,設定何時删除舊的快照,以及需要包含哪些檔案與檔案夾。當你設定完畢之後,最好使用下面兩個指令來做一下測試:

<code>rsnapshot configtest </code>

<code>rsnapshot -t hourly </code>

這樣可以保證你的所有設定都正常啟用。請記住修改設定檔案時需要在兩個功能選項中使用一個tab符進行分割而并不是空格,是以不要用空格鍵移動這些參數。rsnapshot沒有自動恢複功能,是以你隻能從標明的快照中手動複制檔案。

obnam與rsnapshot非常相似,另外還提供了一些有趣的功能。它可以先建立一個全系統備份,然後逐漸生成包含新的或是改變過的檔案的快照。你可以對快照進行加密與自動解密。obnam在進行系統恢複時的操作也是相似的,提供指令,并且讓你選擇存儲的位置。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

你可以設定或是修改自定義路徑,将快照存放在伺服器上或者是其他遠端裝置上。obnam提供的官方手冊是一項很了不起的工作,清楚的解釋了所有的功能操作。

如果系統中将會存放一些重要的資料,那麼一定要事先考慮好備份與恢複的方法。如果你正在安裝與設定linux系統的話,那麼值得考慮将lvm(logical volume manager)作為硬碟的管理工具。

10個方法助你輕松完成 Linux 系統恢複10個方法助你輕松完成 Linux 系統恢複

準确的說,lvm并不算是一個應用程式,它在linux核心中提供了内置的快照功能,可以将快照安裝到任何其他磁盤或分區,合并若幹個快照,并還原它們來解決系統問題。或者你可以使用linux核心子產品dattobd支援對運作中的系統進行增量快照,這樣無需解除安裝分區或重新啟動計算機。

正如你所看到的,有很多種選擇可以在linux中獲得系統恢複功能,然而你會發現它們在技術上是非常相似的,那麼有沒有更好的方法來代替現有的系統恢複功能呢?也許在未來随着這些應用程式的不斷發展将會出現更好的方法,或者是對這些現有的工具更有效的進行組合應用,這些都需要使用者們不斷進行探索發掘。

本文來自雲栖社群合作夥伴“linux中國”

原文釋出時間為:2013-04-02.

繼續閱讀