CentOS系统升级是一个复杂的过程,涉及到多个步骤和注意事项。以下是一个详细的CentOS系统升级指南,以CentOS 7为例,涵盖了从准备到升级的全过程。
升级前准备
- 备份重要数据:在进行任何系统更改之前,备份是至关重要的。确保备份/etc、/var、/opt等目录下的用户数据。
- 检查当前系统版本:使用命令
cat /etc/redhat-release
查看当前系统版本。 - 更新源配置:编辑
/etc/yum.repos.d/upgrade.repo
文件,确保使用最新的CentOS版本仓库。 - 安装必要的软件包:如
preupgrade-assistant-contents
和redhat-upgrade-tool
,这些工具在升级过程中起到关键作用。 - 评估升级风险:使用
preupgrade-assistant -s
等工具检查系统兼容性和潜在问题。
升级步骤
方法一:使用yum升级内核
-
导入ELRepo仓库:
- 更新yum源仓库:
yum -y update
- 导入ELRepo仓库的公共密钥:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
- 安装ELRepo仓库的yum源:
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
- 查询可用内核版本:
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
- 更新yum源仓库:
-
安装新内核:
- 选择要安装的内核版本,使用以下命令安装:
sudo yum --enablerepo=elrepo-kernel install kernel-ml
或sudo yum --enablerepo=elrepo-kernel install kernel-lt
根据需要选择适当的内核版本,kernel-ml
代表Mainline Kernel,是最新的稳定版本,kernel-lt
代表长期支持(LTS)版本。
- 选择要安装的内核版本,使用以下命令安装:
-
更新GRUB引导器:
- 查看系统上的所有可用内核:
sudo awk -F\' '$1=="menuentry "{printi++" : "$2}' /etc/grub2.cfg
- 将内核切换为最新安装的版本:
grub2-set-default 'CentOS Linux (最新版本) 7 (Core)'
- 重新生成引导信息:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- 查看系统上的所有可用内核:
-
重启服务器:
reboot
-
验证是否升级成功:
uname -r
方法二:编译安装新内核
-
安装编译环境:
yum groupinstall "Development Tools" -y && \ yum install -y \ openssl-devel \ rpm-build \ redhat-rpm-config \ asciidoc \ hmaccalc \ perl-ExtUtils-Embed \ pesign \ xmlto \ audit-libs-devel \ binutils-devel \ elfutils-devel \ elfutils-libelf-devel \ ncurses-devel \ newt-devel \ numactl-devel \ pciutils-devel \ python-devel \ zlib-devel \ rpm-build
-
下载内核源代码并解压:
wget https://mirrors.tuna.tsinghua.edu.cn/kernel/v6.x/linux-6.9.4.tar.gz tar -xzf linux-6.9.4.tar.gz cd linux-6.9.4
-
配置内核:
- 方法一:根据现有内核参数生成新的配置参数文件
.config
:cp /boot/config-3.10.0-957.el7.x86_64 .config make oldconfig
- 方法二:进入配置界面,保持默认配置:
make menuconfig
- 方法一:根据现有内核参数生成新的配置参数文件
-
编译安装内核:
make -j12
-
安装内核:
make modules_install make install
-
设置以后默认从新的内核启动:
grub2-set-default 0 grub2-mkconfig -o /boot/grub2/grub.cfg
-
重启服务器:
reboot
-
检查内核版本:
uname -r
-
删除多余内核:
rpm -qa | grep kernel yum remove <旧内核版本>
通过以上步骤,您可以成功地将CentOS系统升级到最新版本。请注意,内核升级属于高危操作,务必在了解操作风险的前提下进行,并在生产环境之外进行测试。