我在新的SSD上使用UEFI启用并使用USB安装介质安装16.04 64位桌面版时遇到了完全相同的问题。与问题中所述不同,我选择创建自己的分区,因为我有其他磁盘要挂载。在软件包安装的开始阶段,我遇到了这个错误。
经过一番搜索,我找到了这个页面:
https://help.ubuntu.com/community/UEFI#General_principles
在“一般原则”部分中提到:
如果您的硬盘驱动器上没有任何UEFI分区,您首先需要创建它
并指向:
https://help.ubuntu.com/community/UEFI#Creating_an_EFI_System_Partition
其中提到:
- 挂载点:/boot/efi(备注:使用手动分区时无需设置此挂载点,Ubuntu安装程序会自动检测)
- 大小:最小100MiB,推荐200MiB。
- 类型:FAT32
- 其他:需要“boot”标志。
所以我重新安装系统,并在对驱动器进行分区时,从包括文件系统和交换空间在内的列表中选择了EFI选项,并将其设置为磁盘开头的200MB。但我没有获得选择文件系统或设置可启动标志的选项。
此后,剩下的安装过程顺利完成。
以下是安装后该磁盘上的分区情况:
![enter image description here](https://istack.dev59.com/PNT96.webp)
通过运行
parted
可以查看相同的信息。
$ sudo parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: ATA Samsung SSD 750 (scsi)
Disk /dev/sda: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
2 1049kB 200MB 199MB fat32 boot, esp
3 200MB 242GB 242GB ext4
1 242GB 250GB 8000MB linux-swap(v1)
(parted) q
请注意,创建的分区是一个
EFI系统分区(ESP),而磁盘使用的是
GUID分区表(GPT),而不是
MBR分区表。
如果您在此磁盘上查看
/boot/efi
或
/sys/firmware/efi/
,您应该会发现它们已经填充。同样地,运行
sudo efibootmgr
应该会提供真实的输出。如果您想要更多信息,请参考下面的链接。
更多信息
如果您想了解更多关于UEFI工作原理的信息,强烈推荐阅读Adam Williamson的文章
UEFI boot: how does that actually work, then?。
他在文章中描述了导致此错误的情况(请注意,他是Fedora用户,但对于Ubuntu也适用)。
如果进行手动分区,请处理EFI系统分区
我只能在这里给出Fedora的权威建议,但对其他发行版/操作系统也可能有用。
如果您在进行UEFI本机安装时允许Fedora为您处理分区,并且您使用GPT格式化的磁盘,或者允许其重新格式化磁盘(通过删除所有现有分区),它将为您处理EFI系统分区的相关事项。
然而,如果您使用自定义分区,则它将期望您提供一个EFI系统分区供安装程序使用。如果您不这样做,安装程序将抱怨(并显示一条有些令人困惑的错误消息),并拒绝让您开始安装。
因此,如果您正在进行UEFI本机安装并使用自定义分区,请确保以“/boot/efi”挂载一个“EFI系统分区”类型的分区-这是Fedora期望找到其正在使用的EFI系统分区的位置。如果系统上已经存在EFI系统分区,请将其挂载点设置为“/boot/efi”。如果尚未存在EFI系统分区,请创建一个分区,将其类型设置为EFI系统分区,使其至少200MB大(500MB较好),并将其挂载点设置为“/boot/efi”。