🚀 別讓 CentOS 7 成為孤兒!從容遷移到 Rocky Linux / AlmaLinux 8 的無痛全攻略
🔥 一句話總結懶人包: 微軟已經正式終止對 CentOS 7 的支援與更新,就像一棟大樓突然宣布不再提供水電維修服務。想繼續安心居住?本文將手把手帶你「無痛搬家」,從 CentOS 7 升級到 CentOS 8,再平滑遷移到 Rocky Linux 8 或 AlmaLinux 8,完整 26 個步驟,讓你的伺服器安全再戰十年!本篇是在三台不同廠商的 VPS 主機上實測成功的「不踩雷」全紀錄。
各位台灣的 IT 管理員、MIS 網管人員,以及喜歡自己在家裡搞 Homelab 的技術同好們,最近在技術圈最熱門的話題之一,就是 CentOS 7 已經在 2026 年 6 月 30 日正式 EOL(End of Life,生命週期終止) 了!
這就像是你住在一棟管理費超便宜、地點又好的公寓大樓(CentOS 7),住了好多年,習慣了這裡的一切。結果某天管委會突然宣布:「這棟大樓從下個月開始不再提供水電維修、垃圾清運和保全服務,請所有住戶自行想辦法」。沒有官方安全更新,就等於你的伺服器門戶洞開,隨時可能被駭客盯上,這對任何需要對外服務的系統來說都是非常危險的。
我的好朋友最近就遇到了這個困擾。他想把伺服器從 CentOS 7 升級到 CentOS 8,結果在 VMware 和 VirtualBox 上測試了好幾次都卡關,不是套件衝突就是升級到一半整個系統崩潰,開機直接出現 「error: symbol ‘grub_real_boot_time’ not found. Entering rescue mode…」 這種讓人頭皮發麻的錯誤訊息。
為了解救廣大 CentOS 7 使用者的焦慮,我把這套在三家不同 VPS 主機商(包含國內外主流廠商)都測試成功的「不踩雷升級 SOP」完整記錄下來。整個過程可以想像成是 「幫你的伺服器進行一場心臟移植手術」:先從 CentOS 7 升級到 CentOS 8(換一顆新的心臟),然後再從 CentOS 8 無痛遷移到 Rocky Linux 8 或 AlmaLinux 8(換一個更強壯的身體)。這兩個發行版都可以穩定支援到 2029 年,讓你的伺服器擁有至少十年的安全保障。
⚠️ 重要提醒: 以下操作包含大量系統核心元件的變更與刪除,雖然我已經在三台不同環境的 VPS 上驗證過,但每台伺服器的安裝軟體與設定都不盡相同。強烈建議先在虛擬機或備份環境中進行測試,確認無誤後再於正式環境操作。升級過程中請全程保持網路連線穩定,並準備好緊急救援方案(如 VNC 或 IPMI 遠端管理)。
🟦 🟦 🟦
🛠️ 第一階段:老屋翻新 — 從 CentOS 7 升級到 CentOS 8
這個階段就像是把一棟老舊公寓的「基礎管線」全部換新。我們要先把 CentOS 7 的系統核心、套件管理工具(從 YUM 換成 DNF)、以及底層的軟體倉庫來源,全部調整到與 CentOS 8 相容的狀態。
📦 步驟 1:安裝常用軟體套件(幫工具箱補貨)
首先,我們要確保伺服器上已經具備了必要的基礎工具。這就像是進行家庭裝修前,先把螺絲起子、電鑽、扳手等工具準備齊全一樣。CentOS 7 的官方軟體源已經停止更新,所以我們必須先把軟體倉庫的來源指向「保存庫」(Vault),才能順利下載到所需的套件。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# 使用 2022 年 1 月起不再更新的「保存庫」(Vault)作為套件來源 sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-* sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-Linux-* # 以下為檢查指令,可確認倉庫設定是否正確(非必要,可自行選用) # grep -R "baseurl" /etc/yum.repos.d/CentOS-* # grep -R "mirrorlist" /etc/yum.repos.d/CentOS-* # cat /etc/yum.repos.d/CentOS-Base.repo | grep baseurl # cat /etc/yum.repos.d/CentOS-Base.repo | grep mirrorlist yum install -y epel-release sudo sudo yum upgrade -y epel-release sudo yum sudo yum install -y screen rpmconf yum-utils htop ncdu perl tar unzip gzip bzip2 ftp mtr traceroute mutt crontabs mlocate wget curl net-tools bind-utils lsof |
💡 碎碎念冷知識: 剛剛提到的「Vault」是 CentOS 官方提供的「歷史檔案庫」,裡面存放了所有已經結束生命週期(EOL)的 CentOS 版本軟體包。當一個版本不再被官方維護後,我們就必須把軟體源切換到 Vault,才能繼續下載屬於該版本的套件。
🔄 步驟 2 & 3:更新系統到最新版 + 重新啟動
工具都準備好了之後,我們要把 CentOS 7 系統本身的所有套件都更新到最新的可用版本。這就像是在搬家之前,先把家裡所有舊家具都擦拭保養一遍。
|
1 2 3 4 5 |
# 清空 YUM 的暫存檔案,確保沒有任何殘留的舊資料 sudo rm -rf /var/cache/yum/* sudo yum clean all sudo yum makecache sudo yum update -y |
更新完成之後,系統會安裝新的核心或重要套件,請務必重新啟動伺服器,確保所有更新都正確套用。
|
1 |
sudo systemctl reboot |
🔍 步驟 4:檢查目前作業系統版本
重新開機之後,先確認一下目前的作業系統版本是不是我們預期的狀態。此時應該還是 CentOS 7.9.2009,這是一個正常的檢查點,確保我們沒有跑錯階段。
|
1 2 3 |
clear cat /etc/*-release yum info centos-release |
🟩 🟩 🟩
📋 步驟 5 & 6:建立 Screen 工作階段 + 解決設定檔衝突
接下來的步驟會比較複雜,而且執行時間可能很長。建議先建立一個「Screen」工作階段。這就像是把你的終端機畫面放在一個「虛擬抽屜」裡,即使你的 SSH 連線突然斷掉(比如網路不穩),重新連線後可以用
|
1 |
screen -r |
指令把抽屜打開,所有進行中的工作都還在,不會中斷。
|
1 2 3 4 5 6 |
# 建立一個名為 CentOSUpgrade 的 Screen 工作階段 screen -S CentOSUpgrade # 如果連線中斷,重新連線後使用以下指令恢復工作階段 # screen -r CentOSUpgrade |
接著,我們要處理「設定檔衝突」的問題。由於 CentOS 7 和 CentOS 8 的許多系統設定檔格式不一樣,直接升級會導致衝突。
|
1 |
sudo rpmconf -a |
這個指令會自動比對新舊版本的設定檔差異,過程中會一直問你要保留舊檔還是安裝新檔,如果沒有特殊需求,一路按 Enter 採用新版本就可以了。
|
1 |
sudo rpmconf -a |
🧹 步驟 7:系統「大掃除」— 移除孤兒套件、安裝 DNF
這一步是系統升級的核心。我們要把 CentOS 7 的套件管理器從 YUM 換成 DNF,並把系統的軟體倉庫切換到 CentOS 8 的版本。這就像是 「拆掉舊的廚房管線,然後安裝全新的一組」,過程會比較劇烈,但必須這麼做。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# 清除已不再被依賴的孤兒套件(Orphan Packages) package-cleanup --leaves package-cleanup --orphans # 安裝新一代的 DNF 套件管理器(DNF 是 YUM 的進化版,速度更快、依賴解析更聰明) sudo yum install -y dnf dnf-plugins-core # 移除舊的 YUM 套件管理器 sudo dnf remove -y yum yum-metadata-parser sudo rm -rf /var/cache/yum/* # 使用 DNF 執行系統更新,並允許「取代」有衝突的套件 sudo dnf update -y --best --allowerasing # 強制安裝 CentOS 8 的軟體倉庫設定檔(Repository) sudo dnf install -y https://vault.centos.org/centos/8/BaseOS/x86_64/os/Packages/{centos-linux-repos-8-3.el8.noarch.rpm,centos-linux-release-8.5-1.2111.el8.noarch.rpm,centos-gpg-keys-8-3.el8.noarch.rpm} # 安裝 EPEL(Extra Packages for Enterprise Linux)8 的軟體源 sudo dnf upgrade -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm # 驗證軟體倉庫是否正確載入 clear dnf repolist |
🐍 步驟 8:修改 Python 編碼預設為 UTF-8
CentOS 7 內建的 Python 2.7 在某些環境下可能會有編碼問題。我們建立一個自定義的 Python 設定檔,強制將預設編碼設為 UTF-8,避免後續的升級腳本因為編碼錯誤而中斷。這就像是在廚房裡貼一張「所有食材請用公克標示」的提醒,避免不同單位換算搞混。
|
1 2 3 4 5 6 7 8 9 |
cat <<"EOF" > /usr/lib/python2.7/site-packages/sitecustomize.py # encoding=utf8 import sys reload(sys) sys.setdefaultencoding('utf8') EOF clear cat /usr/lib/python2.7/site-packages/sitecustomize.py |
🗑️ 步驟 9:刪除 CentOS 7 的舊版核心
CentOS 7 和 CentOS 8 使用的 Linux 核心版本不同。我們先把舊的 7.x 核心移除,避免開機時選單混亂。這一步請務必確認你已經成功安裝了 CentOS 8 的新核心(在步驟 13 會安裝),否則刪除後可能無法正常開機。
|
1 2 3 4 5 6 |
# 查看目前安裝的核心清單(檢查用) # rpm -qa | grep kernel # dnf info kernel # 強制移除所有舊核心(請謹慎操作!) sudo rpm -e `rpm -q kernel` |
🔧 步驟 10:重建 RPM 資料庫
RPM(Red Hat Package Manager)是 Linux 底層的套件管理資料庫。經過前面大量套件的安裝、刪除和更新,資料庫可能會產生一些不一致的狀況。我們將它重建,確保套件管理系統的狀態是完全正確的。這就像是在銀行月底結帳時,重新比對所有帳目,確保沒有任何錯誤。
|
1 2 3 |
rm -rf /var/lib/rpm/__db.* sudo rpm -Va --nofiles --nodigest sudo rpm --rebuilddb |
🟪 🟪 🟪
⚡ 步驟 11:移除衝突的軟體套件(最關鍵的一步!)
🚨 畫重點!千萬別踩雷: 這一步是整個升級過程中的「魔王關卡」。CentOS 7 和 CentOS 8 有些軟體套件的名稱雖然很像,但實際檔案內容不同,直接升級會導致檔案衝突而失敗。我們的解法是:「只從資料庫中刪除記錄(–justdb),但不實際刪除硬碟上的檔案」,然後直接安裝 CentOS 8 的新版本。這就像是換房客時,先把舊的租約(資料庫紀錄)作廢,但不急著把房間清空,然後直接跟新房客簽約入住。
這裡列出的套件是根據實測經驗整理出來的「絕對必須處理」的清單。如果你的系統有其他特殊套件也可能產生衝突,建議在執行前先備份完整的套件清單,並仔細觀察錯誤訊息。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# ========== 處理 dracut-network ========== sudo rpm -e --nodeps --justdb dracut-network-033-572.el7.x86_64 sudo rpm -ivh --nodeps --force https://vault.centos.org/centos/8/BaseOS/x86_64/os/Packages/dracut-network-049-191.git20210920.el8.x86_64.rpm # ========== 處理 iprutils ========== sudo rpm -e --nodeps --justdb iprutils-2.4.17.1-3.el7_7.x86_64 sudo rpm -ivh --nodeps --force https://vault.centos.org/centos/8/BaseOS/x86_64/os/Packages/iprutils-2.4.19-1.el8.x86_64.rpm # 替代來源(若官方連結失效可使用): # sudo rpm -ivh --nodeps --force https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64/getPackage/iprutils-2.4.19-1.el8.x86_64.rpm # ========== 處理 initscripts ========== sudo rpm -e --nodeps --justdb initscripts-9.49.53-1.el7_9.1.x86_64 sudo rpm -ivh --nodeps --force https://vault.centos.org/centos/8/BaseOS/x86_64/os/Packages/initscripts-10.00.15-1.el8.x86_64.rpm # 替代來源: # sudo rpm -ivh --nodeps --force https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64/getPackage/initscripts-10.00.18-1.el8.x86_64.rpm # ========== 處理 python3-setuptools ========== sudo rpm -e --nodeps --justdb python3-setuptools-39.2.0-10.el7.noarch sudo rpm -ivh --nodeps --force https://vault.centos.org/centos/8/BaseOS/x86_64/os/Packages/python3-setuptools-39.2.0-6.el8.noarch.rpm # 替代來源: # sudo rpm -ivh --nodeps --force https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64/getPackage/python3-setuptools-39.2.0-7.el8.noarch.rpm # ========== 處理 python3-pip ========== sudo rpm -e --nodeps --justdb python3-pip-9.0.3-8.el7.noarch sudo rpm -ivh --nodeps --force https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/python3-pip-9.0.3-20.el8.noarch.rpm # 替代來源: # sudo rpm -ivh --nodeps --force https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/python3-pip-9.0.3-24.el8.noarch.rpm # ========== 處理 python36-rpmconf → python3-rpmconf ========== sudo rpm -e --nodeps --justdb python36-rpmconf-1.1.7-1.el7.1.noarch sudo rpm -ivh --nodeps --force https://kojipkgs.fedoraproject.org/packages/rpmconf/1.1.7/2.el8.1/noarch/python3-rpmconf-1.1.7-2.el8.1.noarch.rpm |
🔄 特殊情況:如果是從 osboxes.org 的 VirtualBox 虛擬機升級
如果你使用的是 osboxes.org 提供的預先配置 VirtualBox 映像檔,可能還會遇到 flatpak 或 gcc 的衝突問題。以下提供額外的處理方式:
|
1 2 3 4 5 6 7 |
# ========== 處理 flatpak(VirtualBox 映像檔常見問題) ========== sudo rpm -e --nodeps --justdb flatpak-1.0.9-13.el7_9.x86_64 sudo rpm -ivh --nodeps --force https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/flatpak-1.8.5-5.el8_5.x86_64.rpm # ========== 處理 gcc 編譯器(若有 gcc 相關錯誤訊息時使用) ========== sudo rpm -e --nodeps --justdb gcc-4.8.5-44.el7.x86_64 sudo rpm -ivh --nodeps --force https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/gcc-8.5.0-4.el8_5.x86_64.rpm |
🔄 步驟 12:執行「發行版同步」(Distro-Sync)
這是整個升級過程中的最後一個「大動作」。「Distro-Sync」會強制將系統上所有套件,都強制成為目標發行版(CentOS 8)所規定的版本,無論是升級、降級還是重新安裝,一切都以 CentOS 8 的標準為準。這就像是把一棟房子裡的所有家具、電器、管線,全部換成新大樓規格統一的型號。
|
1 2 3 4 5 6 |
# 清除快取並重新建立 DNF 的套件清單 sudo dnf clean all sudo dnf makecache # 執行發行版同步(這一步可能需要 5-10 分鐘,請耐心等待) sudo dnf distro-sync -y --allowerasing --setopt=deltarpm=false --releasever=8 |
⚠️ 除錯指引: 如果這一步出現任何錯誤(例如套件衝突、依賴缺失),請回到 步驟 10 重新執行重建 RPM 資料庫的指令,然後再次嘗試執行 distro-sync。多數情況下,重建資料庫後就能解決問題。
🔷 🔷 🔷
🎉 第二階段:換上新心臟 — 在 CentOS 8 中安裝新核心
恭喜!到目前為止,你的系統已經成功從 CentOS 7 升級到 CentOS 8 的架構了。現在我們要安裝 CentOS 8 專屬的 Linux 核心,並確認系統的每個角落都已經更新到 CentOS 8 的版本。
🧠 步驟 13 & 14:安裝新核心 + 最小化安裝
|
1 2 3 4 5 |
# 安裝 CentOS 8 的標準核心 sudo dnf install -y kernel-core # 執行 CentOS 8 的最小化安裝(確保所有基礎元件都是 CentOS 8 版本) sudo dnf -y groupupdate "Core" "Minimal Install" |
📦 步驟 15:確認常用軟體都已安裝
為了避免升級過程中某些工具被不小心移除,這裡再次檢查並安裝常用軟體。這就像是在搬家完之後,清點一下家裡常用的工具都還在不在。
|
1 2 3 4 5 6 |
sudo dnf install -y grubby grub2 grub2-tools-extra grub2-common grub2-pc \ grub2-tools-efi grub2-tools-minimal grub2-efi grub2-pc-modules grub2-tools \ NetworkManager network-scripts shim screen rpmconf yum-utils \ htop ncdu perl tar unzip gzip bzip2 \ ftp mtr traceroute mutt wget curl \ net-tools bind-utils lsof mlocate crontabs |
🔍 步驟 16 & 17:檢查作業系統版本與開機選項
此刻,你應該會看到 「CentOS Linux release 8.5.2111」 的訊息,代表系統核心已經順利升級到 CentOS 8。同時,我們也要確認 GRUB 開機選單的預設選項已經指向 CentOS 8 的新核心。
|
1 2 3 4 5 6 7 |
# 檢查目前作業系統版本 clear cat /etc/*-release # 檢查 GRUB 開機選單的預設選項是否為 CentOS 8 sudo grubby --info DEFAULT | grep CentOS # 預期輸出範例:title="CentOS Linux (4.18.0-348.7.1.el8_5.x86_64) 8" |
🔄 步驟 18 & 19 & 20:重新啟動、更新、再次建立 Screen
現在我們要重新開機,讓系統正式以 CentOS 8 的核心啟動。開機完成後,再次檢查並安裝最新的更新,確保一切都在最新狀態。最後,由於接下來的遷移步驟(從 CentOS 8 到 Rocky/AlmaLinux)也需要一段時間,建議再次建立一個 Screen 工作階段來保護你的操作進度。
|
1 2 3 4 5 6 7 8 9 10 11 |
# 重新啟動系統 sudo systemctl reboot # ---- 重新連線後,執行以下指令 ---- # 確保有 CentOS 8 的最新更新 sudo dnf clean all sudo dnf makecache sudo dnf upgrade -y --refresh # 再次建立 Screen 工作階段 screen -S CentOSUpgrade |
🟫 🟫 🟫
🏠 第三階段:搬新家 — 從 CentOS 8 遷移到 Rocky / AlmaLinux 8
CentOS 8 雖然已經成功運作,但 CentOS 8 本身的生命週期也將在 2029 年結束。為了更長遠的打算,我們可以把它「轉換」成與 CentOS 100% 相容、且由社群長期維護的 Rocky Linux 或 AlmaLinux。這就像是從一間快要被都更的房子,搬到一間結構類似、但可以再住十年的新家。Rocky Linux 和 AlmaLinux 兩者都承諾支援到 2029 年,青菜蘿蔔各有所好,你可以自由選擇。
🔥 快速選擇指南: Rocky Linux 的創辦人是 CentOS 的原始創辦人 Gregory Kurtzer,延續了 CentOS 的原始精神;AlmaLinux 則是由 CloudLinux 公司贊助,背後有商業公司的資源支援。兩者都完全相容 RHEL(Red Hat Enterprise Linux),你可以根據自己的偏好選擇。本篇教學兩種都會介紹!
📥 步驟 21:下載並執行遷移腳本
選項 A:遷移到 Rocky Linux 8
Rocky Linux 官方提供了一個非常方便的遷移腳本
|
1 |
migrate2rocky.sh |
,它可以自動偵測系統環境,把所有 CentOS 8 的套件和設定轉換成 Rocky Linux 的版本。
|
1 2 3 4 |
cd /opt wget https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh chmod +x migrate2rocky.sh sudo bash migrate2rocky.sh -r |
執行過程中會看到大量的套件更新訊息,如果一切正常,畫面會顯示 綠色的「成功」字樣。視系統效能而定,整個過程約需 5 到 10 分鐘。遷移成功後,腳本會自動提示你重新啟動系統。
選項 B:遷移到 AlmaLinux 8
AlmaLinux 也提供了類似的遷移工具 almalinux-deploy.sh,操作方式非常雷同。兩個腳本都經過大量實測,穩定性都很高。
|
1 2 3 4 |
cd /opt wget https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh chmod +x almalinux-deploy.sh sudo bash almalinux-deploy.sh |
⚠️ 除錯指引: 如果遷移腳本執行過程中出現錯誤,請先回到 步驟 24 重建 RPM 資料庫,並確認所有 CentOS 的舊軟體倉庫都已經被移除(步驟 25),然後再重新執行遷移腳本。這個問題通常發生在舊版本的 CentOS 倉庫設定檔與新發行版的倉庫設定檔互相衝突時。
🔍 步驟 22 & 23:檢查作業系統版本與開機選項
遷移成功並重新開機後,再次檢查作業系統版本。此時你應該會看到系統已經變成了「Rocky Linux 8.10 (Cerulean Leopard)」或「AlmaLinux 8.10 (Cerulean Leopard)」。同時,也要確認 GRUB 開機選單的預設選項已經正確指向新的發行版核心。
|
1 2 3 4 5 6 7 8 9 10 11 |
# 檢查目前作業系統版本 clear cat /etc/*-release # 檢查 GRUB 開機選單(依據你的選擇,將 Rocky 換成 AlmaLinux) sudo grubby --info DEFAULT | grep Rocky # 預期輸出範例(Rocky Linux):title="Rocky Linux (4.18.0-553.5.1.el8_10.x86_64) 8.10 (Green Obsidian)" # 預期輸出範例(AlmaLinux):title="AlmaLinux (4.18.0-553.5.1.el8_10.x86_64) 8.10 (Cerulean Leopard)" # 重新啟動系統 sudo systemctl reboot |
🧹 步驟 24、25、26:清理戰場與最後更新
最後,我們要進行系統的「收尾工作」:重建 RPM 資料庫確保所有套件資訊正確、移除殘留的 CentOS 軟體倉庫設定檔,並執行最後一次系統更新,確保你的 Rocky/AlmaLinux 系統處於最新的安全狀態。
|
1 2 3 4 5 6 7 8 9 10 11 |
# 步驟 24:重建 RPM 資料庫(確保一切正常) rm -rf /var/lib/rpm/__db.* sudo rpm -Va --nofiles --nodigest sudo rpm --rebuilddb # 步驟 25:移除殘留的 CentOS 軟體倉庫設定檔 sudo rm -f /etc/yum.repos.d/CentOS-* # 步驟 26:執行最後一次系統更新 sudo dnf makecache sudo dnf upgrade -y --refresh |
✅ 恭喜完成! 到這裡,你的伺服器已經成功從 CentOS 7 升級到 Rocky Linux 8(或 AlmaLinux 8)了!你的系統現在可以安全地持續獲得更新支援直到 2029 年,再也不用擔心因為 EOL 而暴露在安全風險之下了!
🟩 🟩 🟩
🏁 總結:擺脫 EOL 焦慮,迎接十年穩定的新時代
看完這篇落落長、多達 26 個步驟的完整教學,你可能會覺得有點複雜,但這確實是目前市面上最完整、最可靠的 CentOS 7 就地升級方案。我們把整個流程拆解成三個主要階段:
- 第一階段(步驟 1-12): 將 CentOS 7 的系統核心和套件管理工具,徹底轉換為 CentOS 8 的版本。
- 第二階段(步驟 13-20): 安裝 CentOS 8 的新核心,並透過「最小化安裝」讓所有系統元件都對齊 CentOS 8 的標準。
- 第三階段(步驟 21-26): 利用官方遷移腳本,從 CentOS 8 無痛轉換到 Rocky Linux 8 或 AlmaLinux 8,獲得至少到 2029 年的長期支援。
這個方法的優點是:不需要重新安裝系統、不需要重新設定所有服務、也不需要重新部署應用程式,所有資料、設定檔和軟體都會被保留,真正實現「無痛搬家」。
當然,由於這套流程涉及大量系統底層元件的更換,強烈建議在正式執行之前,先在虛擬機環境(VMware、VirtualBox)或測試伺服器上完整演練一次,確認所有步驟在你的特定環境中都能順利執行,再於正式環境操作。
🚀 升級完成後,你就可以繼續安心使用你的伺服器,
再也不用擔心「CentOS 7 EOL」這個令人焦慮的話題了!🎉
🔷 🔷 🔷
※ 本文操作步驟與指令參酌自 Rocky Linux / AlmaLinux 官方遷移文件、技術社群實測經驗,以及作者在三家不同 VPS 主機商的實際驗證。
※ 實際執行狀況會因伺服器安裝的額外軟體、網路環境與硬體規格而略有不同,請以現場操作為準。
