分区已删除,Grub 损坏

分区已删除,Grub 损坏

我的系统上有 Ubuntu 14.04 LTS,是从实时 USB 全新安装的。我忙着分区,试图为 Windows 设置空间。最后删除了我的 ubuntu 分区并重新启动。现在所有启动都失败了。

当启动到硬盘时,它会给我 grub 救援。当从实时 CD 启动时,它做同样的事情。当从实时 USB 启动时,它会加载操作系统并在那里停留 30 分钟,然后我放弃了。

ls 命令返回:

(hd0) (hd1) (hd1,msdos1)

尝试了其他几个命令,但没成功。我担心里面没有数据,现在我对自己正在做的事情有了更多的了解,我想重新开始。从 Live USB/CD 启动对我来说不是一个选择。还尝试了 Grub 修复磁盘。我一直在使用 Unetbootin 来创建磁盘和 USB。

还有其他方法可以修复 grub 吗?

答案1

为了帮助您(也许还有其他人)避免将来出现此问题,您应该首先了解发生了什么。掌握这些信息后,您就可以恢复系统并在将来正确删除 Ubuntu(如果再次出现需要)。...

发生了什么?

大多数 Ubuntu 安装(无论是基于 BIOS 还是基于 EFI 的系统)都将 GRUB 拆分到两个或更多位置:

  • 主 GRUB 二进制文件-- 此代码由固件运行。重要的是,它确实不是驻留在 Ubuntu 根目录 ( /) 或/boot分区中。在基于 BIOS 的计算机上,它驻留在硬盘的前几个扇区中(或者,如果磁盘使用 GPT,则驻留在磁盘的第一个扇区中,以及BIOS 启动分区)。在基于 EFI 的计算机上,它位于EFI 系统分区 (ESP)。这意味着当您删除 Ubuntu 分区时,主 GRUB 二进制文件不会被删除,并且固件将继续启动它;但是......
  • GRUB 支持文件-- 在大多数情况下,GRUB 从 Ubuntu/boot/grub目录加载其配置文件和其他支持文件。此目录当您删除 Ubuntu 安装时被删除。

结果是,当您删除 Ubuntu 分区时,GRUB 可以启动,但它不能执行任何操作,因为它已经被形象地切除了。

话虽如此,但你的故事中有一点令人费解:你说你不再能够从 USB 驱动器启动。Ubuntu 安装程序映像设计为自包含的;它不依赖于硬盘的内容,并且不应受到该磁盘上 GRUB(或任何其他内容)状态的影响。你必须遇到一些不相关的问题——也许自从您进行初始安装以来,一些 RAM 已经损坏;或者您尝试启动与您的视频卡不匹配的其他版本的 Ubuntu;或者您错误地准备了 USB 驱动器。不过,这些只是猜测;从 USB 驱动器启动失败的原因可能有一百万种。无论如何,我建议您尝试其他 Linux 发行版或使用其他程序准备您的介质来解决此问题。如果有必要,如果您无法使其正常工作,请发布一个新问题,其中包含有关该问题方面的更多详细信息。

如何恢复

恢复系统需要在您的计算机上安装一个可用的引导加载程序。听起来您的计算机是基于 BIOS 的,所以这意味着修改 MBR。如果您想让 Windows 再次可启动,最好的方法可能是使用 Windows 恢复工具。有一些用于恢复 MBR 的 Windows 程序,但我不记得细节了。谷歌搜索后,本教程但是我的搜索结果中有 658,000 个其他结果,因此如果该过程不适合您,请尝试您自己的搜索。

另一个选择是重新安装 Ubuntu(或任何其他操作系统)。作为操作系统安装过程的一部分,将安装一个新的引导加载程序。如果您重新安装 Ubuntu,该引导加载程序将是 GRUB,安装程序应该检测 Windows 并使其成为 GRUB 菜单中的一个选项。

需要注意的是,要注意你的启动模式(BIOS 还是 EFI);不要混用它们。听起来你安装的是 BIOS 模式的 Windows,所以你不是想要在 EFI 模式下安装 Ubuntu。如果您的计算机是 2011 年之前生产的,则可能不会发生这种情况,因为 EFI 直到 2011 年中后期才开始变得普遍。但是,如果您的计算机较新,则可能需要小心。在启动安装介质后但在安装之前,请转到 shell 并查找名为 的目录/sys/firmware/efi。如果存在,则说明您已在 EFI 模式下启动;如果不存在,则说明您已在 BIOS 模式下启动。如果您以错误的模式启动,请重试,但请注意启动菜单选项。通常,外部介质有两个选项,一个带有字符串“UEFI”,另一个没有。带有“UEFI”标识符的那个以 EFI 模式启动,而没有的那个以 BIOS 模式启动。

如何避免再次发生这种情况

如果您需要在基于 BIOS 的计算机上再次删除 Ubuntu,最好在删除 Ubuntu 分区之前将非 Ubuntu 引导加载程序恢复到 MBR。您可以使用 Windows 恢复光盘来执行此操作,或者也可以从 Ubuntu 执行此操作,如这里所述(以及其他地方)。

在基于 EFI 的计算机上,您可以使用efibootmgr来更改启动顺序,然后再删除 Ubuntu 分区。键入sudo efibootmgr以查看选项,然后从列表中识别 Windows(或其他操作系统)的启动条目编号,并使用该-o选项将其设置为列表中的第一个,例如首先sudo efibootmgr -o 2,7启动Boot0002和作为后备启动。另一个选项是在清除 Ubuntu 分区之前立即从 Ubuntu 中Boot0007删除目录。/boot/efi/EFI/ubuntu

在任何类型的计算机上,另一种选择是设置引导加载程序,使其能够在删除 Ubuntu 后继续运行。一种方法是使用单独的 Ubuntu 分区/boot,但不删除它以及主 Ubuntu 分区。然后 GRUB 将继续运行,尽管它将显示无功能的 Ubuntu 选项,并且在没有 Linux 安装的情况下,很难更改其启动选项。有几种方法可以以独立于操作系统的方式在 FAT 分区上设置 GRUB。GRUB4DOS例如,引导加载程序可用于基于 BIOS 的计算机。在基于 EFI 的系统上,可以使用以下替代方案橡胶靴或者我自己的重新索引不依赖于 Ubuntu 分区,并且可以代替或补充 GRUB 使用。

答案2

我相信您可以使用 unetbootin 从可启动 cdrom 映像创建可启动的 usb 拇指驱动器。我已经这样做了。

如果你去这一页并下载启动修复实用程序的可启动 CD-ROM 的 ISO 映像并制作该启动修复拇指驱动器,您可以轻松地将 grub 恢复到您的硬盘驱动器。

您可能有兴趣知道,我的紧急修复工具箱里有这样一个启动修复 U 盘。它非常方便!

相关内容