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

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

关于Ubuntu安装:

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

为一个最新的UEFI为了启动目的,建议为 PC 或笔记本电脑定义/boot/efi1GB 的空间。

老的PC 或笔记本电脑的使用BIOS- 因此不是存在UEFI- 为了启动目的,建议的分区类型和空间应该是什么?

答案1

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

引导加载程序用于运行内核,无论它在磁盘上的哪个位置。

术语“启动分区”有点模糊,有时它可能被用来指带有“启动”标志的分区,或者指包含 Linux 内核 (/boot) 的分区。

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

要在 UEFI 模式下启动(假设硬件具有该功能),任一分区类型都需要一个具有 1)FAT 文件系统、2)启动标志和 3)ESP(EFI 系统分区)标志的 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 模式更老,也更原始。它的引导加载程序被硬连线到磁盘的零扇区(512 字节扇区)。一个扇区太小,无法启动,因此引导加载程序会跳转到包含其余代码的某个位置。在 MSDOS 分区磁盘上,此位置通常卡在分区之间,甚至不在文件系统中。在 GPT 分区磁盘上,分区之间没有空间来塞入引导加载程序的其余部分,因此需要为代码创建一个明确的位置 - 一个未格式化的小分区(1MB-2MB),带有 BIOS-GRUB 标志。同样,如果内核在根目录下可读,它就会运行 - 如果根目录不可读,则适用与 UEFI 相同的限制,需要一个单独的可读位置 /boot。此外,在旧硬件上,内核在根文件系统中的位置可能存在限制 - 太靠近根目录,内核可能超出 BIOS 引导程序的寻址能力。这就是最初在磁盘开头使用 /boot 分区的原因,以确保内核的启动不会占用太多扇区,从而使 BIOS 无法找到它。将 /boot 设为单独的分区而不是根目录往往会在它被旧内核填满时导致问题。每个内核占用不到 100MB(假设您的 initrd 文件采用标准压缩),因此使用备份内核和更新,300MB 似乎足够了,前提是您确保删除旧内核。Autoremove 可能会为您完成这项工作,但更新时您可能正在运行旧内核,然后可能会剩下多余的旧内核。开始使用较新的内核,您可以开始维护两个内核系列,每个系列都有一个备份,并且当更新发生时,可能会有六个内核。这可能是提到的 1GB 建议似乎要解决的问题。给 /boot 多留几百 MB 可能会避免许多问题。

相关内容