下载指定内核版本
下载路径 https://kernel.ubuntu.com/~kernel-ppa/mainline/
查看内核版本
1.ubuntu查看当前内核
sudo uname -r
修改内核步骤
下载.deb包并执行安装
下载deb包
在此网站上查找所需内核版本 Index of /~kernel-ppa/mainline,找到对应的所需要升级的版本,并下载对应的包,如图需要下载一下四个包【缺一不可】
下载对应内核版本的.deb
注意:cpu为64架构 选择amd64对应的安装包;
如下两个示例:
下载地址:https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.19.286
下载完成后,新建一个文件夹,并将下载的4个包移至新建文件夹中(如图,我的少移了一个后面会出错!所以一个不能少)
安装
ls #查看文件列表
cd /ubuntu-kernel-upgrade(上一步中新建的文件夹名字) #cd 命令进入存放内核包.deb的文件夹中
#然后执行以下命令进行安装
sudo dpkg -i *.deb
#以管理员身份运行 软件包管理器 安装 所有deb软件包; sudo以管理员身份运行;dpkg软件包管理器; -i安装; *.deb所有软件包
报错解决方案
如图出现问题:可以知道缺失了下面两个包
依赖于libssl1.1(>=1.1.0)
依赖于linux-base(>=4.5ubuntu1-16.04.1)
一位宝藏博主分享的宝藏网站: https://pkgs.org/ 可以查找下载很多Linux的包;
下载好以上两个缺失的包后,依旧是新建一个文件夹,将其放进文件夹中,并执行安装命令
#进入存放上面两个包的文件夹中
cd ubuntu_deb #ubuntu_deb是新建的文件夹名字)
#然后执行以下命令进行安装
sudo dpkg -i *.deb
#以管理员身份运行 软件包管理器 安装 所有deb软件包; sudo以管理员身份运行;dpkg软件包管理器; -i安装; *.deb所有软件包
安装完成,再次用命令安装内核的软件包即可;
安装完成
安装完成后,查看所安装的所有内核版本
root@IPSecVPN:~/ubuntu-kernel-upgrade# dpkg --get-selections | grep linux-
binutils-x86-64-linux-gnu install
linux-base install
linux-firmware install
linux-generic hold
linux-headers-4.15.0-55 install
linux-headers-4.15.0-55-generic install
linux-headers-4.15.0-64 install
linux-headers-4.15.0-64-generic install
linux-headers-4.19.286-0419286 install
linux-headers-4.19.286-0419286-generic install
linux-headers-generic hold
linux-image-4.15.0-55-generic install
linux-image-4.15.0-64-generic install
linux-image-generic hold
linux-image-unsigned-4.19.286-0419286-generic install
linux-libc-dev:amd64 install
linux-modules-4.15.0-55-generic install
linux-modules-4.15.0-64-generic install
linux-modules-4.19.286-0419286-generic install
linux-modules-extra-4.15.0-55-generic install
linux-modules-extra-4.15.0-64-generic install
linux-tools-4.15.0-212 install
linux-tools-4.15.0-212-generic install
linux-tools-4.15.0-64 install
linux-tools-4.15.0-64-generic install
linux-tools-common install
linux-tools-generic install
切换内核脚本
需要根据上边流出来的内核版本进行切换【必须一一对应】
root@IPSecVPN:~/ubuntu-kernel-upgrade# cat upgrade-kernel-version.sh
#!/bin/bash
set -e
sed -i "s/GRUB_DEFAULT=.*/GRUB_DEFAULT=\"Advanced options for Ubuntu>Ubuntu, with Linux 4.19.286-0419286-generic\"/g" /etc/default/grub
sed -i "s/APT::Periodic::Update-Package-Lists.*/APT::Periodic::Update-Package-Lists \"0\";/g" /etc/apt/apt.conf.d/10periodic
sudo apt-mark hold linux-image-unsigned-4.19.286-0419286-generic
apt-mark hold linux-headers-4.19.286-0419286 >> /dev/null 2>&1 || :
update-grub
#reboot
重启后,使用 uname -r 可以查看内核版本已经更新
切换内核详解
更改内核版本:将GRUB_DEFAULT从0修改为:Advanced options for Ubuntu>Ubuntu, with Linux 4.15.0-64-generic
root@gt110:~# cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
#GRUB_DEFAULT=0
GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.15.0-64-generic'
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
更新内核
update-grub
禁止自动更新
sudo apt-mark hold linux-image-4.15.0-64-generic
sudo apt-mark hold linux-headers-4.15.0-64
vim /etc/apt/apt.conf.d/10periodic
# 将“1”改为“0”,保存即可。
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";