除非外部磁盘可访问,否则 grub 将停止救援

除非外部磁盘可访问,否则 grub 将停止救援

我在一台旧的 Windows 机器上安装了 Ubuntu 12.04。它安装在外部 USB 硬盘上。我在内部硬盘的 MBR 上安装了 grub,因此如果我连接外部硬盘并启动计算机,我最初会获得 Windows 引导加载程序,它提供 Windows 和 Ubuntu。如果我选​​择 Windows,我会启动到 Windows,如果我选择 Ubuntu,我会得到 Ubuntu/grub 启动菜单(它也提供 Windows)并可以启动到 Ubuntu。一切都很好。

如果我启动电脑时没有连接外部硬盘,电脑会立即进入 grub 救援 shell

error: no such device: df9058b0....
grub rescue>

它甚至不显示 Windows 启动加载程序,而是直接进入 grub 救援。我进入 BIOS 设置并禁用从外部硬盘启动,但没有任何变化。

这让我很担心,因为这意味着即使我想启动 Windows,我也需要连接外部 Ubuntu 磁盘(具有特定的 UUID)。

是否可以将 grub 配置为只有当我尝试通过 grub 菜单从中启动时它才会进入救援状态?

答案1

哎呀,您将 grub(旧版)放到了错误的磁盘(MBR)上,现在它需要外部磁盘上的文件才能显示菜单。

  1. 当您可以运行 Ubuntu 时,请将 grub 安装到您的外部磁盘(sdb?)上,并检查您是否可以成功从它启动并启动 Windows。

好的,启动失败。外部磁盘是否使用 MSDOS 分区?如果是 GPT,则需要添加一个带有 grub-bios 标志的小分区(1-2M)(无需格式化)。然后重新安装 grub 并重试。好的,
这是 MSDOS。


逻辑分区、启动标志对 Ubuntu 来说没有区别。您看到的是 grub 提示吗?很多答案都像启动错误 > 没有这样的设备:grub rescue但您的情况更简单——您可以从 sda 启动 grub,并在 sdb 上运行 Ubuntu。从那里,您应该能够简单地将 grub 安装到 sdb。只是检查一下,您没有在 UEFI 模式下运行,对吗?也许像 16.04 这样的较新版本会更好,如果完整的 ubuntu 对您的机器来说太多了,请返回到 lubuntu。


  1. 然后,您将需要将旧的 Windows 启动 MBR 恢复到您的内部磁盘上,这样它只能启动 Windows。
  2. 在 BIOS 中,选择在启动顺序中首先启动外部磁盘,然后将内部磁盘放在第二个位置(或者如果愿意,将两者都放在 CDROM 之后)。

当 USB 磁盘存在时,启动应该提供 grub,当不存在时,内部磁盘应该启动 Windows。

相关内容