为什么硬盘对于 Grub 来说是不可见的?

为什么硬盘对于 Grub 来说是不可见的?

我刚刚在系统中安装了一个新的 SSD,但在尝试从它启动时遇到了很多问题。

当我尝试启动时,引导加载程序(Intel Matrix Storage Manager)会直接跳过它并尝试从第二个驱动器启动。我将 Grub 安装到第二个驱动器上的 MBR,将其指向 SSD 上的启动文件。不幸的是,Grub 看不到 SSD。ls从 Grub 救援提示符运行只会显示第二个驱动器。但是,如果我从 LiveCD 或闪存驱动器启动,我可以看到并安装 SSD。我相信这是 BIOS 问题,但我仍然很好奇。

为什么我的 SSD 可以在 Ubuntu 中显示,但在 Grub 中却看不到?Grub 查找文件系统的方式和 Ubuntu 查找文件系统的方式有什么不同?

答案1

您说得对,这是 BIOS 问题。GRUB(默认情况下)使用 BIOS 接口访问驱动器,因此 GRUB 将列出 BIOS 向其提供的所有驱动器。我无法说出您的 BIOS 为何无法访问驱动器,但您有几个选项可以解决 BIOS 的限制。

您可以为 /boot 创建一个单独的分区,将其放在 BIOS 可以读取的驱动器上。/boot 包含加载 Linux 内核之前需要读取的所有文件,并且可以使用本机驱动程序访问设备,而不依赖于 BIOS。或者,您可以使用 GRUB 的本机驱动程序grub-install --disk-module=foo /dev/sdX,其中 /dev/sdX 是 BIOS 可以从中启动的驱动器,foo 是“ata”、“ohci”、“uhci”或“ahci”之一,具体取决于驱动器的连接方式(PATA、USB 1.0 或 SATA 的不同版本)。除“ata”之外的所有驱动器都需要 grub 1.99。

答案2

https://wiki.debian.org/BootUsbWithGrubRescue#fnref-cc4ac999f61993f95475230c2d5041100779799e

使用nativedisk命令告诉 Grub 加载其原生磁盘和 USB 驱动程序

使用nativedisk,GRUB 将使用 GRUB 自己的驱动程序(而不是来自 BIOS 的数据)检测您的所有 USB 设备。完成此操作后,您可以在控制台ls内正常使用grub>,并且将列出您的所有 USB 设备。

答案3

我最近安装了自己的 SSD,遇到了很多问题。最终的解决方案是在 BIOS 中使用 RAID 作为 SATA 驱动程序,而不是 AHCI 或 IDE。无需设置实际的 RAID 磁盘。

这样,我的 BIOS 就能正确识别所有驱动器,我就能从 SSD 启动 Ubuntu。这在我的 Abit IP35 Pro 主板上有效。值得一试。

相关内容