我正在从 CentOS 7 转换到 Ubuntu 22.04 LTS。由于各种原因,CentOS 的 EOL 阻碍了我,是时候转向一个未来有支持的发行版了。我根据其他人的推荐选择了 Ubuntu。
我遇到了以下问题。出于某些原因,我不会在这里深入讨论,我有时会测试具有 520e 字节扇区格式的 NVMe 驱动器。我从标准 SATA 驱动器启动,因此与 NVMe 驱动器无关(或不应该涉及)。启动顺序是 USB,然后是 SATA 驱动器。我使用的工作站与在 CentOS 上使用的完全相同,BIOS 设置也完全相同。
在 CentOS 启动期间,一切都按预期运行。系统启动后,我登录并可以使用一些自定义工具开始处理 520 字节扇区驱动器。
在 Ubuntu 上,使用相同的设置、相同的驱动器,在首次按下 F3 等后立即启动时,我收到一个 alloc magic 错误。这是在任何控制台滚动输出开始之前。它说按任意键继续,但按任意键都不起作用。我认为它还不足以让我进入 grub 菜单。
如果我从 usb 启动(rufus 内置 22.04 安装 usb),会发生同样的事情,但按下 esc 键会进入 grub 菜单。然后 usb 启动就可以正常工作了。虽然它可能为调试提供线索,但这并不是一种有用的解决方法。
NVMe 驱动器直接连接到 PCIe 插槽。我已经在 centOS 上成功使用此设置约 5 年了。
如果我在另一个 centos 工作站上将驱动器重新格式化为 512 字节扇区,然后将其连接到 Ubuntu 设置,则一切都会按预期工作。系统使用 sata 驱动器启动,一切正常。
我认为 22.04 发行版中的某些内容会在启动序列的早期部分扫描所有可能的启动设备,然后在遇到无法读取的 NVMe 驱动器或获取它不喜欢的 NVMe 识别数据时失败。
关于如何让 Ubuntu 允许我使用 520 字节扇区的 NVMe 驱动器进行启动,您有什么想法吗?