完全搞砸了grub / efi / gpt双启动
我好像差点搞砸了我的机器。 我试图在我的外部硬盘上安装一个ubuntu liveusb,但是在这个过程中我搞砸了我的内部设置。 外部工作;)
它是一个双启动系统,它最初带有win8以及一大堆联想/ Windows恢复分区。 它还有一个24GB的SSD混合动力车。 我之前禁用了secureboot,并安装了ubuntu 13.04,最近升级到了14.04。 它一直很好,直到我的小小的冒险。 我的所有引导标志现在似乎也在不断变化。 我不完全确定为什么。
引导修复的输出(这不允许我选择/ dev / sda2或/ dev / sda11,只有sda8(这是我的主分区?)。无论如何我试过了。它说它成功了但是没有做什么明显的。
http://paste.ubuntu.com/7303953/
我的(很多)分区如下:
/ dev / sda1 – WINRE_DRV(1000mb ntfs,flags:hidden,diag)
/ dev / sda2 – 这是我原来的EFI分区(我最初标记为SYSTEM_DRV,格式为fat32,但现在它是一个无法识别的文件系统)。
/ dev / sda3 – 未知,msftres ??
/ dev / sda4 – Windows8操作系统(68GB ntfs,标志:msftdata)
/ dev / sda11 – 我创建了这个带有’boot’标志的fat32,希望创建另一个efi分区并移动它,但它似乎没有被引导修复识别。
/ dev / sda5(350mb,ntfs flags:hidden,diag) – 不知道这是什么。
/ dev / sda6 (20GB ext4,flags:hidden?) – 我的ubuntu系统分区。 不知道为什么它现在有一个’隐藏’标志。
/ dev / sda7 – 4GB交换
/ dev / sda8 – 我的ubuntu主分区(75gb ext3,标志:msftdata)
/ dev / sda10 – 290GB ntfs共享数据分区(标志:msftdata)
/ dev / sda9 – 联想恢复(10GB ntfs,标志:隐藏,诊断)
有些事情在这里被严重搞砸了。 我真的更愿意不重新格式化。 我已经阅读了大部分有关UEFI和GPT等的文章,但我似乎无法解决我的问题,实际上似乎只是让它变得更糟。
livecd grub也可能没有使用正确的文件? 它试图安装i386-pc,当我以为我应该使用像x86_64-efi-signed之类的东西。
请问有人可以帮助我解决这个问题吗?
编辑:
好的,所以我下载并安装了rEFInd到windows并用它制作了一个可启动的USB,这让我可以启动到我的实际Linux操作系统而不是LiveCD。 从那里我能够正确使用boot-repair来安装grub(到/ dev / sda11)并启动/ dev / sda6。
之前启动修复的问题是它没有检测到我的EFI分区,所以它试图将非efi安装到我的/ dev / sda6(可能是因为我是从livecd那里做的)。 这似乎与ubuntu14.04附带的grub有关,它没有EFI支持或什么?
无论如何,现在我在/ dev / sda11上有EFI,但我有两个未知的分区(sda2和sda3)。 什么是sda3首先? 我能用sda2及其上的文件做什么(比如联想恢复的东西)? 我可以删除这些分区,还是会导致更多问题?
最后, 现在只是运行Windows恢复的问题 ? 我想这会再次破坏我的ubuntu和grub。
谢谢!
首先,您缺少EFI系统分区(ESP),它用于保存EFI引导加载程序。 Windows 8附带的大多数计算机都使用/dev/sda2
作为ESP,而你的/dev/sda2
大小合适; 但你的/dev/sda2
拥有一个Linux文件系统并且没有EFI启动加载器。 因此,我的预感是你不小心破坏了ESP,导致计算机无法启动。
与第一点相关,您的硬盘或SSD上似乎没有任何EFI引导加载程序。
您的/dev/sda11
大小适合作为ESP,并且具有FAT文件系统(ESP必须具有),但它被标记为BIOS引导分区。
作为第一步,您必须创建一个合适的ESP。 有两种相对简单的方法可以做到这一点:
- 调整
/dev/sda11
上的类型代码。 在GParted中,您可以通过删除“bios_grub标志”并设置“引导标志”来完成此操作。 在gdisk
,您可以通过将类型代码设置为EF00
来完成此EF00
。 - 调整
/dev/sda2
上的类型代码并使其成为FAT32。 在GParted中,您可以通过设置“引导标志”并在其上创建FAT32文件系统来完成此操作。 在gdisk
,您将类型代码设置为EF00
,然后使用单独的mkdosfs
实用程序在分区上创建FAT32文件系统。
完成后,您就可以开始恢复了。 从理论上讲,您可以使用Boot Repair来完成任务,至少对Linux来说是这样; 但是因为它似乎导致你走错了路,你可能想要做一些不同的事情:
- 下载并准备我的rEFInd启动管理器的可启动USB闪存驱动器或CD-R版本。
- 用rEFInd启动。 它应该向您显示至少一个用于启动Linux的选项。
- 启动到Linux。
- 打开终端窗口。
- 编辑
/etc/fstab
文件以将ESP(/dev/sda2
或/dev/sda11
)安装到/boot/efi
。 - 输入
sudo mount -a
。 - 键入
df -h
并确保/boot/efi
有一行,显示正确安装的分区。 如果没有,请返回步骤#5。 - 下载并安装rEFInd的Debian软件包版本。
此时,rEFInd应该能够启动Linux。 但是,在运行Windows恢复工具之前,Windows安装将无法启动。 您应该可以从Microsoft的站点下载一些东西来修复Windows引导加载程序,但我没有附带的URL或说明。 我建议您在Windows站点上询问是否遇到此部分任务的问题。 请注意,完成后,Windows引导加载程序将被设置为默认值,因此您需要更改它。 您可以按照此过程中的步骤2和10-11进行操作,也可以使用USB闪存驱动器启动到Linux,然后从那里重新安装rEFInd。 或者,您可以在修复Linux之前修复Windows,但在执行特定于操作系统的修复之前,您需要修复ESP。