我尝试在 Lenovo Edge-15 笔记本电脑上安装 Gentoo,但在 UEFI 模式下启动实时 USB .iso 时遇到问题。然后我尝试安装 Ubuntu、Arch 和 Fedora,似乎都遇到了同样的问题。
通过大量的实验/试验/错误,我发现我的笔记本电脑由于某种原因拒绝将我的 USB 闪存驱动器启动到 UEFI 模式。安全启动已禁用。我已启用/禁用 USB 启动并获得了预期结果,并且还启用/禁用了对传统/BIOS 模式启动的支持。当我仅支持 BIOS 模式启动时,不会启动任何 Linux 安装,但是当我启用对 BIOS/传统模式启动的支持时,所有 Linux 安装都可以开始,但它们在安装过程中会随机崩溃。
编辑更具体地说,当从启用了 Legacy 模式/bios 模式的 USB 介质加载时,安装 Linux 时,liveCD 环境总是开始加载,但在系统完全设置之前随机崩溃。此时,我进入了一个没有驱动程序、没有互联网、没有分发实用程序的 shell,只有几个内置的 shell。当我尝试安装 Gentoo 时,我实际上事先将 Gentoo 安装 .iso 写入了硬盘驱动器上它自己的分区。然后,当我尝试从 Gentoo USB 启动时,Gentoo 预安装实时环境从这个磁盘分区加载,就好像它是一张安装 CD 一样,无法检测到 USB。
在我尝试安装 Gentoo 的过程中,当我到达将启动指令写入 GPT 的步骤时,我收到一条错误消息UEFI variables are not supported on this system
,尽管这是在我刚刚编译 Linux 内核并手动且专门启用对 UEFI 变量的支持之后(在 Gentoo 过程中)发生的。无论我尝试写入加载 GRUB2 的指令还是使用 uefiloader,都会出现相同的错误消息。
我的猜测是,这意味着实时环境是在 BIOS 模式下启动的,这使得新内核无法加载并与 GPT 交互,尽管内核支持它,并且其他发行版也出现了同样的问题。
我有一台单独的笔记本电脑(它有一个 BIOS 模式驱动器,没有 Windows 操作系统),并且我尝试了相同的步骤并能够安装全新的 Kubuntu。
我尝试安装每个 Linux 时所使用的程序是在我的旧 Linux 笔记本电脑上下载 *.iso 文件sudo su
(使用dd bs=4M if=linux.iso of=/dev/sdb && sync
检查正确后),然后在新笔记本电脑上启动 USB。/dev/
lsblk
这个相关问题指示我退房此工具。我尝试使用它(启用 Legacy/BIOS 启动),奇怪的是,我的笔记本电脑拒绝启动它。不知道这是否有帮助。
我之前安装过 Kubuntu,所以我知道这个硬件可以安装,但有些东西发生了变化,导致安装失败。这可能是由于几个月前最初安装 Kubuntu 本身,后来尝试安装 Arch Linux 失败,以及稍后尝试安装 Kali Linux 失败。
那么有人能帮我解决这个问题吗?为什么我的系统无法在 UEFI 模式下启动 USB ISO?
答案1
首先,让我们澄清一个可能让你误入歧途的术语问题(尽管它不太可能是导致你主要问题的原因)。你写道:
我的猜测是,这意味着实时环境是在 BIOS 模式下启动的,这使得新内核无法加载并与 GPT 交互,尽管内核支持它,并且其他发行版也出现了同样的问题。
这GUID 分区表 (GPT)是定义分区的基于磁盘的数据结构。它确实不是控制启动过程,尽管启动过程将使用 GPT 来帮助它找到启动文件。GPT 可以在 BIOS 模式或 EFI 模式启动中使用,但使用方式不同:
- 在 BIOS 模式启动中,BIOS 会读取磁盘的第一个扇区并执行存储在那里的代码。此代码通常会加载存储在磁盘其他位置的代码,然后加载其他代码,依此类推,直到内核运行。具体细节因引导加载程序而异。
- 在 EFI 模式启动中,计算机 NVRAM 中的条目 (离开磁盘)指向一个文件在EFI 系统分区 (ESP),这是一个 FAT 分区,用于保存引导加载程序和相关数据。EFI 将此文件作为 EFI 程序运行,而此文件(引导加载程序)会加载并执行内核。
请注意,在 EFI 模式下,启动过程依赖于 NVRAM 中存储的数据。这些基于 NVRAM 的数据可以在操作系统中访问和更改,但要做到这一点,计算机必须在 EFI 模式下启动;您无法在 BIOS 模式下更改 EFI 启动变量。这些变量是不是但是存储在 GPT 数据结构中;它们与 GPT 数据的唯一关系是它们对分区的 GUID 值进行编码,以便 EFI 可以从正确的分区加载正确的文件。
除此之外,还有一个显而易见的问题:
当我启用对 BIOS/Legacy 模式启动的支持时,所有 Linux 安装都可以开始,但它们在安装过程中会随机崩溃。
当程序或操作系统(尤其是像 Linux 这样成熟而强大的操作系统)“随机”出现故障时,这几乎总是硬件问题的征兆。如果非要我下注的话,我会说是“内存坏了”,但也有其他可能性,例如 CPU 坏了、硬盘坏了、主板上的线路损坏了或电源坏了。您可能能够解决 EFI 问题,但它很可能不会比 BIOS 模式启动更可靠。如果这是一台新电脑,您应该认真考虑退货退款并为此购买另一台。如果它不是新的,那么问题是它之前是否可能出现过问题。例如,如果您因为 Windows 崩溃而尝试安装 Linux,那么这些崩溃很可能是由导致 Linux 安装失败的相同硬件故障引起的。
继续讨论安装问题,您在 EFI 模式下启动的步骤听起来很合理;但是,您应该仔细检查启动管理器中的启动选项(无论您按什么键都可以获得包含 USB 驱动器的启动选项菜单)。大多数支持 BIOS 模式启动的基于 EFI 的计算机都为 USB 驱动器和光盘提供了两个启动选项:一个包含字符串“UEFI”,另一个不包含。描述中带有“UEFI”的字符串在 EFI 模式下启动,另一个在 BIOS 模式下启动。要以 EFI 模式启动安装程序,您必须选择“UEFI”选项。
如果您这样做,那么可以想象您的固件在dd
-created USB 驱动器的怪兽性质上出现了问题。如果您的计算机有光盘,请尝试使用它。如果没有,请尝试使用其他工具来创建您的 USB 驱动器。不幸的是,这可能很难做到,因为某些工具(尤其是较旧的工具)缺乏创建 EFI 可引导映像的能力。阅读您使用的任何工具的说明,以确保它支持 EFI 模式引导。有些工具要求您选择特定选项来制作 EFI 可引导磁盘。我不能比这更具体了,因为我不记得我见过的细节;我dd
自己通常使用 -created 映像。
另一个选择是使用我的rEFInd 启动管理器控制启动过程。您可以下载几张图片,包括那些要写入 CD-R 或 USB 闪存驱动器的程序。rEFInd 可能能够重定向到您的基于 USB 的安装程序;或者您可以在 BIOS 模式下安装,然后使用 rEFInd 来启动安装。(Linux 的 EFI 模式和 BIOS 模式安装通常仅在其引导加载程序方面有所不同,USB 驱动器或 CD-R 上的 rEFInd 可以充当该角色。)
答案2
如果您想在 UEFI 模式下安装 ubuntu,可以按照以下步骤操作。您需要一个 Windows 操作系统来写入 USB。
您必须使用其他软件将 iso 映像刻录到 USB,然后就可以照常安装,而无需关闭 UEFI 或 fastboot。只需按照以下简单步骤操作即可
下载 Ubuntu 14.04、14.10 或 15.04 磁盘映像。
下载并安装 wind32Diskimagerhttp://sourceforge.net/projects/win32diskimager/
打开软件,找到您下载的 Ubuntu 映像和可移动驱动器,然后单击写入。
从 USB 启动并安装 ubuntu。(请记住不要选择与 Windows 一起安装的选项,而要选择其他选项)。
Diskimager 在您的 USB 中创建一个适用于 UEFI 模式的 UEFI 分区。
另外,请确保在 USB 写入完成后重新启动 Windows,以便 USB 驱动器从此 PC 中消失,您可以转到磁盘管理并查看它是否已正确写入。您的 USB 将有三个分区,两个未分配的分区和一个 UEFI。