将内核从 5.11.0-38-generic 自动更新至 5.11.0-40-generic 后,我的系统无法启动。我的电脑
- Apple Mac mini 2019(Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz)和 Apple Macbook pro 2019
- Linux 安装在分区 /dev/sda2 上的“WD My Passport SSD 500 GB externe SSD”上
这两个系统都出现了问题。我尝试使用全新安装的 Ubuntu Desktop 20.04.3 进行启动。它附带内核 5.11.0-27。更新到 5.11.0-43 后,出现同样的问题。
我收到以下错误消息:
Begin: Waiting for root file system ... Begin: Running /scripts/local-block ... done.
done
Gave up waiting for root file system device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! UUID=e373b7f7-deb5-4265-9699-f36a857daeb9 does not exist. Dropping to a shell!
...
如上所述,我尝试在 rEFInd 启动选项编辑器中设置 rootdelay=90。但这并不能解决问题。
编辑:似乎无法访问外部驱动器。
(initramfs) cat /proc/cmdline
ro root=UUID=e373b7f7-deb5-4265-9699-f36a857daeb9 initrd=boot\initrd.img-5.11.0-40-generic
(initramfs) blkid
/dev/nvme0n1p1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="5F66-17ED" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="52afc870-985c-4c7d-9025-653fd071a434"
/dev/nvme0n1p2: UUID="79934026-e0f0-417a-be7a-f2292082fdea" TYPE="apfs" PARTUUID="4df0b3ec-ba74-4381-b43c-c32725f368cb"
/dev/nvme0n1p3: LABEL="Windows" UUID="34F5EE1202469FF7" TYPE="ntfs" PARTUUID="b33219f8-db08-4c44-9d3b-b08989b10f9c"
当我使用内核 5.11.0-38 启动系统时,blkid 的输出如下所示
sudo blkid
/dev/sda2: UUID="e373b7f7-deb5-4265-9699-f36a857daeb9" TYPE="ext4" PARTUUID="ac7c144c-cc01-4af8-922f-40021a28c643"
...
/dev/nvme0n1p1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="5F66-17ED" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="52afc870-985c-4c7d-9025-653fd071a434"
/dev/nvme0n1p2: UUID="79934026-e0f0-417a-be7a-f2292082fdea" TYPE="apfs" PARTUUID="4df0b3ec-ba74-4381-b43c-c32725f368cb"
/dev/nvme0n1p3: LABEL="Windows" UUID="34F5EE1202469FF7" TYPE="ntfs" PARTUUID="b33219f8-db08-4c44-9d3b-b08989b10f9c"
/dev/sda1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="67E3-17ED" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="6d157669-6d30-48b0-abb9-5b4616445e25"
/dev/sda3: UUID="e9c6e424-ff06-49e4-ad9a-b3afad7afebf" TYPE="ext4" PARTUUID="76a6b530-bcae-4d91-a64e-6901b42f901a"
...
答案1
上周,自动更新程序安装了内核版本 5.13.0-27-generic,一切恢复正常。不幸的是,我仍然不明白发生了什么。
答案2
我不能 100% 肯定,但您可能遇到了 5.11.0-43 内核中的错误/回归问题。这些情况可能时有发生 - 驱动程序中出现错误(或特定版本中因某种原因省略了关键驱动程序),导致无法访问某些硬件设备或出现其他问题。
另一种可能性是,在为相关内核构建 initramfs 时出现了问题。这也可能是由于错误;也可能是磁盘已满,甚至是文件系统损坏导致关键文件损坏。
无论哪种情况,解决方案都是不使用受影响的内核。从第一次更新内核开始,Ubuntu 应该始终保留至少两个内核/boot
,包括最近启动的内核。因此,即使内核更新导致问题,您也应该能够启动一个好的内核。在 rEFInd 中,您可以在突出显示 Linux 内核后按 Tab、Insert 或 F2 来执行此操作;这将生成一个子菜单,您可以通过访问启动主内核的变体选项以及启动其他(通常是较旧的)内核的选项。如果旧内核可以运行但新内核不运行,您可以使用touch
Linux 中的命令将旧内核设为默认内核。您需要使用 执行此操作sudo
,如下所示:
sudo touch /boot/vmlinuz-5.11.0-27-generic
当您在 rEFInd 中选择 Linux 内核时,该内核将成为默认内核。
使用 GRUB 时,您可以从 GRUB 菜单中任意选择您喜欢的内核。如果 GRUB 通常不显示此菜单,您可以在 GRUB 启动时按下 Shift 键 (IIRC) 来显示它 - 因此基本上,只要在打开计算机后不断按下 Shift 键即可。要更改 GRUB 中的默认设置,您必须编辑其配置文件,恐怕我不记得需要更改哪些细节了。