BIOS 启动分区的正确类型和大小是多少?

Man*_*dan 1 partitioning bios uefi boot-partition system-installation

关于Ubuntu安装:

  • 它适用于DesktopServer环境
  • HDD对于基于或的硬盘SSD

对于基于启动目的的最新UEFIPC 或笔记本电脑,建议定义/boot/efi1GB 空间。

对于使用(因此不存在)用于启动目的的PC 或笔记本电脑,建议的分区类型和空间应该是什么?BIOSUEFI

ubf*_*an1 6

根据要求,一些背景/扩展评论:

引导加载程序的存在是为了运行内核,无论它位于磁盘上的任何位置。

“引导分区”这个术语有点含糊,有时它可能用来指带有“引导”标志的分区,或者指保存 Linux 内核的分区 (/boot)。

PC 磁盘的两种主要分区类型 GPT 和 MSDOS 都可以在 UEFI 或 BIOS/legacy 两种模式中使用。Ubuntu 可以在任一模式下安装在任一分区类型上,但 UEFI 模式下的 Windows 8/10 需要 GPT 分区,而在传统模式下需要 MSDOS 分区。过去 10 年来,GPT/UEFI 一直是 PC 上的标准,因此这是首选设置。有时,从旧模式下的 Windows 7 进行的 Windows 更新可能会导致 Windows 10 以旧模式安装在 MSDOS 磁盘上。

要在 UEFI 模式下启动(假设硬件中存在功能),任一分区类型都需要一个 EFI 分区,其中包含 1) FAT 文件系统、2) 启动标志和 3) ESP(EFI 系统分区)标志。

实际的引导加载程序(grubx64.efi 和 shimx64.efi)只是此文件系统上的文件。其他引导加载程序(例如 Windows 的 bootmgfw.efi)可能存在于该文件系统上。UEFI 硬件可以在内存中保留多个引导加载程序位置,以便您选择一个,此外还有一个与磁盘关联的默认位置和引导加载程序 /EFI/Boot/bootx64,efi,而这不需要在 UEFI 内存中。

如果此时根文件系统是可读的(即未加密,或者在 grub 未知的某些文件系统上),则可能会找到并引导内核 - 不需要其他分区。如果不是这种情况,则可能会出现未加密/已知的文件系统分区需要 -- 这是(通常是 ext4 文件系统)/boot 分区。请参阅下面的 MSDOS 部分了解 /boot 大小建议。通常,此 EFI 分区安装在 /boot/efi,但这只是在更新 grub 或 shim 的情况下-- 该安装对于启动或运行都不是必需的。

我的默认引导加载程序、ubuntu 引导加载程序和 Microsoft 引导加载程序使用的空间不到 50MB,因此 200MB EFI 分区似乎就足够了。

BIOS 模式比较古老,也比较原始。它的引导加载程序硬连线到磁盘的第 0 扇区(512 字节扇区)。一个扇区对于引导来说太小,因此引导加载程序会跳转到某个位置及其其余代码。在 MSDOS 分区磁盘上,此位置通常卡在分区之间,甚至不在文件系统中。在 GPT 分区磁盘上,分区之间没有空间可以插入引导加载程序的其余部分,因此需要为代码指定一个明确的位置 - 带有 BIOS-GRUB 标志的未格式化的小分区 (1MB-2MB)。同样,如果内核在根目录下可读,它就会运行——如果根目录不可读,则需要一个单独的可读位置 /boot,这与 UEFI 中的限制相同。此外,在旧硬件上,在根文件系统中找到内核的位置可能会受到限制 - 距离根太远,并且内核可能超出 BIOS 引导程序的寻址能力。这就是在磁盘开头使用 /boot 分区的最初原因,以确保内核启动时磁盘中不会有太多扇区供 BIOS 找到。将 /boot 设为单独的分区,而不是根目录,当它被旧内核填满时,往往会导致问题。每个内核占用的空间不到 100MB(假设 initrd 文件采用标准压缩),因此使用备份内核和更新,只要确保删除旧内核,300MB 似乎就足够了。自动删除可能会为您完成这项工作,但是当发生更新时您可能会运行旧内核,然后您可能会留下多余的旧内核。开始使用更高版本的内核,您可能会开始维护两个内核系列,每个系列都有一个备份,并且当发生更新时,可能会存在六个内核。这可能就是提到的 1GB 建议所解决的问题。为 /boot 提供几百个额外的 MB 可以避免许多问题。