双启动Ubuntu和Windows 8 – 没有找到操作系统

我正在努力敲定我在新的Sony Vaio Pro上与Windows 8一起运行Ubuntu 13.10的尝试。 经过长时间的研究,我觉得自己陷入困境。

我是从USB启动的,让我概述一下我所做的事情(如果它太详细就道歉)

安装前:

  • 停用安全启动
  • 保持在UEFI启动模式
  • 停用快速启动

最初,当我从USB启动时(在EFI模式下),我立即收到内核错误。 然后我:

  • 引导后按e键进入grub
  • 添加到grub libata.force=noncq在从linux开始的行的末尾。

这解决了问题,安装程序可以运行。 (显然它与SSD有关。)

在安装过程中,我创建了三个分区,所有分区都作为逻辑分区,前两个分区为EXT4。

⠀/ root(10GB)
⠀/ home(40GB)
⠀交换(2GB)

我知道我应该避免使用两个/boot/efi分区,所以我只是保留了Windows 8。

安装成功完成。 之后,计算机将立即启动进入Windows 8。 我使用Live USB安装Boot Repair并按照社区/ Boot-Repair给出的说明进行操作

运行Boot修复后,弹出窗口显示检测到WinEFI文件,并询问我是否要继续更改它们。 在第一次审判期间,我说“是”。 产生的链接是: http : //paste.ubuntu.com//6726194 。 之后,即使Windows 8停止启动,错误是没有找到操作系统。

正如Boot修复程序本身所建议的那样,我再次完成了这个过程,这次我在提示输入WinEFI文件时按“否”。 产生的链接是: http : //paste.ubuntu.com//6726299 。 不幸的是,它再次没有帮助,我无法启动任何一个操作系统。 计算机建议恢复Windows或进入BIOS。

我尝试将引导选项从UEFI更改为Legacy,但这没有用。

我会非常感激任何提示。

您的配置非常奇怪,您的启动修复输出表明您已从摘要中省略了许多重要细节。 最重要的是:

  • 您已将系统从具有GUID分区表(GPT)转换为具有主引导记录(MBR)分区表。 (我假设它最初有GPT因为你说它是一台新计算机;几乎所有随Windows 8或8.1一起提供的计算机都使用EFI和GPT。)MBR的使用对你的所有操作系统都有重大影响。 最重要的是,Windows将仅在BIOS / CSM /传统模式下从MBR磁盘启动。
  • 在两次Boot Repair运行之间的某个时间,您重新分区并安装了Clover引导加载程序,也许还有一个Hackintosh安装程序。
  • 虽然您的/dev/sda1已关闭,但您没有正确的EFI系统分区(ESP)。 要成为ESP,它需要MBR类型代码为0xEF,而不是0x0B。 尽管有这种变化,但有些EFI可能无法识别ESP。 (OTOH,有些人可能会像现在这样使用它 – 这是一个没有充分记录或经过充分测试的区域。)

基本上,像你这样的设置远非常规,你不能指望像Boot Repair这样的工具来正确处理它。 你需要成为专家才能让它发挥作用。 事实上,作为这样的专家(我维护rEFInd启动管理器),我不会触及该配置。 相反,我建议的是:

  1. 擦除分区表并创建空GPT设置。
  2. 创建一个550MiB ESP以及此时您想要创建的任何其他分区。 (但是,您可以保留其各自的OS安装程序创建的部分或全部剩余分区。)
  3. 在EFI模式下安装Windows。
  4. 在EFI模式下安装Ubuntu。 请参阅我在此类安装上的网页和EFI安装上的Ubuntu wiki以获取指导。
  5. 如果您想使用Hackintosh进行三重启动,可以在此时进行设置,但我无法提供有关EFI模式Hackintosh启动加载器的大量建议。 在Hackintosh网站上询问此事。 但是,如果您需要使用BIOS模式的Hackintosh引导加载程序,您可能会发现rEFInd对于启动Hackintosh引导加载程序非常有用。 如果取消注释scanfor中的scanfor选项并在其选项中包含hdbios ,rEFInd可以引导BIOS模式引导加载程序。 我希望现在有一个原生的EFI模式Hackintosh引导加载程序,但我没有跟上Hackintosh的发展。

或者,您可以使用严格的BIOS / CSM /传统模式启动与MBR。 这可能更为熟悉,但世界正朝着EFI和GPT迅速发展,OS X可能会更好地与GPT合作。

你还有一个live-usb,对吧?

你可能想从你的一个linux分区安装grub,因为有时候,boot-repair会失败。 让我解释。

我们将首先从live-cd启动,然后在你的linux分区中chroot,然后调用update-grub。 “chroot”意味着让shell认为根目录位于不同的位置。 它允许终端访问分区,就像从if启动一样。 您也可以使用该方法运行apt-get update

  1. 从live-usb启动。

  2. 在终端(或shell:ctrl + alt + F1)中,调用sudo fdisk -l

  3. 找到你的linux分区。 从现在开始我假设您的分区是/ dev / sda1,但它可能是sdb2或者其他

  4. 调用sudo mount /dev/sda2 /mnt

  5. 也安装文件系统。 这允许您在chrooted时调用分区的命令:

    $ mount -t proc none /mnt/proc

    $ mount -o bind /dev /mnt/dev

    $ mount -o bind /sys /mnt/sys

现在,只需调用sudo chroot / mnt,你就在你的分区中。 我们将安装,检查和更新grub:

 sudo grub-install /dev/sda sudo grub-install --recheck /dev/sda sudo update-grub 

请注意,您只调用驱动器名称(sda)而不是分区名称(sda1)。

希望这可以帮助!

O7