為什麼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上的實現比,還是有差距的。