linux切换内核版本

内核文件包含:

1
2
3
linux-image-版本号:内核映像文件
linux-headers-版本号:内核头文件
linux-image-extra-版本号:内核扩展文件

切换到固定内核版本#

  1. 虚拟机安装 ubuntu 16.04

  2. 装一些软件

1
2
apt update
apt install vim
  1. 修改/etc/apt/sources.list,加入
1
deb http://security.ubuntu.com/ubuntu trusty-security main
  1. 查看版本内核
1
uname -r
  1. 查找可以切换的内核
1
apt-cache search linux
  1. 安装新内核
1
2
apt update
apt-get install linux-image-3.13.0-24-generic linux-headers-3.13.0-24-generic linux-image-extra-3.13.0-24-generic
  1. 查看是否成功
1
dpkg -l | grep 3.13.0-24-generic
  1. vim修改grub配置文件/etc/default/grub

1
GRUB_DEFAULT=0

修改为

1
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-24-generic"

或者一句话

1
sed -ir "s/GRUB_DEFAULT=.*/GRUB_DEFAULT=\"Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-24-generic\"/g" /etc/default/grub
  1. 更新grub
1
update-grub
  1. 重启 reboot
  2. 查看新内核uname -r

切换到自编译版本#

  1. 下载linux kernel源码并解压
1
2
wget -c https://github.com/torvalds/linux/archive/v5.10-rc6.zip
unzip v5.10-rc6.zip
  1. 安装依赖
1
2
apt update
sudo apt-get install ncurses-dev bison flex libssl-dev bc libelf-dev
  1. 在源码根目录下配置文件
1
menuconf
  1. 为了防止突然中断导致失败,重新编译还是会重新编译已编译的文件,所有选择使用ccache进行加速
1
apt install ccache

修改.bashrc,加入

1
2
3
4
export CCACHE_DIR="/root/.ccache" 
export CC="ccache gcc"
export CXX="ccache g++"
export PATH="/usr/lib/ccache:$PATH"

source ~/.bashrc

修改缓存大小

1
ccache -M 10G
  1. 安装模块和内核和内核文件头
1
2
3
make modules_install
make install
make headers_install
  1. 修改/etc/default/grub,将GRUB_CMDLINE_LINUX_DEFAULT设为text
1
2
3
4
5
6
7
GRUB_DEFAULT=0
# GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-24-generic"
GRUB_HIDDEN_TIMEOUT=
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="text"
  1. 更新grub
1
update-grub
  1. 重启reboot
  2. 查看新内核uname -r

新建用户#

1
2
3
sudo useradd -m meow -s /bin/bash
sudo passwd meow
su meow

参考资料#

评论