最近在使用Ubuntu 20.04时,在更新内核后无法进行WiFi联网。我的电脑上装载的是AX211型号的无线网卡,之前安装了相应的驱动,并且一直正常使用。但不小心更新到了Linux 5.15.0-94-generic后,突然发现无法连接网络了。
于是首先怀疑是不是内核版本的问题导致的,尝试降低内核版本启动看是否能够正常连接WiFi。进入了系统启动时的GNU Grub界面,然后选择了Advanced options for Ubuntu,选择较低的内核版本Linux 5.15.0-92-generic进行启动,进入系统后发现WiFi可以正常工作。于是决定修改默认启动的内核版本为该旧版本。
使用以下命令查看内核的启动顺序:
grep menuentry /boot/grub/grub.cfg
结果显示了系统中存在的多个内核版本以及它们的启动选项:
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-d19495dd-3419-4586-9b13-b5c523ce9591' {
submenu 'Ubuntu 的高级选项' $menuentry_id_option 'gnulinux-advanced-d19495dd-3419-4586-9b13-b5c523ce9591' {
menuentry 'Ubuntu,Linux 5.15.0-94-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-94-generic-advanced-d19495dd-3419-4586-9b13-b5c523ce9591' {
menuentry 'Ubuntu, with Linux 5.15.0-94-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-94-generic-recovery-d19495dd-3419-4586-9b13-b5c523ce9591' {
menuentry 'Ubuntu,Linux 5.15.0-92-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-92-generic-advanced-d19495dd-3419-4586-9b13-b5c523ce9591' {
menuentry 'Ubuntu, with Linux 5.15.0-92-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-92-generic-recovery-d19495dd-3419-4586-9b13-b5c523ce9591' {
menuentry 'Ubuntu,Linux 5.15.0-67-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-67-generic-advanced-d19495dd-3419-4586-9b13-b5c523ce9591' {
menuentry 'Ubuntu, with Linux 5.15.0-67-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-67-generic-recovery-d19495dd-3419-4586-9b13-b5c523ce9591' {
menuentry 'Ubuntu,Linux 5.15.0-46-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-46-generic-advanced-d19495dd-3419-4586-9b13-b5c523ce9591' {
menuentry 'Ubuntu, with Linux 5.15.0-46-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-46-generic-recovery-d19495dd-3419-4586-9b13-b5c523ce9591' {
menuentry 'Windows Boot Manager (在 /dev/nvme0n1p2)' --class windows --class os $menuentry_id_option 'osprober-efi-5ED4-0D9E' {
居然装了这么多版本的内核。。。
发现了所需的Linux 5.15.0-92-generic
。菜单索引从0开始,即:
0: ‘Ubuntu,Linux 5.15.0-94-generic’
1: ‘Ubuntu, with Linux 5.15.0-94-generic (recovery mode)’
2: ‘Ubuntu,Linux 5.15.0-92-generic’
3: ‘Ubuntu, with Linux 5.15.0-92-generic (recovery mode)’
…
因此希望降低到的内核版本Linux 5.15.0-92-generic
在菜单中的位置为2。
然后,编辑GRUB配置文件,使用命令sudo gedit /etc/default/grub
打开,并设置GRUB_DEFAULT以指定默认启动的内核版本。
GRUB_DEFAULT="1>2"
在GRUB_DEFAULT
中,索引值的格式是x>y
,其中x
表示主菜单中的索引值,而y
表示子菜单中的索引值。对于主菜单中的选项,索引从0开始计数,而对于子菜单中的选项,索引同样从0开始计数。
所以,当填写GRUB_DEFAULT="1>3"
时,我指定的是主菜单中的第2个选项(索引1,即Advanced options for Ubuntu),以及在子菜单中的第3个选项(索引2)。这个索引值需要根据实际情况调整。
保存并关闭文件后,运行命令来更新GRUB配置文件,以使修改生效:
sudo update-grub
重启电脑,发现问题得到了解决,系统默认启动了旧的内核版本,可以正常联网了。
请注意:执行操作存在风险,如操作不当可能导致系统不稳定甚至无法运行。请在执行任何操作之前谨慎考虑,并确保备份重要数据。
首先,我们需要确认系统中已安装的内核版本。运行以下命令来列出已安装的内核版本:
dpkg --list | grep linux-image
这会列出已安装的所有内核版本,包括其版本号:
ii linux-image-5.15.0-46-generic 5.15.0-46.49~20.04.1 amd64 Signed kernel image generic
ii linux-image-5.15.0-67-generic 5.15.0-67.74~20.04.1 amd64 Signed kernel image generic
ii linux-image-5.15.0-92-generic 5.15.0-92.102~20.04.1 amd64 Signed kernel image generic
ii linux-image-5.15.0-94-generic 5.15.0-94.104~20.04.1 amd64 Signed kernel image generic
假设你想要卸载版本号为5.15.0-94-generic的内核版本。首先,运行以下命令来卸载该内核版本:
sudo apt-get purge linux-image-5.15.0-94-generic
这一步可能会同时安装一个名字含有image-unsigned的包。接下来,继续运行以下命令来卸载该包:
sudo apt-get purge linux-image-unsigned-5.15.0-94-generic
通过以上步骤,可以卸载Ubuntu 20.04中不需要的内核版本。执行
dpkg --list | grep linux-image
查看已安装内核,可发现linux-image-5.15.0-94-generic
已被卸载:
ii linux-image-5.15.0-46-generic 5.15.0-46.49~20.04.1 amd64 Signed kernel image generic
ii linux-image-5.15.0-67-generic 5.15.0-67.74~20.04.1 amd64 Signed kernel image generic
ii linux-image-5.15.0-92-generic 5.15.0-92.102~20.04.1 amd64 Signed kernel image generic