我刚刚在我的系统中安装了一个新的 SSD,我在尝试从它启动时遇到了很多问题。
当我尝试启动时,boot-loader-loader(英特尔矩阵存储管理器)会直接跳过它并尝试从第二个驱动器启动。我将 Grub 安装到第二个驱动器上的 MBR,将其指向 SSD 上的引导文件。不幸的是,Grub 看不到 SSD。ls
从 Grub 救援提示运行仅显示第二个驱动器。但是,如果我从 LiveCD 或闪存驱动器启动,我可以看到并安装 SSD。我相信这是一个 BIOS 问题,但我仍然很好奇。
我的 SSD 如何在 Ubuntu 中显示,但在 Grub 中却没有?Grub 查找文件系统的方式与 Ubuntu 的方式有什么区别?
您说得对,这是 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。https://wiki.debian.org/BootUsbWithGrubRescue#fnref-cc4ac999f61993f95475230c2d5041100779799e
使用
nativedisk
,GRUB 将使用 GRUB 自己的驱动程序而不是来自 BIOS 的数据来检测您的所有 USB 设备。完成此操作后,您可以ls
在控制台内正常使用,grub>
并且您的所有 USB 设备都将被列出。我最近安装了自己的 SSD,遇到了一些问题。最终的解决方案是在 BIOS 中使用 RAID 作为 SATA 驱动程序,而不是 AHCI 或 IDE。不需要设置实际的 RAID 磁盘。
这样,我的 BIOS 正确识别了我的所有驱动器,并且我能够从 SSD 启动到 Ubuntu。这适用于我的升技 IP35 Pro 主板。可能值得一试。