Linux 核心升級的安全流程
在 Linux 的世界裡,核心(Kernel)是操作系統的靈魂。它負責管理硬體資源、調度程序,並提供系統呼叫介面。對於系統管理員而言,定期升級核心不僅是為了獲取新功能,更是為了修補安全漏洞(如 Dirty Pipe 或 CVE 系列漏洞)以及提升系統穩定性。然而,盲目執行 apt upgrade 可能會導致開機失敗或硬體相容性問題。因此,建立一套標準、安全的核心升級流程至關重要。本文將以 Ubuntu 22.04 LTS 和 Debian 12 為基礎,介紹如何安全地進行核心升級。
升級前的準備工作
在動手之前,最重要的原則是「備份」與「檢查」。核心升級屬於系統底層變更,一旦失敗可能導致伺服器無法開機(Boot Failure)。
首先,確保你的系統備份是最新的。如果是在虛擬機環境中,建議建立一個快照(Snapshot)。如果是實體機或雲端服務,請確認你有存取救援模式(Rescue Mode)或控制台重啟的能力。
接著,檢查目前的核心版本與硬體相容性。你可以使用以下指令查看當前運行的核心版本:
uname -r
同時,確認目前的軟體包索引是最新的,這能確保我們下載到的是官方倉庫中最新且經過簽章驗證的核心套件:
sudo apt update
執行核心升級
在 Ubuntu 22.04 和 Debian 12 中,核心升級通常透過 APT 套件管理員完成。這些發行版預設會保留舊版核心作為備援,這是一種很好的安全機制。
執行以下指令來升級所有套件,其中包含新的核心版本:
sudo apt full-upgrade
或者,如果你只想專注於核心相關的升級,可以指定套件名稱:
sudo apt install linux-image-generic linux-headers-generic
執行過程中,系統可能會詢問是否繼續,請輸入 Y 並按下 Enter。安裝過程會編譯必要的模組(如 DKMS 模組,例如 VirtualBox 或 NVIDIA 驅動程式),請耐心等待其完成。
驗證與重啟
安裝完成後,核心並不會立即生效。Linux 系統在運行時,核心映像檔鎖定在記憶體中,必須重新啟動才能載入新核心。
在重啟之前,強烈建議先測試新核心是否可正常載入。你可以編輯 GRUB 設定檔,暫時將新核心設為預設啟動項目,或者更簡單的方法是:重啟系統,但在 GRUB 選單出現時,手動選擇新安裝的核心版本進行啟動。
sudo reboot
系統重啟後,再次登入並檢查核心版本:
uname -r
確認輸出的版本號碼與你剛剛安裝的版本一致。如果系統正常運作,網路、顯示卡與儲存裝置皆無異常,那麼這次升級就是成功的。
清理舊版核心
隨著時間推移,系統中會累積多個舊版核心映像檔,佔用 /boot 分區的空間。如果 /boot 空間不足,將導致無法安裝新核心。你可以使用以下指令自動清理過時的核心套件:
sudo apt autoremove --purge
這個指令會移除不再被任何套件依賴的舊版核心與標題檔案,釋放磁碟空間。建議定期執行此操作,但請務必確保至少保留兩個版本的核心:當前運行的版本與上一個版本,以便在最新版出現問題時能快速回滾。
常見問題與解決方案
1. 重啟後無法進入圖形介面或黑屏 這通常發生在 NVIDIA 顯示卡驅動程式或 DKMS 模組未正確編譯的情況下。解決方法是進入救援模式(Recovery Mode),選擇舊版核心啟動,然後重新安裝顯示卡驅動程式,或手動編譯 DKMS 模組。
2. 升級後網路介面名稱改變(如 eth0 變成 enp3s0)
這與核心版本無關,而是與 udev 規則有關。若發生此情況,請檢查 /etc/netplan/ 下的設定檔,確保網路配置採用穩定識別符(如 MAC 地址)而非介面名稱。
小結
Linux 核心升級並非一鍵完成的簡單動作,而是一個需要謹慎規劃的流程。透過「備份」、「漸進式驗證」與「定期清理」,你可以最大限度地降低升級風險。記住,在生產環境中,建議先在測試機上驗證新核心,確認無誤後再部署至正式伺服器。安全、穩定的核心,是系統長期可靠運行的基石。