我的系统上有 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 盘。它非常方便!