关于Ubuntu
安装:
- 它适用于
Desktop
或Server
环境 - 对于基于任一
HDD
或的硬盘SSD
对于基于用于启动目的的最新PC 或笔记本电脑,建议定义1GB 空间。UEFI
/boot/efi
对于使用- 因此不存在-用于引导目的的旧PC 或笔记本电脑,建议的分区类型和空间应该是什么?BIOS
UEFI
关于Ubuntu
安装:
Desktop
或Server
环境HDD
或的硬盘SSD
对于基于用于启动目的的最新PC 或笔记本电脑,建议定义1GB 空间。UEFI
/boot/efi
对于使用- 因此不存在-用于引导目的的旧PC 或笔记本电脑,建议的分区类型和空间应该是什么?BIOS
UEFI
根据要求,一些背景/扩展评论:
引导加载程序的存在是为了运行内核,无论它在磁盘上的什么位置。
“引导分区”这个词有点含糊,有时它可以用来指代带有“引导”标志的分区,或者是一个保存 Linux 内核(/boot)的分区。
PC 磁盘的两种主要分区类型,GPT 和 MSDOS,可以分别用于 UEFI 或 BIOS/legacy 两种模式中的任何一种。Ubuntu 可以安装在任一模式下的任一分区类型上,但 UEFI 模式下的 Windows 8/10 需要 GPT 分区,而传统模式下则需要 MSDOS 分区。在过去 10 年中,GPT/UEFI 一直是 PC 的标准,因此这是首选设置。有时,在旧模式下从 Windows 7 更新 Windows 可能会导致在旧模式下安装在 MSDOS 磁盘上的 Windows 10。
要在 UEFI 模式下启动(假设存在硬件功能),任何一种分区类型都需要具有 1)FAT 文件系统、2)启动标志和 3)ESP(EFI 系统分区)标志的 EFI 分区。
实际的引导加载程序(grubx64.efi 和 shimx64.efi)只是此文件系统上的文件。此文件系统上可能存在其他引导加载程序,例如 Windows 的 bootmgfw.efi。UEFI 硬件可以在内存中保留多个引导加载程序位置以允许您选择一个,此外还有一个与磁盘关联的默认位置和引导加载程序 /EFI/Boot/bootx64,efi,并且不需要在 UEFI 内存中。
如果此时根文件系统是可读的(即未加密,或者在 grub 未知的某些文件系统上,则可能会找到并引导内核——不需要其他分区。如果不是这种情况,则可能是未加密/已知的文件系统分区需要 - 这是(通常是 ext4 文件系统)/boot 分区。有关 /boot 大小建议,请参阅下面的 MSDOS 部分。通常,此 EFI 分区安装在 /boot/efi,但这只是在更新 grub 或 shim 的情况下-- 启动或运行都不需要挂载。
我的默认、ubuntu 和 Microsoft 引导加载程序使用不到 50MB,因此 200MB EFI 分区似乎就足够了。
BIOS 模式更旧,更原始。它的引导加载程序硬连线到磁盘的零扇区(512 字节扇区)。一个扇区太小而无法启动,因此引导加载程序会使用其其余代码跳转到某个位置。在 MSDOS 分区磁盘上,此位置通常卡在分区之间,甚至不在文件系统中。在 GPT 分区磁盘上,分区之间的引导加载程序的其余部分没有空间可以塞入,因此需要为代码创建一个明确的位置——一个带有 BIOS-GRUB 标志的未格式化小分区 (1MB-2MB)。同样,如果内核在 root 上可读,它就会运行——如果 root 不可读,则应用与 UEFI 相同的限制,需要一个单独的可读位置,/boot。此外,在旧硬件上,在根文件系统中找到内核的位置可能存在限制——太远了,并且内核可能超出了 BIOS 引导程序的寻址能力。这是在磁盘开头使用 /boot 分区的最初原因,以确保内核的启动不会进入磁盘太多扇区以供 BIOS 找到它。当 /boot 被旧内核填满时,将 /boot 设置为单独的分区而不是根目录往往会导致问题。每个内核占用不到 100MB(假设对 initrd 文件进行标准压缩),因此使用备份内核和更新,只要确保删除旧内核,300MB 似乎就足够了。自动删除可能会为您完成这项工作,但您可以在更新发生时运行旧内核,然后您可能会留下多余的旧内核。开始使用更高版本的内核,您可能会开始维护两个内核系列,每个系列都有一个备份,当更新发生时,可能存在六个内核。这可能是提到的 1GB 建议似乎要解决的问题。给 /boot 额外的几百 MB 可以避免很多问题。