系统BIOS在安装后不会将Ubuntu显示为引导选项?

在尝试多次尝试创建可启动USB之后,我终于设法使用PenDriveLinux .com中的Universal USB Installer创建了一个。 我创建了一个具有Ubuntu 13.10 64位风格的可启动USB,并在禁用安全启动后成功启动到USB ,启用UEFI和Legacy启动并手动选择我的USB驱动器。

在我的SSD上的新分区上成功安装Ubuntu之后,我移除了我的USB记忆棒,重新启动了我的计算机并发送了Enter键,以便进入我的BIOS。 我去手动选择从哪里开机,但Ubuntu没有新选项。

因为我是一名计算机科学专业的学生,​​我认为自己相当聪明,所以我只选择了我的SSD,但它运行的是不同的启动顺序(我的计算机用来启动,也不是我新的shiny的Ubuntu操作系统)。 我认为我的计算机通常可以通过我的16GB mSATA快速启动Windows 8.1,但是当我选择它时,它通过我的SSD启动Windows 8.1,而不是Ubuntu。

所以我要问的是,当两者都位于 SSD上时,我如何让它从我的SSD启动Ubuntu而不是Windows 8.1并且没有其他选择? 有没有办法修改BIOS,这样我就可以选择从我的SSD上的一个分区而不是另一个分区启动? 我已经无法启动到Ubuntu,我只是设法以两种不同的方式启动到Windows 8.1。

我已经在下面列出了技术规格,但是如果您需要更多信息,我会确保跟进。


机器:ThinkPad S1瑜伽

技术规格:

  • 英特尔酷睿i7-4500U处理器(4MB高速缓存,高达3.00GHz)
  • Windows 8.1 64
  • MB上8GB PC3-12800 DDR3L
  • 英特尔高清显卡4400
  • 256GB固态硬盘SATA 6G
  • 16GB mSATA

在我开始之前只是一个问题,你有2个驱动器? Windows为256GB,mSATA为16GB? 如果不是Ubuntu,你如何使用mSATA?


据我所知,PenDriveLinux.com创建了MBR风格的可启动媒体,对UEFI的支持不确定。 如果您希望您的计算机使用UEFI,这是真正推荐的,您应该禁用CSM并仅创建UEFI可启动媒体 ,以确保在安装到GPT分区驱动器时可能不会意外地以MBR模式启动和安装,并且可能正在制作事情比较混乱 。

您似乎已安装在MBR模式下,否则安装程序将识别UEFI计算机并能够在其放置在EFI系统分区(ESP)上的固件引导菜单中注册EFI引导加载程序。 如果你在ESP上找不到与Ubuntu相关的.efi二进制文件,那么你可能安装在MBR模式(或GPT MBR模式)下你应该能够以leagcy / MBR模式从驱动器启动,你只需要计算如何。 (通常Thinkpad提供优先级启动,例如首先启动传统。)

Gummiboot作为默认的热插拔UEFI引导加载程序

鉴于您已经拥有GPT分区目标磁盘(所有预装的Windows 8都应该是),您可以尝试按照以下说明对现有MBR安装进行故障排除。

注意:请注意,这些说明不是永久性修复或正确设置。 它们只是一个静态配置,可以帮助您进入安装并从那里继续进行故障排除(例如,正确安装GRUB)。

  1. 得到gummiboot

    从Arch Linux存储库下载 gummiboot。 (一切都很好,我们只是做Linus Torvalds风格的包管理。你可以在右边的包装操作 > 从镜像下载下找到该页面上的下载链接)

    从包中提取gummibootx64.efi (它位于/usr/lib/gummiboot/ )并将其复制为\EFI\BOOT\BOOTx64.EFI到您的ESP。 备份具有相同名称的现有文件(例如使用zip)。

  2. 复制内核文件

    在名为Ubuntu的ESP根目录下创建一个新文件夹,并将具有最高版本号的所有文件从/boot/复制到刚刚创建的文件夹中。

    如果您使用的是Windows, 从存储库下载与您的发行linux-image-$VERSION-generic匹配的最新软件包linux-image-$VERSION-generic 。 ( initrd.img-$VERSION-generic丢失,因为它是由Debian脚本自动生成的。)

  3. 配置gummiboot以引导Ubuntu Linux内核

    沿着ESP根目录下的路径loader/entries/创建文件夹,并在那里创建一个名为ubuntu.conf的文件。 通过编辑此模板后面的文件来创建配置:

     title Ubuntu linux /Ubuntu/vmlinuz-$VERSION-generic initrd /Ubuntu/initrd.img-$VERSION-generic options root=UUID=$UUID ro 
    • 标题:选择你喜欢的。 必须是人类可读的 。

    • linux:要加载的内核的文件名,将$VERSION替换$VERSION您复制的文件的版本号。

    • initrd:初始ram磁盘的文件名。 基本上与linux选项相同, $VERSION与您复制的文件的版本号相同。 如果你没有这样的文件,请保留此行(但我不知道它是否会起作用)。

    • options:$UUID替换$UUID Ubuntu根文件系统的文件系统UUID。 运行ll /dev/disk/by-uuid/ | grep sdxY ll /dev/disk/by-uuid/ | grep sdxY获取GUID,将sdxY替换为实际的设备名称。 (忘记我之前在这里写的有关分区GUID的内容,现在似乎不起作用。)

      您可以从/boot/grub/grub.cfg添加linux行的其余选项。 UUID是必要的部分,其余部分应该是可选的。 我在grub.cfg linux行看起来像这样: root=UUID=00000000-0000-0000-0000-000000000000 ro quiet splash $vt_handoff

    您还需要在loader/添加文件loader.conf以使gummiboot正常工作。

     default Ubuntu timeout 4 

    default是要引导的默认条目的标题。 如果您选择了另一个标题,请相应地进

  4. 重启

    您应该可以从包含带有gummiboot的ESP的HDD / SSD启动,并提供gummiboot菜单,允许您启动Ubuntu安装。

  5. 可选:为GRUB创建gummiboot menuentry

    与上面的说明类似,使用以下内容创建loader/entries/ubuntu.conf

     title Ubuntu GRUB efi \EFI\ubuntu\grubx64.efi 

    替代方案:

     title Ubuntu GRUB efi \EFI\ubuntu\shimx64.efi 

我还在研究这个主题,我想彻底测试一下,然后以干净,非古怪的方式写下来,但这些说明可能会给你提供有用的指导,比你一次又一次安装更有趣。

祝好运。

进一步阅读

FYE

测试期间我遇到的东西:

  • PARTUUID / GUID – 似乎不起作用。
  • 使用dep选项编译的initramfs而不是most
  • 克隆安装的initramfs从源安装中找到hibernate图像并将其引导。 M(
  • Windows避免安装ESP。

我怀疑LiveWireBT做的事情:你在BIOS / CSM /传统模式下将Ubuntu安装到已经在EFI / UEFI模式下启动Windows的计算机上。 这使双启动更加复杂,在某些情况下也是不可能的。

恕我直言,LiveWireBT的解决方案过于复杂和有限。 两种解决方案可能更容易,更灵活:

  • 下载并准备我的rEFInd启动管理器的CD-R或USB闪存驱动器版本的启动介质。 用它启动。 (您可能需要在固件中禁用安全启动。)这应该可以启动Windows和Ubuntu。 如果这样可行,请在Ubuntu中安装Debian-package版本的rEFInd。
  • 在EFI模式下启动Ubuntu Live CD (通过查找/sys/firmware/efi目录validation您是否已在EFI模式下启动。如果它存在,则表示您已在EFI模式下启动。如果没有,您可能已在BIOS / CSM / legacy模式下启动,应该再试一次。在其描述中查找包含字符串“EFI”或“UEFI”的引导选项。)运行引导修复工具。 请务必记录它提供的URL; 如果您尝试此选项但它不起作用,请在此处发布该URL。 它将指出我们在您的计算机上更详细的诊断信息。 理论上,使用Boot Repair应该设置一个新的EFI模式版本的GRUB,它可以让你在Linux和Windows之间切换,两者都以EFI模式启动。

第二种选择比第一种选择风险稍大,因为没有办法测试它会做什么,有时引导修复实际上会使事情变得更糟。 相比之下,从CD-R或USB闪存驱动器测试rEFInd意味着如果它似乎不起作用,您可以在不接触硬盘或NVRAM设置的情况下停止。