内核崩溃后 NVMe 驱动器消失

内核崩溃后 NVMe 驱动器消失

我正在使用 Linux(基于 Yocto 的自定义操作系统)对设备进行映像处理Dell OptiPlex Micro 3000。Grub 版本 2.04。我正在使用 A/B 分区方案并尝试让回退正常运行,但我认为我可能在某处遇到了与 BIOS(UEFI)设置的冲突。

预期结果:如果任一启动选项遇到内核崩溃,系统应该回退到另一个启动选项。

实际结果:如果出现内核恐慌,系统将重新启动,然后 nvme 驱动器就会消失。

启动选项类似,但根驱动器除外(一个指向 /dev/nvme0n1p2,一个指向 /dev/nvme0n1p3),例如

linux /bzImage root=PARTUUID=*snip* rootwait rw oprofile.timer=1 root/dev/nvme0n1p2 rootfstype=ext4 console=ttyS0,115200 console=tty0 crashkernel=auto panic=5

如果 bzImage 有问题,我使用此选项启动,随后出现内核崩溃,5 秒后重新启动 - 然后系统启动到我的 Clonezilla 映像拇指驱动器。我输入 Clonezilla 命令行,ls /dev没有 nvme 驱动器或分区。事实上,也没有/dev/nvme0控制器。

如果我重新启动并选择驱动器的启动选项,我会看到一个 UEFI 风格的窗口,上面显示“无硬盘”。

如果我浏览 UEFI 菜单并尝试添加驱动器的启动选项,则不会列出该设备。

不过,奇怪的是,如果我:

  1. 内核恐慌
  2. 重启
  3. 进入 UEFI 设置
  4. 退出(不做任何改变或修改,不保存)
  5. 重启

它从我的设备加载启动菜单。换句话说,再次“找到” nvme 控制器的唯一方法是打开 UEFI 设置,然后再次重新启动。

另请注意:如果我不指定panic=5,则会发生内核崩溃,并且我按住电源按钮重新启动,则不会发生这种情况。 自动重启似乎panic=5是导致这种情况的原因。

  • 什么原因会导致内核恐慌并导致 NVMe 控制器“消失”?
  • 刚进入 UEFI 设置菜单时会发生什么情况,导致 NVMe 控制器在下次重启时再次返回?

相关内容