Debian 10 升级内核到 5.10

前排提示,不建议给稳定工作的 VPS 更换内核,很可能导致各种问题。

#前言以及介绍

还是这台 RackNerd 主机,别人都说这家的老板两年前曾经跑路,但我用了两个月感觉还行,即使明天跑路,我也不亏。这家的 LA DC-02 机房可以添加 ipv6,大概三个星期前我提交工单申请了一个 ipv6 地址,结果发现分配的 ipv6 不稳定,大部分时间无法连通,最近又听说了 WARP,很心动,就用 WARP 给这台 VPS 换个 ipv6 出口吧。

  • WARP 是 Cloudflare 推出的,基于 WireGuard 的一项旨在保护隐私,加速(也可能减速)网速的服务;
  • Cloudflare 是一家提供网络服务的公司,以免费的 CDN 而闻名。
  • WireGuard 是一个新的,很厉害的 VPN 实现;

Linux 内核 5.6 已经集成了 WireGuard,据说 Debian 已经将这个模块整合到了 5.5。但是,没用。Debian 10 (Buster) 默认内核是 4.19 LTS。虽然可以通过模块或者软件在低版本 Linux 上运行,但是还是希望使用高版本的内核,来获得更自然的体验。

#准备

先使用开启 VNC 服务,以防万一。

SSH 在什么时候启动? VNC 在什么时候启动?

#过程

使用uname -r可以查看当前的内核版本。

在 Debian 更新 Linux 内核,最方便的做法是使用 Debian Backports。 首先在源中添加 backports 仓库。

echo 'deb http://deb.debian.org/debian buster-backports main' |\
sudo tee -a /etc/apt/sources.list.d/backports.list

然后再更新一下,发现 backports 仓库的内容已经被检索到了。

sudo apt update

检索所有可能安装的 Linux 内核版本,好多,这里截取部分。

apt search linux-image
其中
  • 'bpo' 表示 backports

  • 'rt' 表示 realtime

  • 'dbg' 表示 debugging

这台 vps 显然不需要实时操作系统,也不需要调试,也不想安装一个未签名的内核,我选择了最新的针对 vps 的 -cloud 版(这里不应该选择这个版本的)。

sudo apt install linux-image-5.10.0-0.bpo.7-cloud-amd64

链接已经正确处理,grub 也自动 update 了,安装 headers

sudo apt install linux-headers-5.10.0-0.bpo.7-cloud-amd64

然后重启看看

sudo reboot

然后无法 ssh 到 vps 了 :(

马上 vnc 到 vps,幸亏提前开启了 vnc 。检查了一下,发现内核确实更新了,但是没有公网 ip 地址?不知道我是怎么 vnc 到 vps 的。

进一步检查,发现没有 cloud 内核没有常规驱动(Realtek等)。
原来面向云主机的内核是这么精简啊,不知道除了网卡驱动还少什么……还是先用回常规的内核吧,网站一直掉线呢。幸亏旧内核没删,不然就麻烦了。

通过 grub 使用旧内核启动系统,删除 cloud 版内核。

 sudo apt remove linux-image-5.10.0-0.bpo.7-cloud-amd64
 sudo apt remove linux-headers-5.10.0-0.bpo.7-cloud-amd64

安装常规版本,重启

sudo apt install linux-image-5.10.0-0.bpo.7-amd64
sudo apt install linux-headers-5.10.0-0.bpo.7-amd64

sudo reboot

这次一切正常。

#收尾

删除被旧内核替换下来的旧旧内核,干净清爽。

sudo apt autoremove

关闭 vnc 服务,关闭不必要的端口。