编译内核并替换内核

以5.3.8(最新)Linux 内核为例

  1. 下载内核源码

https://mirrors.edge.kernel.org/pub/linux/kernel下载所需的内核源码.

wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.3.8.tar.xz
  1. 安装内核编译所需的环境
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
  1. 解压内核源码
xz -d linux-5.3.8.tar.xz && tar xvf linux-5.3.8.tar
  1. 内核编译配置文件.config的生成

可以拷贝当前系统的内核配置文件到源码目录,也可以自己通过menuconofig选择需要编译的feature,当然也可以在当前系统的内核配置文件基础上运行menuconfig进行修改.

# 进入源码根目录
cd ~/下载/linux-5.3.8
# 拷贝当前系统内核配置文件
cp -v /boot/config-$(uname -r)  .config
# make menuconfig
  1. 编译内核
make -j $(nproc)
  1. 安装编译生成的modules
sudo make modules_install
  1. 安装新内核相关文件
sudo make install
  1. 重启
reboot
  1. 在重启的grub界面选择想要进入的内核版本即可

部分ubuntu版本在grub时默认显示可选择的内核版本,部分ubuntu版本在grub时需要进入ubuntu高级选项才能看到可选择的内核版本.


附:

ubuntu18.04在编译之后无法看到grub引导界面,而是直接以新内核启动了系统,因此无法选择需要启动的内核版本问题

该问题是由grub设置导致的,需要修改grub的配置文件

sudo vim /etc/default/grub

将文件中的GRUB_TIMEOUT_STYLE选项的值从hidden改为menu

如果GRUB_TIMEOUT选项的值为0,则修改为5或10,该选项在GRUB_TIMEOUT_STYLEmenu时,为grub进入默认引导项的倒计时等待时间.

修改grub配置文件后需要允许以下命令,以更新grub设置.

sudo update grub

然后重启即可.

reboot

posted @ 2021-02-24 11:17  EwanHai  阅读(997)  评论(0编辑  收藏  举报