如何修复或删除损坏的内核(Ubuntu 20.04)

如何修复或删除损坏的内核(Ubuntu 20.04)

我买了一台新笔记本电脑并在上面安装了 Ubuntu,触摸板不工作,因此我按照此处的说明进行操作: IdeaPad 5 15are05 - elan 触摸板在 20.04 和 18.04 上无法使用 并安装了自定义配置的内核。所以我从 5.4.0-37-generic 升级到了 5.7.5。

在我重新启动笔记本电脑之前,它死机了并且崩溃了,当我重新启动它时,我收到了以下错误消息:

内存不足。按任意键继续...

然后第二次重新启动,出现此错误:

内核恐慌 - 未同步:VFS:无法在未知块(0,0)上挂载根文件系统

当我进入 Ubuntu 的高级选项并选择 5.7.5 内核时,我收到了此内核恐慌错误消息。当我启动 5.4.0-37-generic 内核时,它运行正常。

我听说这个内核崩溃问题可能是由于 /boot 分区空间不足引起的。以下是我的 /boot 分区中的内容:

$ ls -l /boot
total 805492
-rw-r--r-- 1 root root    237718 Tay  20 11:33 config-5.4.0-26-generic
-rw-r--r-- 1 root root    237753 Teg   3 09:24 config-5.4.0-37-generic
-rw-r--r-- 1 root root    242913 Teg  23 20:30 config-5.7.5
drwx------ 2 root root      4096 Sak  31  1969 efi
drwxr-xr-x 4 root root      4096 Teg  23 22:20 grub
lrwxrwxrwx 1 root root        27 Teg  23 17:48 initrd.img -> initrd.img-5.4.0-37-generic
-rw-r--r-- 1 root root  49453383 Teg  23 17:48 initrd.img-5.4.0-26-generic
-rw-r--r-- 1 root root  55362853 Teg  23 20:24 initrd.img-5.4.0-37-generic
-rw-r--r-- 1 root root 668761446 Teg  23 21:19 initrd.img-5.7.5
lrwxrwxrwx 1 root root        27 Teg  23 17:22 initrd.img.old -> initrd.img-5.4.0-26-generic
-rw-r--r-- 1 root root    182704 Kup  13 18:09 memtest86+.bin
-rw-r--r-- 1 root root    184380 Kup  13 18:09 memtest86+.elf
-rw-r--r-- 1 root root    184884 Kup  13 18:09 memtest86+_multiboot.bin
-rw------- 1 root root   4736015 Tay  20 11:33 System.map-5.4.0-26-generic
-rw------- 1 root root   4738082 Teg   3 09:24 System.map-5.4.0-37-generic
-rw-r--r-- 1 root root   5369711 Teg  23 20:30 System.map-5.7.5
lrwxrwxrwx 1 root root        13 Teg  23 20:30 vmlinuz -> vmlinuz-5.7.5
-rw-r--r-- 1 root root  11657976 Tay  22 21:48 vmlinuz-5.4.0-26-generic
-rw------- 1 root root  11662080 Teg   3 10:32 vmlinuz-5.4.0-37-generic
-rw-r--r-- 1 root root  11760704 Teg  23 20:30 vmlinuz-5.7.5
lrwxrwxrwx 1 root root        24 Teg  23 17:48 vmlinuz.old -> vmlinuz-5.4.0-37-generic

我可以看到 initrd.img-5.7.5 文件与其中的所有其他文件相比非常大。这可能是问题所在吗?我想知道它为什么这么大。

Google Chrome 是导致笔记本电脑崩溃的应用程序。

当我跑步时:

dpkg --list | grep linux-image

输出为:

ii  linux-image-5.4.0-26-generic               5.4.0-26.30                         amd64        Signed kernel image generic
ii  linux-image-5.4.0-37-generic               5.4.0-37.41                         amd64        Signed kernel image generic
ii  linux-image-generic-hwe-20.04              5.4.0.37.40                         amd64        Generic Linux kernel image

它实际上没有显示 5.7.5。但 5.7.5 出现在 Grub 菜单中,并且它是启动的默认内核。

有没有办法修复 5.7.5 内核?如果没有,我该如何删除它?

答案1

假设您下载并手动安装了 5.7.5,我将按照以下步骤操作:

从最老的内核 5.4.0-26-generic 启动,然后删除 5.7.5 内容,重新链接有故障的链接,重新安装最新的官方内核,更新 grub 并重新启动。对于您的情况(但首先,为了安全起见,请备份您的数据):

cd /boot
# remove the 5.7.5 stuff
sudo rm config-5.7.5
sudo rm initrd.img-5.7.5
sudo rm System.map-5.7.5

# remove faulty links
sudo rm vmlinuz
sudo rm vmlinuz.old

# Remove faulty kernel
sudo rm vmlinuz-5.7.5

# Relink correctly
sudo ln -s vmlinuz-5.4.0-37-generic vmlinuz
sudo ln -s vmlinuz-5.4.0-26-generic vmlinuz.old

# reinstall the latest official kernel
sudo apt install --reinstall linux-generic

# Make sure grub is OK -- maybe not necessary after reinstall
sudo update-grub

# Make sure nothing else is missing
sudo apt update
sudo apt upgrade  # or sudo apt full-upgrade ## see 'man apt'

# Reboot
sudo reboot now

如果您想尝试 5.7.5 内核,我建议您下载以下软件包:

amd64/linux-image-unsigned-5.7.5-050705-generic_5.7.5-050705.202006220832_amd64.deb
amd64/linux-modules-5.7.5-050705-generic_5.7.5-050705.202006220832_amd64.deb

https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.7.5/ 使用 dpkg 安装它们,假设您在下载目录中打开了一个终端:

sudo dpkg -i linux-image-unsigned-5.7.5-050705-generic_5.7.5-050705.202006220832_amd64.deb linux-modules-5.7.5-050705-generic_5.7.5-050705.202006220832_amd64.deb

Grub 将自动更新,这对我有用,我已在内核 5.7.5-generic 上运行。如果遇到错误,请通过启动到旧内核来删除该内核,然后运行

sudo apt purge linux-image-unsigned-5.7.5-050705-generic linux-modules-5.7.5-050705-generic

然后重新启动(grub将自动更新)。

相关内容