Ubuntu更换内核
Ubuntu更换内核指导
仍然是复现论文需要,论文是基于TCP漏洞的旁道攻击,用的是Ubuntu18.04 (kernel 5.5),而我用的是Ubuntu22.04 (kernel 5.15),于是悲剧发生了,我怎么跑也攻击不成功,原因是,漏洞在5.15中已经被补好了。
重装虚拟机太费劲了,因此我选择更新内核。根据学长提供的信息,退回到5.13即可。
查看内核版本
uname -a
查看详细信息
uname -r
查看版本信息
更新内核三种方式
1.从apt中装
如果是升级,情形比较简单,命令见下(引用自title中链接的文章):
要升级包括内核的整个系统,只需要执行:
$ sudo apt-get update
$ sudo apt-get upgrade
如果只希望升级内核,运行:
$ sudo apt-get upgrade linux-image-generic
如果要换到旧版本,需要:
$ apt-cache search linux | grep linux-image
$ sudo apt-get install linux-headers-4.15.0-76-generic linux-image-4.15.0-76-generic
(Ubuntu 升级/降级 Kernel 到指定版本)
但可能出现想要的版本因为太久而不在列表中的情况,导致第二步失败。这种情况,就要用后面两种更新方式。
2.下载预编译版本后,用dpkg装
- 官方下载地址:https://kernel.ubuntu.com/~kernel-ppa/mainline/
选择想要的版本,点进去。选择自己计算机相应的架构。这七条我们不用全部下载,一般情况需要如图4个(我自己电脑amd64的):
- 下载好后,放入虚拟机的一个文件夹中。从命令行进入这个文件夹,执行:
$ sudo dpkg --install *.deb
。这个过程中,可能出现缺少其他依赖包的问题,它缺什么你就按照要求下载即可。比如缺少libssl1.1.0,解决方案在这里。 - 完成后,它可能显示这样一句话:Warning: os-prober will not be executed to detect other bootable partitions。os-prober是一个探测系统中可用内核的工具。在旧版本的Linux中,是要通过修改grub.d(如果我没记错)手动添加内核信息并表现出它们之间的优先级关系,在启动的时候可以选择相应内核。但os-prober不需要你自己添加内核信息了。[引用]
- 有的教程说,这时候reboot即可。但我的情况是,重启后用的还是原来的版本。所以还是要改grub。【提示:修改grub是一件很危险的事,搞不好内核崩了,虚拟机启动不了,只能重装,这就是为什么我现在有时间在这发csdn。所以修改一定要谨慎,修改前先给虚拟机留一个快照!!!】
① 先进入/boot中,ls
看看内核的具体版本信息,复制一下备用(不然挺难记住的……)
② 然后进入/etc/default中,sudo vim grub
。我的grub文件默认长这样:
根据教程,如果GRUB_DISABLE_OS_PROBER=true,要把它改为false,但如果像我一样没有这行,就加上
GRUB_DISABLE_OS_PROBER=false
增加GRUB_SAVEDEFAULT=true
另外,修改GRUB_DEFAULT项:[引用]
GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux <你的版本号,一直到generic>'
③ 修改完成后,:wq
退出,用sudo update-grub
命令激活。
④reboot
重启。
如果还是不行,参考这里提供的其他修改项。
3.从源码装
这个我自己没有试过,各位看官自己搜一下教程吧。相关的教程很多。温馨提示,编译很慢,如果你的机子有很多核,可以-j 核数
并行编译,很爽。
源码地址:https://mirrors.edge.kernel.org/pub/linux/kernel/
更多推荐
所有评论(0)