如何从 EFI/UEFI 启动 Ubuntu?

erv*_*gsb 21 boot uefi system-installation

我在新购买的联想 ThinkCentre Edge 71(型号:1577-G3G)上安装了 Ubuntu 11.10,并启用了 EFI 启动。我选择了使用整个磁盘选项。即使安装过程没有任何问题/错误,现在重新启动时只会给我:

没有可启动的操作系统。插入可启动磁盘并按任意键...

我认为这是因为 EFI。

回归:

  • 我已经检查了系统设置(开机自检期间的 F1)以找到禁用 EFI/UEFI 引导的 BIOS 选项,但是,这台机器没有这样的选项。
  • 这可能是由 BIOS 中的“安全启动”功能引起的。
  • 硬件供应商不知道 BIOS 中的任何此类“安全启动”设置会阻止 Linux 启动。
  • Lenovo 支持人员对称为安全启动的 BIOS 设置一无所知。他们也不知道任何会阻止 Linux 启动的限制。
  • 的ThinkCentre 1577 BIOS手册中没有提到EFI,UEFI也不安全引导。

如何在带有 EFI 的机器上安装 Ubuntu?- 或者,由于 Ubuntu 可能已经安装:我如何让它启动 Ubuntu?

Lui*_*ado 11

这是 nerasezi 在Ubuntu 论坛中修改的帖子

UEFI 的主要来源是Ubuntu UEFI 指南

以下是他所做的步骤:

  1. 使用与 UEFI 架构匹配的 Live CD。主要是 x86-64。启动 live cd(xubuntu 或 lubuntu。它们是轻量级桌面,但它也应该适用于 Ubuntu 和 kubuntu)。

    确保您的实时系统以 UEFI 模式启动。您可以在 UEFI 设置中检查它,可能在引导选项或类似选项下。就我而言,它只是在设备名称之前加上“UEFI”前缀。

  2. 实时系统运行后,通过终端输入 root 密码
    sudo passwd root

    然后从默认的 live cd 用户注销并在 gui 模式下以 root 身份登录。插入硬盘驱动器。我使用 USB3 便携式硬盘,但在大多数情况下,硬盘驱动器是 SATA 内部驱动器。无论如何,请确保您已备份所有数据,因为该过程将擦除驱动器上的所有内容。启动 Gparted(GUI 工具比文本工具容易得多)并选择您愿意将系统安装到的驱动器。(一定要选择正确的!)指向顶部菜单并选择设备>创建分区表...弹出警告消息。单击高级并选择“gpt”。说 OK 已创建新的 GPT 磁盘布局。现在您需要在其上创建分区。创建一个 FAT32 卷作为第一个和主分区非常重要,您需要为其分配标签 EFI。创建分区后,右键单击它并选择“管理标志”。检查“引导”标志并说“确定”。继续创建 / 分区(您可能希望将 /home 和 /boot 分开。像往常一样这样做。在我的例子中,我刚刚创建了 / 分区)和一个交换区。始终首选主分区,因为 GPT 已删除 4 个主分区限制。关闭 Gparted。

  3. 将系统安装到硬盘“/”分区,记得在此处指向要安装的引导加载程序(GRUB 1.99)。如果您创建了一个单独的“/boot”分区,则必须为引导加载程序安装选择该分区。

  4. 这是 UEFIBooting 指南中的部分:

    构建 GRUB2 (U)EFI

    下载最新的 grub2 源代码 ZIP 文件。ftp://ftp.gnu.org/gnu/grub/

    构建 grub2 需要安装以下程序(构建依赖项):

    bison autoconf automake flex autogen python (2.x series) (for autogen.sh if build from bzr repo) texinfo help2man gettext (NLS support) device-mapper freetype2 (libs)

    sudo apt-get install bison libopts25 libselinux1-dev autogen m4 autoconf help2man libopts25-dev flex libfont-freetype-perl automake autotools-dev freetype2-demos texinfo efibootmgr

    efibootmgr已添加到您需要安装的软件中,因为您稍后将需要它。

    对于 64 位 (U)EFI:

export EFI_ARCH=x86_64 ./configure --with-platform=efi --target=${EFI_ARCH} --program-prefix="" make

如果您有 32 位架构,请查看我在顶部提供的链接中的在线文档。

在 (U)EFI 系统中安装 GRUB2

确定您的 EFI 系统分区。(如果设置在第二个硬盘上,它应该是 /dev/sda1 或 /dev/sdb1 )

然后将分区挂载到 /mnt/EFISYS(或您希望的任何挂载点)。以下代码假定 /dev/sda1 是 EFISYS 分区。

sudo mkdir -p /mnt/EFISYS

sudo modprobe dm-mod

sudo mount -t vfat -o rw,users /dev/sda1 /mnt/EFISYS

sudo mkdir -p /mnt/EFISYS/efi/grub

然后,为 GRUB 构建一个 EFI 应用程序并复制它和其他模块:

进入“grub2 编译源/grub-core”目录 - 默认:/usr/lib/grub/{EFI_ARCH}

grub-mkimage -O ${EFI_ARCH}-efi -d . -o grub.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot

sudo cp grub.efi *.mod *.lst /mnt/EFISYS/efi/grub

注意: -p "" 选项对于创建便携式 grub.efi 应用程序很重要。现在在 /mnt/EFISYS/efi/grub 中创建一个 grub.cfg :

sudo touch /mnt/EFISYS/efi/grub/grub.cfg

使固件默认启动 GRUB2 (U)EFI

对于非 Mac UEFI 系统,efibootmgr 用于修改 UEFI Firmware Boot Manager。这要求内核在 UEFI 模式下启动,并且内核处理器架构应与固件架构匹配(并且不使用 'noefi'),以便加载 'efivars' 内核模块并使用 efibootmgr 访问启动管理器变量。如果 grub2-efi 是在 BIOS 模式下安装的,最初用户需要从固件控制台本身手动启动“efi/grub/grub.efi”。然后应该运行 efibootmgr 来创建引导条目。

sudo modprobe efivars

进入“grub2编译源/grub-core”目录

grub-probe --target=device /boot/efi/efi/grub/grub.efi

假设 grub-probe 的输出为 /dev/sda1

sudo efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "GRUB2" --loader "\\EFI\\grub\\grub.efi"

在上面的命令中,/boot/efi/efi/grub/grub/efi可以拆分为/boot/efi和/efi/grub/grub.efi,转换为(/dev/sda) -> partition 1 - > \EFI\grub\grub.efi 。

  1. 打开 Synaptic 并删除所有 grub 包,然后只安装 grub-efi 包(对我来说是 amd64)和所有必要的依赖项。安装完成后,在终端中运行 sudo update-grub 。您应该从 /boot/grub 编辑“grub.cfg”并检查磁盘 UUID 是否与您的磁盘和分区匹配,语音“insmod part_”和“set root='(hd0,”有“gpt”文本行。如果一切正常好的,将“grub.cfg”复制到 EFI 系统分区上的“efi/grub”。如果我之前提到的内容不匹配,只需编辑 grub.cfg 并手动更改它们的值。然后将文件复制到“ Efi 系统分区上的 efi/grub”目录(仍应挂载在 /mnt 下)。

    然后当我重新启动系统时,UEFI 设置下的 Boot 选项卡上出现了一个新条目,名为 GRUB2,我将其设置为默认引导选项。


gee*_*nsa 5

为了帮助确认您的机器是否支持 U/EFI,只需dmesg | grep EFI在实时桌面会话中从终端运行即可。
为了帮助确认您安装的 Ubuntu 是否已使用 U/EFI 启动,请查看/sys/firmware/efi返回的内容。
一个节省时间的解决方案是确保 Ubuntu 在安装时确实以 UEFI 模式启动。参考较新的Ubuntu UEFI 指南第 2.4 节很好地说明了这一点

识别计算机是否以 EFI 模式引导 CD

警告:即使您的 PC 以 EFI 模式启动 CD,它也可能以传统模式启动 HDD(反之亦然)。

在 64 位 Ubuntu 磁盘上启动时:

  • 如果 BIOS 设置为以 EFI 模式启动 CD,那么您将看到以下屏幕:

UEFI模式

  • 如果 BIOS 未设置为以 EFI 模式启动 CD,或者磁盘不是 64 位,那么您将看到以下屏幕:

BIOS模式

请务必使用所提及的相同指南,以确保也使用 UEFI 引导硬盘驱动器。这可能就像将 SATA 设置为 AHCI 一样简单,但取决于您使用的固件。

进入 grub 屏幕后,可以通过按“c”进入命令行,然后尝试lsefisystab哪个应该提供带有 GUID 的 EFI 条目表,这是在安装前确定是否正在使用 UEFI 的另一种方便的方法。

可以用来dmesg | grep EFI确定您的机器是否支持 UEFI。在我的一台不支持 U/EFI 的机器上,但这样做给了我支持 UEFI?
这可能会产生误导,因为在使用 EFI 启动时,在支持 UEFI 的机器上执行相同的命令会返回更多的行(可能超过 50 行)我在rodsbooks 上找到了这个简单的提示(链接用于 rEFInd,它是使用 Grub2 的替代方法)。rodsbooks 网页会定期更新,是非常可靠的信息来源。至少可以说,作者是一位 UEFI 教授,如果不是天才的话!

参照这个rodsbooks显示,Ubuntu的11.10使得ESP的使用FAT16文件系统,其中一些UEFI固件需要一个ESP与FAT32文件系统。如果您执行Ctrl+F并在本段的链接页面上搜索 Fedora,您将找到完整的说明。(在“查找栏”中单击“下一步”可直接转到所引用的信息)。
考虑到安全启动所需的 UEFI 规范是 => UEFI 2.2,预装 Windows 8 的机器将使用 UEFI 2.3.1。
所有这些都证实 Ubuntu 11.10 不支持安全启动,因此安全启动不是问题。

使用UEFI后可以安装Windows-使用UEFI时只能使用GPT;由于安装程序缺陷,Ubuntu 使用 BIOS/传统设置进行安装。即 Ubuntu 可以使用 BIOS 或 UEFI 安装到 GPT,然后需要切换固件设置以启动每个操作系统。

确定 Windows 是否正在使用 UEFI 是使用磁盘管理来确认正在使用 GPT。可以使用本指南将 Windows Bios 安装转换为 UEFI将 Windows BIOS 安装转换为 UEFI

一种简单的解决方案是运行 Boot-repair-disk(与使用完整的 Ubuntu.iso 然后安装 boot-repair 相比,下载 cd .iso 意味着启动稍微快一些。在运行推荐的修复之前检查高级选项,记住哪些固件设置你曾经使用过引导引导修复。引导修复将安装 grub-efi 并修复固件硬编码问题,以便系统使用 UEFI 和引导 Ubuntu 以及使用 UEFI 的任何其他现有安装。

一个重要的部分(可能是供应商特定的)是如何在 EFI 模式下启动(即,同一个 Ubuntu 14.04 LTS CD 可以检测两种不同的模式并呈现不同的文本与非文本启动屏幕,如上所示)。

http://forum.hardware.fr/hfr/OrdinateursPortables/portable/resolu-installation-probleme-sujet_67937_1.htm

或这个:

http://rog.asus.com/220572013/rampage-motherboards/rampage-iv-uefi-boot-installation-guide-on-windows-7-or-8/

请注意,在 BIOS 设置引导优先级时,DVD 通常有两个不同的选项:Px 或 UEFI(或其他一些词)。其中一个用于 UEFI,另一个用于传统的基于 MBR 的启动。


psu*_*usi 1

您需要弄清楚如何让您的 BIOS 以 efi 模式而不是 BIOS 模式启动安装 CD。您会知道它正在以 efi 模式启动,因为您将看到一个 grub 菜单,而不是通常的 syslinux 菜单。