Centos

如果我在更新過程中安排關機會發生什麼?

  • August 9, 2016

我昨晚做了一個相當大的 CentOS 6 更新。當我決定讓它完成時,這個過程距離完成下載只有幾個包。所以,我安排關機+60分鐘然後離開。

當我今天早上檢查系統時,它已經關閉。我遇到了一些麻煩(我預料到了一些事情),只是,當我查看日誌時,我注意到 yum 日誌的結尾似乎更新時間比我預期的要長。

當我注意到這一點時,我重新執行了 yum update。一切都是最新的。另一個問題是,

是否乾淨地完成了。我該如何檢查?

有時它會損壞您的機器。這是一個已知問題:

並且應該已通過更改來修復systemd. 根據

CentOS 6 沒有執行systemd。所以問題可能存在於您的機器中。

理想情況下,更新是冪等的(如果您多次執行相同的更新,您將獲得與執行一次相同的結果)和彈性(如果更新因重啟而中斷,您可以在重啟後恢復 udpate) . 但是更新不是原子的(有半更新的系統狀態)。

在實踐中,冪等性確實有效。如果yum update被中斷(由於錯誤、按Ctrl+ C、預定重啟、電源故障……),只需yum update在系統重新啟動後再次執行,並等待它完成。

在實踐中,彈性通常是​​有效的。包管理器會注意首先以臨時名稱解壓新版本的文件,然後用新文件替換舊文件。如果更新在最長的階段(解包,需要大量磁碟寫入)被中斷,系統狀態並沒有發生有意義的變化,因此不會造成任何傷害。如果在更換階段更新中斷,事情會變得更加複雜。由於不同文件之間的版本不匹配,正在更新的軟體可能無法使用。

大多數關鍵軟體包可以逐個文件更新,或者俱有按適當順序執行的配置步驟,以確保系統保持執行。例如rpm由一個二進製文件組成,所以你要麼得到舊的,要麼得到新的。核心也一樣。但是,由於有數千個包、數十萬個文件以及在文件系統級別進行寫入重新排序的巨大潛力,組合數學非常非常高,不可能測試所有內容。因此,如果系統在更新過程中被中斷,最終可能會導致系統無法正常啟動。但是機率非常小(當然,除了錯誤)。

引用自:https://unix.stackexchange.com/questions/301973