如何从EFI / UEFI启动Ubuntu?

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

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

我认为这是因为EFI。

回归:

  • 我已检查系统设置(POST期间的F1)以查找禁用EFI / UEFI启动的BIOS选项,但是,此机器没有此选项。
  • 这可能是由BIOS中的“安全启动”function引起的。
  • 硬件供应商不知道BIOS中会阻止Linux启动的任何此类“安全启动”设置。
  • 联想支持部门对于称为安全启动的BIOS设置一无所知。 他们也不知道会阻止Linux启动的任何限制。
  • ThinkCentre 1577 BIOS手册未提及EFI,UEFI和安全启动。

如何在具有EFI的计算机上安装Ubuntu? – 或者,因为Ubuntu可能已经安装:如何让它启动Ubuntu?

这是nerasezi在Ubuntu论坛上的修改后的post

UEFI的主要来源是Ubuntu UEFI指南

以下是他所做的步骤:

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

    确保您的实时系统正在UEFI模式下启动。 您可以在UEFI设置上进行检查,可能是在Boot选项或类似设置下。 在我的例子中,它只是在设备名称前加上“UEFI”前缀。

  2. 一旦实时系统运行,通过键入设置root密码
    sudo passwd root

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

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

  4. UEFIBooting指南的部分内容如下:

    建立GRUB2(U)EFI

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

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

    bison autoconf automake flex autogen python(2.x系列)(对于autogen.sh,如果从bzr repo构建)texinfo help2man gettext(NLS支持)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 SYSTEM PARTITION。 (如果在第二个高清上设置,它应该是/ 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固件启动管理器。 这需要在UEFI模式下引导内核,并且内核处理器体系结构应该与固件体系结构匹配(并且不使用’noefi’)来加载’efivars’内核模块,并且efibootmgr访问引导管理器变量。 如果在BIOS模式下安装了grub2-efi,则最初用户需要从固件控制台本身手动启动“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) – >分区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 / grub“Efi系统分区上的目录(仍应安装在/ mnt下)。

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

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

确定计算机是否在EFI模式下引导CD

警告:即使您的PC在EFI模式下启动CD,它也可能在传统模式下启动硬盘驱动器(反之亦然)。

在64位Ubuntu磁盘上启动时:

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

UEFI模式

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

BIOS模式

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

一旦进入grub屏幕,可以通过按“c”下降到命令行并尝试lsefisystab ,它应该给出带有GUID的EFI条目表,这是另一种方便的方法,用于在安装之前识别是否正在使用UEFI。

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

参考本页的rodbooks显示Ubuntu 11.10使用FAT16文件系统制作ESP,而某些UEFI固件需要带有FAT32文件系统的ESP。 如果你执行Ctrl + F并在本段链接页面上搜索Fedora,你会找到完整的解释。(在“查找栏”中单击“下一步”直接转到所引用的信息)。
考虑到安全启动所需的UEFI规范=> UEFI 2.2和Windows 8预安装的机器将使用UEFI 2.3.1。
所有这些都证实Ubuntu 11.10不具备安全启动能力,因此安全启动不是问题所在。

使用UEFI安装Windows后可以使用UE,这只能在使用UEFI时使用GPT; 由于安装程序的不足,Ubuntu使用BIOS / legacy设置进行安装。 即Ubuntu可以使用BIOS或UEFI安装到GPT,然后导致需要切换固件设置以启动每个OS。

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

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

一个重要的部分(可能是供应商特定的)是如何在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的传统启动。

解决了我的ACER笔记本电脑5560G上的EFI问题,结果发现在Wubi USB磁盘上重命名EFI目录和EFI文件 (感谢immerohnegott)。

它强制在2个预制分区上安装普通GRUB,并在USB记忆棒上安装GParted。 分区是:

  • /boot (100 mb)
  • /(70 GB)

重新启动到Windows 7并安装免费版EasyBCD。 添加一个新条目, Linux -- >> Grub 2 ,它将搜索GRUB引导加载程序的所有分区。

这样就不会触及Windows“系统保留”分区和PQSERVICE Acer隐藏分区。

你可以制作适用于EFI系统的USB可启动驱动器,我不像你们的一些经验丰富,所以我想出了一种简单易用的方法:)

在具有EFI bios的机器中,插入带有Parted Magic的CD / DVD(我将它放在我制作成CD而不是USB的HIREN Boot CD上)从该CD / DVD启动。

进入Parted Magic后,插入一个至少有2GB内存的空USB跳转驱动器。 打开Parted Magic中包含的Unetbooten实用程序。 运行程序并选择要在跳转驱动器上加载的任何分发。 按照指示等待它完成。

USB驱动器现在应该在任何EFI系统上启动。 至少它对我有用:oP

你需要弄清楚如何让你的BIOS在efi模式下启动安装光盘,而不是bios模式。 您将知道它正在以efi模式启动,因为您将获得grub菜单而不是通常的syslinux菜单。

我遇到了在Lenovo ThinkCentre M91p上安装Ubuntu 14.04的问题,我有一个快速/简单的解决方案:

  1. 在从Ubuntu安装盘/ USB启动之前,进入BIOS并在“启动”选项卡下将“启动模式”从“自动”更改为“旧版”。
  2. 安装Ubuntu。
  3. 如果需要,请将BIOS中的引导模式更改回自动。

这对我来说始终如一。

非常确定它的工作原理是因为Ubuntu安装程序在决定安装哪个引导加载程序时会检测BIOS是否支持EFI。 通过将BIOS设置为legacy,Ubuntu最终会安装与这些Lenovo计算机配合使用的旧引导加载程序。

在BIOS设置中,将硬盘模式更改为IDE,然后从USB闪存驱动器启动。 它将以非UEFI模式安装,安装后启动也可以正常工作。

这个特殊的方法对于我来说非常适合在联想ThinkCentre Edge 71上使用Ubuntu 16.04,具有最新的BIOS版本。

我也遇到过类似的问题。

我所经历的是,带EFI的电脑也配备了BIOS。 我疯了似的垃圾邮件F2,发生的事情是我可以选择使用EFI或标准BIOS。

但请注意,如果您使用BIOS,计算机将启动消息:“未找到操作系统”。

因此,您可以从那里格式化您的计算机并使其作为普通PC启动。

我有同样的问题…我买了这台桌面的新联想野兽并遇到了同样的问题,我不想要任何WIN 8.1,(自从红帽6.1以来我一直在处理Linux)但是我不熟悉完全使用UEFI / EFI。 PC woudnt甚至启动liveCD。 在这个博客上挖掘完tru信息之后,我发现你必须在UEFI / EFI / BIOS中改变一些东西,首先是禁用CSM,然后在启动启动选项中选择“Legacy only”。 重启和繁荣! 我是在 。 安装Ubuntu 12.04我很高兴。 后来我发现在将这些相同的设置更改回“UEFI Only”错误“OS not found”之后,12.04无法启动。据我所知,Ubuntu在12.10开始支持此UEFI,我将其升级到13.04,更改了相同的设置,启用仅限CSM和UEFI,瞧! 我从UEFI启动,我发现机器运行得更好! 你不必从UEFI全新安装只需升级到13.04 / 10就可以回到UEFI了,但它对我有用……等着看看Linux用这个相当新functionUEFI / EFI做了什么,这里有一些潜力

同样的问题在这里 我通过从SuperGrub CD永久启动来“解决”它。 我不介意这样做。 我认为这是一个安全function; 我的SuperGrub CD是我的附加密钥。 当我在Ubuntu中检查我的硬盘时,我可以看到Ubuntu-HDD是非MBR磁盘。 看起来像重新分区这个磁盘添加MBR将解决问题但我懒得经历所有这些麻烦。