如何修复一个非常破碎的grub?

Hat*_*het 4 fedora grub2

我有一个非常损坏的 Fedora 22 安装。

一切都很好,直到我决定双启动 F22 和 Linux Mint MATE。我在 SSD 上安装了 Fedora,在不同的硬盘上安装了 LM。一段时间后,我认为 Linux Mint 不适合我,所以我删除了所有 LM 分区(我知道我正确地删除了所有分区;它们在一个单独的驱动器中),然后从引导中删除 LM 条目菜单(或者我认为),我跑了grub2-mkconfig -o /boot/grub2/grub.cfg。我重新启动了我的系统,奇迹般的出现了:error: no such device: XXXXXXXXX...和一个grub-rescue>提示。

理想情况下,这个问题会有所帮助,但 Fedora 使用 LVM。

如何恢复正常的 grub 启动屏幕?或者,我怎样才能恢复我的 Fedora 安装?

谢谢!

注意:我很乐意发布命令输出,但我对这些内容的了解还不够多,无法知道什么是有用的。

Tom*_*unt 8

Linux Mint 的 GRUB 似乎仍安装在 MBR 上,而其/boot分区已被删除。因此grub-rescue,当 GRUB 无法从文件系统加载它的 stage2 时会出现提示。按顺序尝试的事情:

  1. 有可能Mint GRUB在Mint磁盘的MBR中,而旧的(Fedora)GRUB还在Fedora磁盘的MBR中。要检查这一点,请转到 BIOS 启动菜单并尝试从 Fedora 所在的 SSD 启动(假设当前默认启动设备是 Mint HDD)。如果这有效,它应该会让你回到标准的 GRUB,希望已经选择了引导 Fedora 的选项。
  2. 如果不是这种情况,您应该尝试从引导程序grub-rescue进入您的 Fedora 安装。然后你可以运行grub2-install让 Fedora GRUB 再次启动。为此,您需要知道grub-rescueFedora 的/boot位置(我假设它在一个单独的分区上,因为这是 Fedora 默认的),然后引导到normal.

    lsgrub-rescue>提示中尝试;它会给你一个设备列表,(hd0,msdos1)等等。您可以通过说ls (hd0,msdos1)/(注意尾部斜杠)来列出单个设备;您想要的是带有grub2子目录和一堆initramfsvmlinuz文件的那个。

    一旦您找到了正确的设备(形式(hd<n>,msdos<m>)或可能是(hd<n>,gpt<m>)),您就可以运行set prefix=(<device>)/grub2set root=(<device>)。然后你可以:

    insmod normal
    normal
    insmod linux
    
    Run Code Online (Sandbox Code Playgroud)

    此时,您应该返回标准grub>提示符。在这里您需要正常启动操作系统,这取决于您的设置。但是你可以运行cat (<device>)/grub2/grub.cfg,它会给你 Fedora 正常运行的命令,并希望复制这些命令。

  3. 先前的程序很长、很复杂,并且敏感地取决于您的确切设置。如果失败,您可以从 LiveCD(最好是 Fedora)启动,然后grub2-install从那里运行。参考答案中的命令行是一个很好的起点。