ein*_*lum 4 boot-loader system-installation
我知道历史上为什么我们有单独的引导分区的一般故事:
在一台新电脑上,我可能 不会打扰。但是 - 我在 20 年的系统上安装 Linux,使用非 UEFI BIOS(甚至无法从 USB 启动)。这不会是多引导机器,也不会是任何复杂的东西:没有 LVM、没有磁盘加密、没有 RAID 等。
我怎样才能知道是否我特定的电脑,用我特定的硬盘,需要一个引导分区?
笔记:
如果系统大约是 1994 年或更早,则其 BIOS 可能无法处理集群/磁头/扇区几何图形大于 1024/16/63 的磁盘,其限制为 504 MiB (528.4 MB)。这样做的原因是两组限制的不方便交互:
1994 年 7 月,开发了新的 BIOS 功能“增强型磁盘驱动器服务”(简称 EDD)来解决此限制。它在 BIOS 表示和 IDE 硬件接口(称为“几何转换”)之间的几何的簇和头部分之间移动位,作为此限制的解决方法。
某些 BIOS 版本在磁盘几何结构 4096/16/16 或其“翻译”形式 1024/64/63 处也存在错误。
在 16383/16/63(或翻译形式的 1024/255/63)的磁盘几何结构上,达到了经典 C/H/S 磁盘寻址的最大限制:处理这种磁盘寻址的 BIOS 函数的数据输入格式根本没有足够的位来处理比这更大的磁盘。在磁盘大小为 7.87 GiB (8.45 GB) 或正好 16 450 560 个磁盘块时达到此限制。
IDE (PATA) 规范包含一个可以解决此问题的功能,但它最初被指定为可选功能,并非所有 BIOS 都实现了它。它被称为逻辑块寻址,简称 LBA。随着磁盘大小的增长,1996 年左右之后发布的大多数磁盘确实支持 LBA。
但是随后又发现了另一个 BIOS 错误:一些 BIOS 的 LBA 实现有问题,如果需要超过 26 位来表示磁盘块号,则该错误会失败。这影响了 1999 年 8 月或更早发布的一些 BIOS 版本,并导致磁盘大小限制为 32 GiB (33.8 GB)。
1994 年发布的 LBA 规范只为磁盘块号分配了 28 位,这导致了另一个磁盘大小限制,磁盘大小正好为 128 GiB。2003 年发布的 ATA-6 规范指定了 LBA 磁盘访问功能的 48 位版本,这是我们目前用于现代 SATA 磁盘的功能。它应该可以工作,直到磁盘大小增长到 128 PiB。
通常可以通过在 BIOS 中故意指定不正确的磁盘几何结构,告诉它磁盘小于有问题的限制,并制作/boot
一个完全适合假几何结构的分区来解决这些限制。
有时(在引入 LBA 支持之后)/boot
分区在适当的大小限制内就足够了。
引导加载程序将使用 BIOS 例程从该分区加载 Linux 内核(以及可选的 initrd 文件),一旦内核启动,其驱动程序将接管磁盘访问,完全绕过 BIOS 并使其限制无关紧要,只要操作系统正在运行。在这一点上,真实的磁盘几何结构通常会被内核自动检测。
那么这是什么意思?
/boot
完全适合磁盘前 128 GiB 的分区,否则 BIOS 可能无法启动操作系统。(这通常是双引导和其他多操作系统设置的问题。)/boot
在磁盘的前 32 GiB 内创建一个单独的分区,以防止 LBA 实现错误。/boot
分区既在假几何结构内又在磁盘的前 7.87 GiB 内。如果系统的 BIOS 发布日期恰好在特定规范更新的日期之后,则它可能有也可能没有更新的规范:在每个规范更新发布后,新的实现需要一段时间才能变得无处不在。
归档时间: |
|
查看次数: |
328 次 |
最近记录: |