0. 基本命令

uname -a   # 查看当前所使用内核
dpkg -l | grep linux   # dpkg后是lmn的l。查看当前操作系统的内核
dekg -l | grep linux-image  

1. 下载特定版本内核

(1)  命令行

sudo dpkg --get-selections |grep linux-image

sudo apt-get install linux-image-*****

这种方法,网上有不少例子可参考。

(2) synaptic

synaptic是一个很好图形化界面,可以通过搜索来快速定位所需安装的内核。

sudo apt-get install synaptic       # 安装
sudo synaptic                       # 打开

主要参考【1】,大致方法: 搜索 -- 选中所需安装的内核,右键 选择“选中以便安装 ”(Mark for Installation) -- (软件最上方)应用(apply)-- 查看细节(show details) ,再次确认是否正确选中了想要的版本 -- 应用 (apply),【1】中举了个例子“一般来说普通电脑需要更换的为headers和image,不要选错了。请直接找到需要更换的headers,如:需要更换 linux-headers-4.15.0-13-generic,右击选择“Mark for Installation”。可以看到 linux-headers-4.15.0-13也被顺便勾起来了,这个也是必要的,请不要取消。往下找,找到linux-image-4.15.0-13-generic,右击同样“Mark for Installation”。请注意务必和前面的headers对应。现在我们有三个勾选选项了。注:建议连带linux-image-extra-4.15.0-13-generic一起安装,虽然不一定用得上,还会让你的kernel列表更臃肿,但是这可以修复潜在的驱动不兼容问题 。”

2. 设置系统默认启动内核

下列内容摘自[2],部分经过修改

(1) 查看所有内核名称

grep menuentry /boot/grub/grub.cfg

结果:

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-3a45027c-15ed-4cec-a233-7c3927e74d11' {
submenu 'Ubuntu 高级选项' $menuentry_id_option 'gnulinux-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' {
    menuentry 'Ubuntu,Linux 4.15.0-43-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-43-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' {
    menuentry 'Ubuntu, with Linux 4.15.0-43-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-43-generic-init-upstart-3a45027c-15ed-4cec-a233-7c3927e74d11' {
    menuentry 'Ubuntu, with Linux 4.15.0-43-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-43-generic-recovery-3a45027c-15ed-4cec-a233-7c3927e74d11' {
    menuentry 'Ubuntu,Linux 4.15.0-33-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-33-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' {
    menuentry 'Ubuntu, with Linux 4.15.0-33-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-33-generic-init-upstart-3a45027c-15ed-4cec-a233-7c3927e74d11' {
    menuentry 'Ubuntu, with Linux 4.15.0-33-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-33-generic-recovery-3a45027c-15ed-4cec-a233-7c3927e74d11' {
    menuentry 'Ubuntu,Linux 4.15.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' {
    menuentry 'Ubuntu, with Linux 4.15.0-29-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-init-upstart-3a45027c-15ed-4cec-a233-7c3927e74d11' {
    menuentry 'Ubuntu, with Linux 4.15.0-29-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-recovery-3a45027c-15ed-4cec-a233-7c3927e74d11' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {
menuentry 'Windows 7 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-246AF2746AF241DA' {

例如需要的内核是 Ubuntu,Linux 4.15.0-29-generic

(2) 执行下面命令后,修改引导界面配置中的  GRUB_DEFAULT="Ubuntu,Linux 4.15.0-29-generic".

sudo gedit /etc/default/grub
# 如果在tty中的话,因为无法打开gui,只能使用vi或vim
sudo vi /etc/default/grub
或  sudo vim /etc/default/grub

(3) 执行下面命令后,这时候会有WARNING提示修改GRUB_DEFAULT的名称,例如我的WARNING提示我将GRUB_DEFAULT修改为GRUB_DEFAULT="gnulinux-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11>gnulinux-4.15.0-29-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11"。将该名字复制重新进行步骤二,然后再sudo update-grub。

sudo update-grub   # 更新引导

(4) 重启

sudo reboot

参考

[1] https://blog.csdn.net/qq_42030961/article/details/82740315
[2] https://blog.csdn.net/cf_wu95/article/details/85984956

02-10 12:40