您的位置:首页 > 运维架构 > Linux

CentOS7 更换内核

2018-01-01 16:38 369 查看
#使用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.confecho "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

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

# 验证 bbr 是否开启,如果成功,应该会看到 net.ipv4.tcp_congestion_control = bbrsysctl net.ipv4.tcp_available_congestion_control
# 依然是验证,如果成功,应该会看到类似 tcp_bbr 16384 3 这样的文字
lsmod | grep bbr
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  内核 BBR