CentOS7 更换内核

#使用cat /boot/grub2/grub.cfg |grep menuentry 查看系统可用内核

[root@bigapp-slave27 ~]# cat /boot/grub2/grub.cfg |grep menuentry

if [ x"${feature_menuentry_id}" = xy ]; then

menuentry_id_option="--id"

menuentry_id_option=""

export menuentry_id_option

menuentry 'CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-6f5840d0-55ac-4d3b-899b-61c0297c5347' {

menuentry 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-6f5840d0-55ac-4d3b-899b-61c0297c5347' {

menuentry 'CentOS Linux (0-rescue-d57307c454c0437d91c309347178cdf5) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-d57307c454c0437d91c309347178cdf5-advanced-6f5840d0-55ac-4d3b-899b-61c0297c5347' {

#查看当前内核

[root@bigapp-slave27 ~]# uname -r

3.10.0-514.16.1.el7.x86_64

#修改开机时默认使用的内核

grub2-set-default 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)'

#查看内核修改结果

[root@bigapp-slave27 ~]# grub2-editenv list

saved_entry=CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)

#查看系统安装了哪些内核包

[root@bigapp-slave27 ~]# rpm -qa |grep kernel

kernel-3.10.0-327.el7.x86_64

kernel-headers-3.10.0-514.6.1.el7.x86_64

kernel-tools-libs-3.10.0-327.el7.x86_64

kernel-3.10.0-514.16.1.el7.x86_64

kernel-tools-3.10.0-327.el7.x86_64

#使用yum remove 或rpm -e 删除无用内核

yum remove kernel-3.10.0-327.el7.x86_64

在 CentOS 7 中升级内核

大多数现代发行版提供了一种使用yum 等包管理系统和官方支持的仓库升级内核的方法。

但是,这只会升级内核到仓库中可用的最新版本 - 而不是在https://www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允许使用前者升级内核。

与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。

要在 CentOS 7 上启用 ELRepo 仓库,请运行:

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

在 CentOS 7 启用 ELRepo

仓库启用后,你可以使用下面的命令列出可用的内核相关包:

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

# 先卸载旧的内核包,主要是这些,保留内核

kernel-debug-devel

kernel-tools-libs

kernel-tools

kernel-headers

保留这个:

kernel

然后执行这个命令就是安装最新的稳定版本。

yum --enablerepo=elrepo-kernel install kernel-ml

接下来,安装最新的主线稳定内核:

# yum --enablerepo=elrepo-kernel install kernel-ml

跟着再安装kernel-ml-headers kernel-ml-tools kernel-ml-tools-libs

然后

awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg

看看内核启动顺序,然后

grub2-set-default 0

把kernel-ml 4.13最新稳定版设为默认,重启

步骤 3:设置 GRUB 默认的内核版本

为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置:

打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。

GRUB_TIMEOUT=5

GRUB_DEFAULT=0

GRUB_DISABLE_SUBMENU=true

GRUB_TERMINAL_OUTPUT="console"

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"

GRUB_DISABLE_RECOVERY="true"

接下来运行下面的命令来重新创建内核配置。

# grub2-mkconfig -o /boot/grub2/grub.cfg

重启并验证最新的内核已作为默认内核。

# uname -sr

修改sysctl 开启 BBR

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf

echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

# 加载 /etc/sysctl.conf 文件中的参数并显示,主要看看有没有报错的设置(显示的结果与你的配置文件内容有关)

sysctl -p

# 验证 bbr 是否开启,如果成功,应该会看到 net.ipv4.tcp_congestion_control = bbr

sysctl net.ipv4.tcp_available_congestion_control

# 依然是验证,如果成功,应该会看到类似 tcp_bbr 16384 3 这样的文字

lsmod | grep bbr


分享到:


相關文章: