為什麼Linux系統沒有類似Windows上的還原精靈和影子系統?

很多從Windows轉Linux的用戶,面臨的最大一個問題,就是Linux上沒有還原精靈這種軟件。眾所周知,作為一個操作系統要想普及,絕不可能只針對懂IT的少部分年輕人,而是需要讓不同年齡段,不同職業的群體都用上這個系統。比如讓家裡老年人使用電腦,就需要考慮病毒以及誤操作導致系統崩壞的可能。殺毒軟件只能解決病毒,但解決不了人為失誤導致的系統損壞,這個時候還原精靈這類軟件就是必須的了。

Linux不能普及,缺少還原精靈這種軟件也是個很大的原因。

先來說說Windows上的還原精靈和影子系統都有哪些高級特性吧

1.不需要佔用額外的外部存儲

2.備份和還原基本都是秒級

3.理論上可支持上千個備份而不佔用磁盤空間。

1.Linux真的沒有還原精靈這種應用軟件嗎

據筆者所知,沒有。

搜遍整個互聯網,一提Linux還原,基本都是類似的說辭

直接 tar 打包根目錄,恢復到新的硬盤以後改一下 fstab 更新一下 grub 就還原了。

這根本不是還原精靈。就算能起到備份還原的作用,其使用起來也太困難了,也不支持秒級還原和多副本。

有人說,和Linux類似的Mac系統有Time machine可以實現更高級的還原和備份,但是我們來看看Time machine能做什麼。

Time Machine 是 Mac OS X 內置的備份工具,它可以自動按照每小時,每天或者每週的間隔來對你的 Mac 進行備份操作,你可以直接在外接的硬盤上進行備份,也可以在本地網絡硬盤上進行備份。

為什麼Linux系統沒有類似Windows上的還原精靈和影子系統?

Time Machine

Time Machine 只能做到備份恢復的作用,而且需要用到外部存儲來存儲備份。Time Machine 進行的第一次備份,備份文件會很大,因此可能需要一段比較長的時間才能完成。但是當第一次備份完成後,後來的每個後續備份應該都比較小(備份也會更快),因為後面的備份只是增量備份。

這跟Windows上的還原精靈比差遠了。windows上還原精靈的特性,它一個都不擁有。

說白了,Time Machine就是個高級版的壓縮打包軟件而已。Ubuntu上也有類似Time Machine的軟件,但它連Time Machine都不如,更別提和還原精靈比了。

當然,在Windows上的一些還原精靈也有了Mac版,比如冰點還原精靈Mac版,但是它的工作原理和功能與Windows版本是不一樣的。

2.Linux不需要還原精靈這種軟件嗎

有人說,Linux的設計思想不需要還原精靈這種系統軟件。這顯然是不對的。

Linux的配置更分散,也更脆弱,尤其是作為桌面系統使用,常常因為更新軟件或驅動導致系統崩潰的,理論上來說是更需要還原精靈的。

還原精靈會帶來性能損失嗎?理論上會,但沒有證據表明這種損失會影響到用戶的正常使用。所以無論從哪個角度來說,不是Linux不需要還原精靈,僅僅是Linux 上沒有這種軟件而已。

Linux服務器一般不需要還原精靈這類軟件,更多采用RAID和多副本機制來做備份,不能做到定點還原功能。

3.Linux上為什麼沒有還原精靈和影子類系統軟件

這就要從還原精靈的原理說起了。還原軟件要麼是奪取南橋芯片的I0控制權(這種通常需要配合硬件使用),要麼控制硬盤的INT13中斷,要麼改寫硬盤的MBR(主引導記錄)。

也有還原精靈利用驅動的形式加入操作系統的內核模塊中來實現其還原功能的,它和硬盤原來的驅動是一種上下層的關係,也就是說所有對硬盤的訪問首先得經過它的“過濾”然後再提交給硬盤原來的驅動處理,從而達到還原的目的,這種技術叫“過濾驅動程序”。

硬件還原卡可分兩種類型,一種是普通的還原卡,物理上不直接接管硬盤讀寫。

普通還原卡安裝在主板插槽裡,在卡上有一片ROM芯片,根據PCI規範,該ROM芯片的內容在計算機啟動時將最先得到控制權,然後它接管BIOS的INT13中斷。將FAT、引導區、CMOS信息、中斷向量表等信息都保存到卡內的臨時儲存單元中或是在硬盤的隱藏扇區中,用自帶的中斷向量表來替換原始的中斷向量表;再另外將FAT信息保存到臨時儲存單元中,用來應付我們對硬盤內數據的修改;最後是在硬盤中找到一部分連續的空磁盤空間,然後將我們修改的數據保存到其中。這樣,只要是對硬盤的讀寫操作都要經過還原卡的保護程序進行保護性的讀寫。

另一種是新型還原卡,物理上直接接管硬盤讀寫。

這種新型還原卡跟普通還原卡,原理上已經有了很大的不同,首先不完全依靠BOOTROM來取得控制權了,而是總線硬件直接獲得控制權,這樣更可靠地獲得對計算機數據資源的控制;另外,因為直接控制了硬盤的物理讀寫能力,這樣可以實現硬盤硬件讀寫的驅動和還原算法合二為一,也就是沒有普通還原卡的過濾驅動了。這樣就徹底避免了普通還原卡還原不可靠的問題。

這樣看起來,似乎硬件還原卡和操作系統的關係不太大,理論上Linux也可以使用硬件還原卡。那軟件還原呢?

軟件還原的主要原理都是在操作系統的驅動上做文章。這就有個文件了,Windows上的文件系統都是集成的,而且格式固定,而Linux不是,Linux支持ext/fat/xfs/btrfs等多達十幾種文件格式,文件管理系統的具體實現,Linux內核並不負責。

Windows 10自帶還原功能,利用的卷影複製技術,而Linux呢,它所支持的文件系統,有的甚至連日誌都不支持。

Linux並不是無法實現還原精靈和影子系統這類軟件,而是由於其文件系統實現和內核分離,以及其驅動管理跟Windows不一致,導致沒法實現統一的還原功能。

那Linux可以在內核驅動層面上實現還原精靈這樣的功能嗎?目前來看不大可能。

Linux其實也可以實現還原精靈和影子系統

前面說了,Linux文件管理系統的具體實現,Linux內核並不負責。也就是說,可以設計一個支持還原精靈的文件系統出來。這樣的文件系統還真有,它就是Btrfs文件系統。

Btrfs 被稱為是下一代Linux 文件系統,目標是取代Linux目前的ext3文件系統,改善ext3的限制,它是一種新型的寫時複製 (COW) Linux 文件系統已經併入內核主線。Btrfs 設計實現高級功能的同時,著重於容錯、修復以及易於管理。它由 Oracle, Red Hat, Fujitsu, Intel, SUSE, STRATO 等企業和開發者共同開發, Btrfs 以 GNU GPL 協議授權。

Btrfs有快照功能,其是基於COW(copy on write)實現的。

然而常見的主流Linux發行版都沒有默認使用Btrfs文件系統,通常默認使用Ext4或XFS,主要是因為Btrfs會有一定的性能損失和丟文件風險。openSUSE對Btrfs支持則比較好。

為什麼Linux系統沒有類似Windows上的還原精靈和影子系統?

openSUSE上的快照還原軟件

可以這麼說,Btrfs實現了最接近於windows上的還原精靈和影子系統的一些特性。

那非openSUSE或者其他Linux文件系統可以享受到這種功能嗎?可以的,只需要你把文件格式轉為Btrfs即可。

總結

Linux上確實缺少Windows上的還原精靈和影子系統這樣的應用軟件,但是可以通過使用有COW特性的文件系統來實現類似功能。在Linux上,影子系統不是通過應用軟件實現的,而是通過文件系統實現的。當然,和Windows上的實現比,還是有差距的。


分享到:


相關文章: