ubuntu如何进行切换内核版本全教程

环境:ubuntu 16.04 server

服务器重新启动后,内核可能被自动更新,这就会造成开机后服务器有些服务无法正常使用。例如:

查看显卡状态:nvidia-smi 会有报错

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

造成报错原因:内核版本太高,与NVIDIA驱动不匹配。因为NVIDIA驱动是在内核版本低的时候安装的。

这时的解决方法就是切换回来低版本内核就行。

如何切换ubuntu的内核版本呢?介绍两种方法。

1. 如果服务器在身边,可以手动启动服务器的话就可以选择这种方法

开机进入

机进入grub引导界面,选择Advanced options for Ubuntu::

ubuntu如何进行切换内核版本全教程_第1张图片

选择Advanced options for Ubuntu后,进入其子菜单,如下图所示:

ubuntu如何进行切换内核版本全教程_第2张图片

上图来自:https://blog.csdn.net/sinat_23619409/article/details/85220561

选择一个低版本的内核进入系统。

再次运行nvidia-smi就可以了

ubuntu如何进行切换内核版本全教程_第3张图片

 

2. 大部分服务器都是不在身边的,都是使用远程连接操作的,无法做到手动重启并桌面设置以上操作。这时可以使用第二种方法。

(1)首先查看当前内核版本:

uname -r

(2)查看服务器启动内核的顺序

grep menuentry /boot/grub/grub.cfg

ubuntu如何进行切换内核版本全教程_第4张图片

红框内就是ubuntu系统目前所拥有的内核版本与启动顺序,menuentry就是每一条,记住这个顺序,下面要用到。

(3)比如我们要切换成4.15.0-54-generic这个,它在上图中的启动顺序是第七个。

终端运行命令 : sudo gedit /etc/default/grub

ubuntu如何进行切换内核版本全教程_第5张图片

红框内GRUB_DEFAULT=0 修改为 GRUB_DEFAULT="1> 7"。

注意:> 与7之间有个空格

保存并退出。

(4)更新grub

sudo update-grub

ubuntu如何进行切换内核版本全教程_第6张图片

(5)重启服务器

sudo shutdown -r now

(6)重启后查看内核版本(uname -r)已修改成4.15.0-54-generic了。再运行nvidia-smi就正常了。

下面说可能出现的问题:

ubuntu自动更新内核的过程中,也会自动删除掉一些内核旧版本。因此你可能切换不到与NVIDIA驱动匹配的版本了。

能切换到的内核版本只能是步骤(2)中内核启动顺序中的内核版本。其他版本切不到。

也可以运行命令:

dpkg -l | tail -n +6| grep -E 'linux-image-[0-9]+'| grep -Fv $(uname -r)

列出不包括当前内核版本的其它所有内核版本:

ubuntu如何进行切换内核版本全教程_第7张图片

输出的内容中可能会包括内核映像的如下三种状态(红框中):

  • rc:表示已经被移除
  • ii:表示符合移除条件(可移除)
  • iU:已进入 apt 安装队列,但还未被安装(不可移除)

如果要移除状态为 ii 的「linux-image-4.15.0-88-generic」内核,可以使用如下命令:

sudo dpkg --purge linux-image-4.15.0-88-generic

如前面所说,如果没有我们需要的内核,我们就需要安装所需版本内核,安装命令如下:

sudo apt-get install linux-image-4.15.0-55-generic

然后就可以按照(1)-(6)的步骤切换成你所需的内核版本启动了。

Reference:

https://blog.csdn.net/zs15yy/article/details/77188030

https://blog.csdn.net/sinat_23619409/article/details/85220561

你可能感兴趣的:(linux)