给 VPS 上的 Ubuntu 更换 KVM 内核

  由于 Ubuntu 上手容易,社区活跃等优点,深受同学们喜欢,因此,就有很多同学在服务器上使用 Ubuntu 系统。默认情况下,Ubuntu 会安装一个通用的内核,这个内核自带了很多硬件驱动,兼容性棒棒哒。对于 VPS 而言,这些驱动程序显得有些多余,因此,Ubuntu 官方推出了针对 VPS(虚拟机)的轻量级内核。

  简单说,KVM 内核只保留了在虚拟机中运行必须的驱动和软件,磁盘占用相对于通用内核而言小得多,内存也是如此。在 Armstrong 的服务器上,通用内核会占用 317 MB 磁盘空间,而 KVM 内核只需要 19 MB 的磁盘空间(这是 apt 告诉我的),内存方面,我把通用内核换成 KVM 内核之后,需要 166 MB,更换以前是 185 MB,总的可用内存也有所增加。

  那么,怎样更换内核呢?首先,请确认要更换内核的服务器是 KVM 架构的虚拟化服务器。对此,请先执行 apt install virt-what,安装完成后,运行 virt-what,如果输出结果是 KVM,才可继续,如果你在 XEN 或者 VMware 上更换 KVM 内核,就会导致系统无法启动,切勿尝试。

  然后,你还需要确认系统版本,我的服务器运行的是 Ubuntu 18.04 和 20.04,都可以安装,我没有测试过 16.04 这种古老的发行版,因此不知道它有没有 KVM 内核。

  在安装内核之前,建议同学们学会使用 screen 程序。简单说来,screen 程序可以在你的 SSH 会话关闭时让程序继续运行,因此,在更换内核时如果遇到 SSH 会话意外中断,screen 程序可以让你的服务器免于崩溃。执行 apt install screen,然后按提示安装 screen。安装好 screen 之后,运行 screen -s bash -R linux。

  进入了名为 linux 的 screen,我们来执行 df -h 检查一下磁盘状况。如果你的服务器具有单独的 boot 分区,请确认它有足够的剩余空间,如果空间不足,删掉那些旧内核。可以在网上找到删除旧内核的方法,这里我就不展开了。

  确认 VPS 的架构是 KVM,并且我们进入了 screen,而且有足够的磁盘空间,现在可以开始安装新内核了。执行 apt install linux-KVM,然后根据提示确认安装。安装完成后,执行 reboot 重启服务器。重启完成后,我们运行 uname -r 查看内核版本,如果内核版本后面的 generic 变成了 kvm,就表示我们已经成功地更换了内核。

  确认无误后,我们来删除通用内核。运行 apt autoremove linux-image-generic,内核被删除之后,我们来删除 linux-firmware 软件包。至此,我们完成了更换 Ubuntu 内核的所有过程。

  顺便提一下,有些同学购买了 Azure、Oracle 或者 AWS 的云主机,这类云主机已经具有最佳化的 Ubuntu 内核,因此这部分同学不需要手动更改内核。

已知问题:

  KVM 版内核不带 BBR 模块,我暂时不知道怎么把 BBR 模块加入到 KVM 内核。如果有哪位同学知道,请不吝赐教。

加入对话

1条评论

留下评论

回复 王光卫博客 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注