20200609 elrepo 5.7.1可以正常启动
经测试elrepo 5.7.1可以正常启动。在正文过程的基础上,更新方法简述:
sudo yum --enablerepo="elrepo-kernel" makecache fast sudo yum --disablerepo="*" --enablerepo="elrepo-kernel" list available sudo yum --enablerepo=elrepo-kernel install kernel-ml sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/centos/grub.cfg sudo grub2-set-default 0 sudo reboot
20200304 5.5.7内核无法启动
最近发现了问题:尝试从5.3.1内核更新至5.5.7内核时,系统无法启动,VNC提示如下:fb0: bochs-drmdrmfb frame buffer device。建议:1.暂时不要通过elrepo源更新内核;2.以后在升级任何内核时都不要删除旧版本内核。对于甲骨文,只要保留旧版本内核,可以通过VNC连接选择旧版内核启动系统来挽救。
以下为正文
Oracle 云申请的CentOS 7 系统,自带3.1内核,且为EFI引导,并默认开启SELinux,升级内核开启BBR易出现错误导致无法开机。开启原版BBR需要4.9以上内核,以下内容记录升级内核并开启BBR的过程。
更新系统
sudo yum update -y
查看内核
uname -r 3.10.0-1062.1.1.el7.x86_64
改SELinux为permissive模式
查看SELinux状态,默认开启:
sestatus
将enforcing改为permissive,如下:
sudo vi /etc/sysconfig/selinux
SELINUX=permissive
重启vps:
sudo reboot
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
查看可安装内核
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
安装内核
sudo yum --enablerepo=elrepo-kernel install kernel-ml
查看新内核是否安装成功
rpm -qa | grep kernel
这是一个容易出错的地方,以前碰到的启动配置文件,大多是在/boot/grub2/grub.cfg,而该系统为EFI引导,配置文件位置不同。
sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
列出系统开机的所有启动项
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/centos/grub.cfg
设置默认启动项
sudo grub2-set-default 0
重启VPS
sudo reboot
查看内核
uname -r
5.3.1-1.el7.elrepo.x86_64
开启bbr(直接抄袭大佬的全部内容)
执行 lsmod | grep bbr,如果结果中没有 tcp_bbr 的话就先执行:
sudo modprobe tcp_bbr
echo "tcp_bbr" | sudo tee --append /etc/modules-load.d/modules.conf
执行
echo "net.core.default_qdisc=fq" | sudo tee --append /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee --append /etc/sysctl.conf
保存生效
sudo sysctl -p
执行
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
如果结果都有 bbr,则证明你的内核已开启 BBR。
执行 lsmod | grep bbr,看到有 tcp_bbr 模块即说明 BBR 已启动。
重新开启SELinux
检查有无SELinux相关错误:
sudo cat /var/log/messages | grep "SELinux is preventing"
确保无错误后,再启用SELinux Enforcing 模式
sudo vi /etc/sysconfig/selinux
将permissive改回enforcing,如下修改:
SELINUX=enforcing
重启VPS
sudo reboot