如果在正式環境升級,請做好數據備份以及重要配置備份!因為升級會造一部分應用被卸載。
注意:升級前請備份好數據,升級可能會導致ssh的root用戶無法登陸、網卡名稱發生改變、引導丟失無法開機等問題。
1.安裝epel源
yum -y install epel-release
2.更新系統至最新版本
防止升級時出現各種奇葩問題
yum -y update
3.重啟系統
reboot
4.安裝rpmconf和yum-utils
yum -y install rpmconf yum-utils
5.執行rpmconf
如果出現一些提示,請輸入Y和回車繼續,如果沒提示繼續第四步操作
rpmconf -a
6.安裝dnf
yum -y install dnf
7.移除yum和yum-metadata-parser
dnf -y remove yum yum-metadata-parser
8.安裝Centos-8-Stream的源和升級epel源
rpm -e --nodeps `rpm -qa|grep centos-release`
rpm -ivh --nodeps --force http://mirrors.nju.edu.cn/centos/8-stream/BaseOS/x86_64/os/Packages/centos-stream-release-8.6-1.el8.noarch.rpm
rpm -ivh --nodeps --force http://mirrors.nju.edu.cn/centos/8-stream/BaseOS/x86_64/os/Packages/centos-stream-repos-8-6.el8.noarch.rpm
rpm -ivh --nodeps --force http://mirrors.nju.edu.cn/centos/8-stream/BaseOS/x86_64/os/Packages/centos-gpg-keys-8-6.el8.noarch.rpm
dnf -y upgrade https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
dnf clean all
9.卸載centos7的內核
rpm -e --nodeps `rpm -qa|grep -i kernel`
10.升級到Centos-8-Stream
這一步一般會報錯,如果沒有報錯請進行下一步操作
?dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
執行完上面的命令之后如果報下面的錯,如果沒報下面的錯跳過這一步即可(請認真閱讀錯誤提示!)。
請把紅框里面的包名(可能有多個包,重復下面的步驟)替換到下面命令:命令:
find /var/cache/dnf/ -name *包名*
如:
find /var/cache/dnf/ -name *dracut-network-049-218.git20221019.el8.x86_64*
安裝rpm包如:
rpm -ivh --nodeps --force /var/cache/dnf/baseos-055ffcb2ec25a27f/packages/dracut-network-049-218.git20221019.el8.x86_64.rpm
之后往下操作:
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
?
發現報錯之后先卸載類似于圖上from package后面的包名
rpm -e --nodeps python36-rpmconf-1.0.22-1.el7.noarch
rpm -e --nodeps sysvinit-tools-2.88-14.dsf.el7.x86_64
卸載完后再次執行升級
?dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
11.重新安裝yum、rpmconf和yum-utils
rm -rf /etc/yum
dnf clean all
dnf -y install yum rpmconf yum-utils
12.安裝內核
(防止有些時候沒安裝內核開機失敗,開機失敗的可以用Centos8 ISO鏡像救援模式安裝內核)
dnf -y install kernel kernel-core
dnf -y install shim grub2-tools-extra grubby grub2-common grub2-pc
dnf -y install grub2-tools-efi grub2-tools-minimal grub2-efi grub2-pc-modules grub2-tools
13.安裝基礎環境
dnf -y groupinstall "Minimal Install"
14.執行rpmconf
會出現如下界面,一直輸入Y和回車即可
rpmconf -a
15.防止遷移完成后找不到引導
執行下面的命令,防止遷移完成后找不到引導,重啟開不了機,根據以下命令選擇分區表類型,根據分區表類型執行相關命令
查看分區表類型
fdisk -l
GPT分區表
MBR分區表
GPT分區(UFFI的BIOS)
export grubcfg=`find /boot/ -name centos`
grub2-mkconfig -o $grubcfg/grub.cfg
添加UEFI啟動項(注意/dev/nvme0n1為efi分區所在磁盤,需根據實際情況自行選擇磁盤路徑,具體參考上圖,-p后面是分區位置(默認為1),efi分區為/dev/nvme0n1p1值就是1,efi分區為/dev/nvme0n1p2值就是2)
efibootmgr -c -w -L "CentOS" -d /dev/nvme0n1 -p 1 -l \\EFI\\Boot\\bootx64.efi
MBR分區(傳統的BIOS、dos、msdos)(注意/dev/nvme0n1需根據實際情況自行選擇磁盤路徑,具體參考上圖)
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/nvme0n1
16.重啟機器
reboot