如何回滚到以前的 Ubuntu 内核?(运行 Ubuntu 16.04)

BKM*_*BKM 3 ubuntu dependencies linux-kernel

我有一个托管公司的 VPS 服务器,我有 ssh/root 访问权限。我最近尝试将内核升级到最新版本(4.18.5-041805-generic)。我正在运行 4.4.0-169 并认为是时候升级了。

所以我运行了以下内容:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud)

毕竟,内核版本仍然保持不变。所以,经过一番搜索,我找到了这组指令:

https://www.tecmint.com/upgrade-kernel-in-ubuntu/

我按照说明操作并尝试安装最新的内核版本。接近尾声时,它生成了一个错误,表明它未配置,但是当我运行“uname -rs”时,它列出了新内核:

~$ uname -rs
Linux 4.18.5-041805-generic
Run Code Online (Sandbox Code Playgroud)

但是,现在当我尝试确保其他所有内容也再次更新时,我收到一个依赖错误:


~$ sudo apt-get update && sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 linux-headers-4.19.0-041900rc1-generic : Depends: libssl1.1 (>= 1.1.0) but it is not installable
 linux-image-unsigned-4.19.0-041900rc1-generic : Depends: linux-modules-4.19.0-041900rc1-generic but it is not installable
E: Unmet dependencies. Try using -f.
Run Code Online (Sandbox Code Playgroud)

所以,我想回到旧的 4.4.0-169 通用内核,但我不知道如何做到这一点。我在搜索中找到的每条指令都说使用键盘快捷键中断 grub,然后选择不同的内核。

问题是我在 VPS 云服务器上运行,并且没有连接到服务器的物理键盘。我只有进入服务器的 ssh 窗口才能完成任何操作。

如何删除产生依赖性问题的新内核并重新使用以前的内核启动?

小智 5

例如,查看此答案,您可以从终端更改两个内核的引导顺序。该答案中获得高度赞成的评论还建议使用内核的全名,而不是其数字索引,以提高稳定性。

简而言之:

  1. sudo view /boot/grub/grub.cfg 并复制旧内核的全名。
  2. sudo vi /etc/default/grub并且,在顶部,GRUB_DEFAULT=0 改为 read GRUB_DEFAULT=your_kernel_name_from_grub.cfg,并保存更改(为了安全起见,您可能希望保留原始文件的副本)。
  3. sudo update-grub.

然后重新启动应该让你回到你的旧内核。如果您想要快速修复,您可能只需更改GRUB_DEFAULT=0GRUB_DEFAULT=1in /etc/default/grub(然后sudo update-grub重新启动),但上述过程不那么脆弱。


eyo*_*100 1

您所遵循的教程在内核:主线构建 - Ubuntu Wiki中有更好的解释。另请参阅同一篇 Wiki 文章的第 4 节以获取删除说明。

注意仅仅因为有 adist-upgrade并不一定意味着该升级中有内核升级。 请参阅Ubuntu 软件包存储库:linux-image-generic