Linux系统中,内核是操作系统的核心组件,负责管理硬件资源、系统进程以及与外部设备的交互,随着技术的不断发展,新的内核版本不断推出,带来了性能提升、安全补丁和新功能,定期升级内核对于保持系统的安全性和高效性至关重要,以下是几种常见的升级Linux内核的方法:
通过包管理器升级
更新软件源
确保系统的软件源是最新的,对于基于Debian的系统(如Ubuntu),可以使用以下命令:
sudo apt update
对于基于Red Hat的系统(如CentOS),则使用:
sudo yum update
查找可用内核版本
在Debian/Ubuntu系统中,可以通过以下命令查看可用的内核版本:
apt list | grep linux-image
在CentOS中,如果启用了ELRepo仓库,可以列出可用的内核版本:
sudo yum --disablerepo="" --enablerepo="elrepo-kernel" list available
安装新内核
选择适合的内核版本进行安装,在Debian/Ubuntu系统中安装特定版本的内核:
sudo apt install linux-image-6.1.0-31-rt-amd64
在CentOS中,使用ELRepo仓库安装新内核:
sudo rpm -ivh https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.278-1.el7.elrepo.x86_64.rpm
更新GRUB配置
安装新内核后,需要更新GRUB配置文件以确保新内核出现在启动菜单中,在Debian/Ubuntu系统中:
sudo update-grub
在CentOS中:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
重启系统并验证
重启系统后,在GRUB菜单中选择新安装的内核版本启动,启动后,使用以下命令验证内核版本:
uname -r
通过源码编译升级
下载内核源码
从Linux内核官方网站下载所需版本的内核源码,下载6.7.1版本:
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.7.1.tar.xz
将源码解压到指定目录:
sudo tar -xvf linux-6.7.1.tar.xz -C /usr/src/
安装依赖包
编译内核需要一些必要的工具和库,在Debian/Ubuntu系统中:
sudo apt install flex bison bc build-essential libssl-dev libelf-dev libncurses-dev
在CentOS中:
sudo yum groupinstall "Development Tools" sudo yum install ncurses-devel openssl-devel elfutils-libelf-devel
配置内核选项
进入内核源码目录并复制现有内核的配置文件:
cd /usr/src/linux-6.7.1/ sudo cp /boot/config-$(uname -r) ./.config
然后运行配置命令:
make menuconfig
根据需要调整内核选项,保存并退出。
编译并安装内核
编译内核是一个耗时的过程,可以使用多线程加速:
sudo make -j$(nproc) sudo make modules_install sudo make install
更新GRUB配置并重启
与包管理器升级相同,更新GRUB配置:
sudo update-grub # Debian/Ubuntu sudo grub2-mkconfig -o /boot/grub2/grub.cfg # CentOS
重启系统并选择新内核启动。
使用第三方工具升级
Mainline(适用于Ubuntu)
Mainline是一个图形化工具,简化了内核升级过程,首先添加PPA源:
sudo add-apt-repository ppa:cappelikan/ppa sudo apt update
安装并启动Mainline:
sudo apt install mainline sudo mainline
在Mainline界面中选择所需的内核版本进行安装。
ELRepo(适用于CentOS)
ELRepo提供了许多新版本的内核供CentOS使用,首先导入GPG密钥并安装ELRepo仓库:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-6.el7.elrepo.noarch.rpm
然后启用ELRepo仓库并安装新内核:
sudo yum --disablerepo="" --enablerepo="elrepo-kernel" list available sudo yum --enablerepo="elrepo-kernel" install kernel-ml-devel
双内核共存与回退方案
为了确保系统的稳定性,建议在升级内核时保留旧内核,以便在出现问题时能够回退,以下是实现双内核共存的步骤:
备份当前内核配置
在进行任何操作之前,备份当前的内核配置文件:
cp /boot/config-$(uname -r) /boot/config-$(uname -r)-backup
安装新内核但保留旧内核
按照上述方法安装新内核,不要卸载或删除旧内核,这样在GRUB启动菜单中会同时出现新旧内核选项。
设置默认启动项(可选)
如果希望默认启动新内核,可以修改GRUB配置:
sudo nano /etc/default/grub
将GRUB_DEFAULT
设置为新内核的条目,
GRUB_DEFAULT=0 # 0表示第一个条目,通常是新内核
然后更新GRUB配置:
sudo update-grub # Debian/Ubuntu sudo grub2-mkconfig -o /boot/grub2/grub.cfg # CentOS
回退到旧内核的方法
如果新内核出现问题,可以在启动时选择旧内核,具体操作如下:
- 重启系统并在启动画面按下
Shift
键(某些系统可能需要按Esc
键)。 - 在GRUB菜单中选择旧内核版本启动
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/59077.html