ubuntu18.04替换启动内核
有时我们需要将 ubuntu 内核替换为我们需要的版本,这里给出了一个实现方式,在此实现中两个内核版本较为接近。
本文在 ubuntu 18.04 版本下完成。
- 下载 Linux 内核源码,并进入内核源码目录
- 安装编译时需要使用的工具,按照编译时给出的编译提示,灵活安装所需的工具链
sudo apt-get update
sudo apt-get install libncurses5-dev build-essential openssl openssl-dev flex bison libssl-dev #kernel-package
- 拷贝原系统中的配置文件做为编译内核源码使用的默认配置
cp -v /boot/config-$(uname -r) .config
# make localmodconfig # 这一命令不需要执行
- 按照自己需求配置待编译内核
make menuconfig
make savedefconfig #生成默认配置文件到本源码目录中
- 编译内核源码,需要注意的是,内核编译产物较多,将会占用十几甚至数十GB的存储空间,编译前使用
df
命令查看当前系统中剩余可用的存储空间,保证其足以完成内核编译任务
make -j4 #依据自己的CPU数自行编辑,或使用shell指令替换
- 安装编译产物
# sudo make modules_install
# 在ubuntu 16.04会有ramdisk过大而不能正常启动的情况出现,则使用下面的指令,裁剪一下
sudo make INSTALL_MOD_STRIP=1 modules_install
sudo make install
- 更新
grub
令其知道当前系统中有哪些内核可用
sudo update-grub
- 查看更新过的
grub
信息,是否有新增加的内核项
cat /boot/grub/grub.cfg | grep menuentry
- 修改
grub
配置文件/etc/default/grub
中的GRUB_DEFAULT
项,如
GRUB_DEFAULT="Ubuntu, with Linux 4.15.19"
- 更新
grub
信息
sudo update-grub
- 按照上一条命令执行给出的提示再次修改
grub
配置文件,如
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 4.15.19"
- 再次更新
grub
配置信息
sudo update-grub
- 重启系统,将会从指定内核启动
sudo reboot
- 启动后使用如下命令查看内核版本以及内核编译日期
uname -a