我同时启动了 Ubuntu 14.04 LTS 和 Windows 8.1。使用 Ubuntu 一年后,我决定使用 OS Uninstaller 卸载 Windows。
我使用 Ubuntu live USB 来完成此操作并接近尾声,OS Uninstaller 显示“发生错误”,然后是“成功卸载 Windows,请重新启动计算机”。
我有点困惑,不知道这是安装失败还是成功。我重新启动了,看到一个黑屏,上面写着start pxe over ipv6
我再次重启,然后进入 BIOS。在我的 Ubuntu 和 Windows 启动选项菜单条目中,都显示Drive not present
。
我再次重启,但这次使用的是 USB。我用 Gparted 检查了我的硬盘,一切都和我离开时一样:Ubuntu 和 Windows。
因此我使用了 Boot Repair,并在这里做了一个启动报告:http://paste.ubuntu.com/15265640 我使用 UEFI,并且在安装 Ubuntu 之前,SecureBoot 已被禁用了一年。
编辑:@Ashu 我无法在恢复模式下启动 Linux,因为它是一个实时 USB“无需安装即可试用 Ubuntu”,但我尝试了您所说的操作。
当我运行启动修复时,他一直说“检测到 GPT。请创建一个 BIOS 启动分区(>1MB、未格式化的文件系统、bios_grub 标志)。这可以通过 Gparted 等工具执行。然后重试。”但我有一个启动分区,所以我不明白。
是的,我看到了,但是我怎样才能将 grub2 放入 MBR 中呢?当我运行 grub-customizer 时,它说“grub-mkconfig 无法成功执行。错误消息:/usr/bin/grub-probe:错误,无法获取 `/cow' 的规范路径。”之后,我可以单击“环境设置”,这是在 /cow(当前)分区中,“DEVICEMAP_FILE”/boot/grub/device.map 行有一个 (!),而“OUTPUT_FILE”/boot/grub/grub.cfg 行也有一个 (!)。如何修复这两行?
编辑 2:我做了什么:我按照所有 @Rod Smith 步骤(我的 CSM 现已禁用),除了最后一个 rEFInd > 我想保留我的 grub,我认为我不需要这个,因为我不再需要双启动。我输入了这些命令行(发现这里)
dd if=/dev/zero of=fat.fs bs=1024 count=SIZE how big do you want the filesystem; specify it as SIZE * 1024. mkfs.vfat fat.fs formats the file as the filesystem FAT. mount -o loop fat.fs /mnt mounts fat.fs to /mnt.
现在我的启动盘是 FAT16 格式,而不是 FAT32 格式。在 Gparted 中,我只能“格式化为”,但如果不重新格式化启动盘,就无法更改它。我需要像你说的那样在 FAT32 中修复这个问题。我使用 Super Grub2 Disk 进入我的 Ubuntu 操作系统(顺便说一下,启动时“/efi/boot 丢失”)并按照 Rod 的所有步骤操作。启动修复仍然不起作用(在实时 USB 中),“推荐修复”总是显示相同的消息。我想我唯一的选择是使用“高级选项”自己做,但我需要帮助才能正确完成(将 grub2 放入 MBR)。
这里有一份新的启动报告:http://paste.ubuntu.com/15281116/
编辑 3:现在我可以不用 CD-R 或 USB 启动我的 Ubuntu,但我的分区启动 efi 仍然是 FAT16 而不是 FAT32,我该如何彻底解决这个问题?我尝试删除它,创建一个新的,将其格式化为 FAT32,但现在它又变成了 FAT16。
答案1
Oldfred 在他的评论中的分析是正确的。一些背景:
EFI(或 UEFI,其版本 2.x 变体)是一种固件。它存储在主板上的芯片中。EFI 是旧 BIOS 的替代品——但不幸的是,许多人(甚至主板制造商)将他们的 EFI 称为“BIOS”,这只会造成混淆,因为人们会引入各种不正确的 BIOS 假设。基于 EFI 的计算机通过存储在EFI 系统分区 (ESP),这是硬盘上的一个 FAT 分区,由类型代码标识。(它显示为在parted
或 GParted 中设置了“启动标志”,或在 中显示为类型代码 EF00 gdisk
。)使问题更加复杂的是,大多数 EFI 都具有称为兼容性支持模块 (CSM) 的功能,这使它们能够启动 BIOS 模式的启动加载程序。CSM 之于 EFI 就像 dosemu 之于 Linux,因为它允许较新且更复杂的环境运行为较旧且更简单的环境设计的程序。
CSM 可能是一个小的部分问题在于,它使您能够以 BIOS/CSM/传统模式启动恢复工具。这可能是您收到有关创建“BIOS 启动分区(>1MB,未格式化的文件系统,bios_grub 标志)”的消息的原因——该分区仅在从 GPT 磁盘启动的 BIOS 模式下使用。(如果您在收到该消息时已在 EFI 模式下启动,则启动修复已变得非常混乱。)您可能希望禁用 CSM,以便它不会再引起任何问题。请参阅我的这个页面了解有关 CSM 以及它如何产生问题的更多信息。
您可以通过查找名为 的目录来识别您的启动模式/sys/firmware/efi
。如果存在,则您肯定是在 EFI 模式下启动的;如果不存在,则您可能是在 BIOS 模式下启动的。(有几种方法可以在没有该目录的情况下以 EFI 模式启动,但 Ubuntu 通常不会以这种方式启动。)
您的 Boot Repair 输出显示这/dev/sda1
应该是一个 ESP:
Partition Start Sector End Sector # of Sectors System
/dev/sda1 2,048 206,847 204,800 EFI System partition
不幸的是,它是 NTFS,而不是 FAT:
sda1: __________________________________________________________________________
File system: ntfs
Boot sector type: Windows Vista: NTFS
这可能是 Boot Repair 的错误识别。要仔细检查,您可以尝试使用blkid
,如sudo blkid /dev/sda1
;或者您可以尝试挂载它,然后通过检查 来查看内核认为存在的文件系统/etc/mtab
。如果此识别正确,则您用来删除 Windows 的实用程序很可能损坏了它。我建议提交错误报告,因为如果发生了这样的事情,那么这是一个极其严重的错误。
除非这是文件系统的错误识别,否则你的 ESP 基本上已经消失了;你无法将其恢复到以前的状态。相反,你必须安装一个新的 EFI 模式引导加载程序。要做到这一点:
- 在 上创建一个新的 FAT 文件系统。从应急磁盘
/dev/sda1
键入应该可以完成此操作;或者,如果您更喜欢 GUI 工具,则可以使用 GParted。请注意,您还需要在 Ubuntu 根 ( ) 文件系统(在 上)上进行编辑,以调整与 关联的“UUID”(实际上是序列号),因为创建新的文件系统会改变它。您可以通过键入 来了解新的“UUID” 。如果您愿意,可以将更改推迟到以后。sudo mkdosfs /dev/sda1
/etc/fstab
/
/dev/sda7
/boot/efi
sudo blkid /dev/sda1
/etc/fstab
- 重新安装 Linux 的 EFI 引导加载程序。有很多方法可以做到这一点。最简单的两种方法是:
- 使用启动修复-- 如果你能得到一个 Ubuntu 紧急启动盘在 EFI 模式下,它应该能够重新安装 GRUB,然后您就可以开始了。你说你已经尝试过这个,但失败了。这可能意味着你以 BIOS 模式启动,尽管你的 Boot Repair 输出表明是 EFI 模式启动。因此,要么修复尝试来自与输出不同的启动,要么 Boot Repair 中存在影响你特定情况的错误。
- 使用 rEFInd-- 您可以使用我的 CD-R 或 USB 闪存驱动器版本启动计算机rEFInd 启动管理器。(两者的下载链接都在这一页。启动后,您可以安装 rEFInd Debian 软件包或 PPA(在 ESP 上创建 FAT 文件系统后)。然后,您应该能够重新启动并使用 rEFInd(而不是 GRUB)来控制启动过程。
答案2
您应该尝试在恢复模式下启动 Linux,然后使用 root 命令提示符并尝试再次运行启动修复。对于您来说,grub2 应该安装在 MBR 中。此外,您应该使用 gparted 进行任何磁盘分区工作 - 您的 pastebin 报告中也提到了这一点。
为了让事情变得简单一点,你也可以使用 grub 定制器
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
grub-customizer