如何升級過時的 Linux 發行版

升級至較新版本的 Linux 發行版對於保持安全、兼容性及獲得支援至關重要。本文提供逐步指引,協助你升級過時的系統。

重要提示: 在進行任何升級前,請備份重要資料,並確保系統有足夠磁碟空間及穩定的網絡連線。

一般備份策略

  • 家目錄:包含用戶檔案、設定及文件。

  • 系統設定檔案:儲存在 /etc,包括伺服器、網絡及用戶設定。

  • 資料庫:MySQL/MariaDB、PostgreSQL 等。

  • 網站或應用程式資料:儲存在 /var/www、自訂應用程式資料夾等。

  • 自訂腳本及服務:任何在 /usr/local、/opt 等非預設項目。

按發行版分類的備份範例

以下情境中,外置裝置已預先掛載至 /mnt/ 目錄。

Ubuntu / Debian

備份家目錄、資料庫及設定:

sudo apt update
sudo apt install rsync

例子:將 /home 及 /etc 備份到外置硬碟

sudo rsync -aAXv /home/ /mnt/backup/home/
sudo rsync -aAXv /etc/ /mnt/backup/etc/

可選:備份已安裝套件清單

dpkg --get-selections > package-list.txt

Fedora

sudo dnf install rsync

建立備份

sudo rsync -aAXv /home/ /mnt/backup/home/
sudo rsync -aAXv /etc/ /mnt/backup/etc/

列出已安裝套件

rpm -qa > installed-packages.txt

Debian:備份 APT 來源及設定

sudo cp -r /etc/apt /mnt/backup/etc-apt
sudo cp /etc/fstab /mnt/backup/

CentOS / Rocky / AlmaLinux

伺服器備份時,請包括:

sudo yum install rsync  # 或新版本使用 dnf

檔案及設定備份

sudo rsync -aAXv /home/ /mnt/backup/home/
sudo rsync -aAXv /etc/ /mnt/backup/etc/

MySQL/MariaDB 匯出

mysqldump -u root -p --all-databases > all-databases.sql

備份安全提示

  • 將備份儲存於獨立裝置,如外置硬碟或遠端伺服器。

  • 測試你的備份,若可行,請於虛擬機或測試伺服器還原。

  • 對於關鍵系統,請使用支援增量備份加密的工具(如 Borg 或 Restic)。

Ubuntu

Ubuntu 只允許按順序從一個版本升級到下一個版本,不能跳過版本。例如,若要從 16.04 升級至 20.04,必須先升級至 18.04,再由 18.04 升級至 20.04。

首先,請檢查升級前檢查清單,以妥善準備伺服器順利升級。

完成後即可進行下一步。

Ubuntu 使用do-release-upgrade進行版本升級。

要開始升級,請執行:

sudo do-release-upgrade

系統會進行檢查並顯示升級前摘要以供確認。過程中,可能會要求你對某些套件作出決定(如升級、保留或移除)。

升級結束時,系統會提示你重新啟動。只有在重新啟動後,升級才算完成。

Fedora

在嘗試升級至新 Fedora Linux 版本前,請確保系統及已安裝套件均為最新。升級有潛在風險,請務必備份資料,以便遇到問題時可還原。

要啟動升級,請依照以下步驟:

  1. 升級系統
    sudo dnf upgrade --refresh
    重新啟動伺服器

  2. 下載新版本套件(將 40 換成所需版本)
    sudo dnf system-upgrade download --releasever=40

  3. 重新啟動並開始升級
    sudo dnf system-upgrade reboot

升級完成後,系統會再次重新啟動,進入已更新的 Fedora Linux 版本。

Debian

在開始升級前,請務必備份資料,因升級有潛在風險,遇到問題時可能需要還原資料。

要更新 Debian 版本,請依照以下步驟:

步驟 1. 先確保系統於現有版本下已更新至最新。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get full-upgrade

步驟 2. 在文字編輯器中,將 APT 套件來源的發行版代號換成下一個版本的代號。
例如:
#    deb https://deb.debian.org/debian/ buster main
應更換為:

#    deb https://deb.debian.org/debian/ bullseye main
sudo nano /etc/apt/sources.list /etc/apt/sources.list.d/*

如你正遷移至 Bookworm 或更新版本,現已提供非自由韌體的新倉庫。
如有需要,可按實際情況加入 non-free 及 non-free-firmware。
例如:
#    deb https://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware

#    deb https://deb.debian.org/debian/ stable main contrib non-free non-free-firmware

步驟 3. 清理及更新套件清單
sudo apt-get clean
sudo apt-get update

步驟 4. 執行主要版本升級,如有需要移除套件:
sudo apt-get upgrade
sudo apt-get full-upgrade

步驟 5. 移除不再需要的套件。請檢查此清單:你可能希望保留部分套件:
sudo apt-get autoremove

步驟 6. 重新啟動以套用更改(可選,但建議執行)
sudo shutdown -r now

現在檢查 /etc/debian_version 及 /etc/os-release 的內容,應可看到已升級系統的資訊。

CentOS/Almalinux/Rocky Linux

這些作業系統不支援直接從一個主要版本升級至另一個主要版本。如要升級至新版本,必須全新安裝。

完整流程包括以下步驟:

  1. 備份所有需轉移至新系統的相關資料。
    包括但不限於:
    - 自訂用戶帳戶(特別是為特定用途手動建立的)
    - 自訂倉庫
    - 需於新系統重新安裝的手動安裝套件
    - 網站相關內容

    請確認伺服器負責的所有服務,包括資料庫、郵件伺服器、DNS 設定等。如不確定備份範圍,建議全部備份。你亦可諮詢開發人員或系統管理員以識別所有關鍵資料。

  2. 將備份儲存於現有伺服器以外的安全位置。
    確保備份安全儲存,並於需要還原時可存取。

  3. 以所需新版本重新安裝作業系統。

  4. 將備份還原至新系統。
    一般包括:
    - 重新建立用戶及群組
    - 還原資料庫
    - 重新上載網站檔案
    - 重新設定 DNS 記錄及其他所需服務

必須提供有效的電郵地址