Linux/xBSD 如何在 GRUB 之前启动?

Linux/xBSD 如何在 GRUB 之前启动?

根据维基百科,GRUB 于 1995 年发布。那时 Linux 和 xBSD 已经存在了好几年了。我知道早期的 Unix 版本在 70 年代和 80 年代与硬件绑定,但 Linux 和 xBSD 可以自由分发和安装。这就引出了一个问题:当时你会如何启动 Linux?发行版是否附带了自己的引导加载程序实现?

答案1

我在 90 年代使用的第一个 Linux 发行版 ( Slackware 3.0IIRC) 使用利洛作为引导加载程序。许多发行版即使在成为“默认”引导加载程序时也使用了LILO多年。GRUB

此外,在 Linux 的早期,通常从另一个操作系统(即 DOS 或 Windows)引导 Linux,而不是依赖引导加载程序/双重引导。例如有负载林

别忘了系统Linux,这是一个更简单的引导加载程序,通常用于 USB 自引导安装/恢复发行版。或者异构Linux(来自同一项目)被许多“Live”发行版使用。

请记住,今天GRUB可用于加载许多操作系统,但LILO受到更多限制,并且专门针对 Linux(即 LInux LOader),并支持双启动到 Windows。
GRUB对于双/多重启动非常有用,因为它有许多可配置选项、脚本功能等...
如果您只想在计算机上安装一个操作系统“任何”(即您的 Linux/BSD 发行版的默认启动加载程序)应该足够。

答案2

利洛是在 Grub 之前在 PC 上启动 Linux 的事实上的标准,从很早的阶段开始(MCC,第一个 Linux 发行版之一,就使用了它)。同时使用了各种其他引导加载程序。负载林很常见;它从 DOS 启动 Linux,甚至在某些配置中使用umsdos在 DOS 文件系统中托管 Linux 环境...另一种常见配置根本不涉及引导加载程序:内核可以从软盘引导自身,并且大多数 Linux 用户保留一对已知良好的“引导和根”软盘,一张包含内核,另一张包含用于救援目的的基本根文件系统。

使用其他操作系统的引导加载程序来引导 Linux 的方法也有很多种;例如,OS/2 的引导管理器,或Windows NT 的NTLDR。

其他系统有自己的引导加载程序:

  • 筒仓SPARC(Sun 工作站和其他);
  • 帕洛PA-RISC(HP 工作站);
  • PowerPC 上的 YaBoot 和 Quik;
  • Alpha 上的 aBoot 和 MILO...

即使现在,Grub 也不是您会看到的唯一引导加载程序。虽然直接从软盘启动内核不再很有用(我还没有检查它是否仍然可能,假设您可以构建一个足够小的内核以适合软盘),但它可以直接从 EFI 启动(这实际上是它的自己的小型操作系统,旨在加载其他操作系统,例如 Grub)。在许多较小的系统(嵌入式系统、单板计算机......)上,您会发现U盘启动。 (而且还有U-Boot 的 EFI 层.)

答案3

到 2.6 中期内核为止,如果将 x86 内核复制到软盘上(就像磁盘映像一样),则可以直接启动 x86 内核。

事实上,这就是 Linux 的原始启动方式。

如果您现在查看 x86 内核的标头,您会看到一条错误消息,指出从软盘引导不再起作用。

答案4

在 LILO 和 GRUB 之前,您必须使用某种自定义引导加载程序实用程序从命令行启动它。

例如,Amiga 提供了 Linux。您必须使用名为 amiboot 的命令行实用程序将内核 ELF 加载到内存中并跳转到它。

这是某人从命令行使用 amiboot 的视频在 Amiga 600 上启动 Linux。他的 StartInstall 脚本正在调用 amiboot 可执行文件。您可以在 0:55 左右观看 amiboot 配置内存、找出所需的加载地址并将参数传递给内核。

相关内容