根据Wikipedia的说法,GRUB于1995年发布。那时Linux和xBSD已经存在了几年。我知道Unix的早期版本是在70年代和80年代与硬件联系在一起的,但是Linux和xBSD可以自由分发和安装。哪个引发了一个问题,那您将如何重新引导Linux?发行版是否附带了自己的引导加载程序实现?
biosboot
两种体系结构,即i386和amd64。这是否意味着OpenBSD专门针对架构而不是拥有一个统一的工具?
根据Wikipedia的说法,GRUB于1995年发布。那时Linux和xBSD已经存在了几年。我知道Unix的早期版本是在70年代和80年代与硬件联系在一起的,但是Linux和xBSD可以自由分发和安装。哪个引发了一个问题,那您将如何重新引导Linux?发行版是否附带了自己的引导加载程序实现?
biosboot
两种体系结构,即i386和amd64。这是否意味着OpenBSD专门针对架构而不是拥有一个统一的工具?
Answers:
我在90年代(Slackware 3.0
IIRC)使用的第一个Linux发行版使用LILO作为引导程序。LILO
即使GRUB
成为“默认”引导程序,许多发行版也使用了多年。
此外,在Linux的早期,通常是从另一个OS(即DOS或Windows)启动Linux,而不是依赖于Bootloader /双重启动。例如,有loadlin。
别忘了Syslinux,它是一个更简单的引导加载程序,通常用于USB自引导安装/恢复发行版。或许多“ Live”发行版使用的Isolinux(来自同一项目)。
请记住,今天GRUB
可以用来加载许多操作系统,尽管功能LILO
有限,并且特别针对Linux(即LInux LOader),并支持对Windows的双重引导。
GRUB
由于它具有许多可配置的选项,脚本功能等,因此对于双/多引导非常有用。
如果您只希望计算机上的任何操作系统为“ any”(即,Linux / BSD发行版中的默认引导加载程序),足够。
other=/dev/hda1
与table=/dev/hda
对lilo.conf
,和LILO只想在hda1的控制转移到引导扇区,知道分区表会在HDA。
LILO是在Grub之前很早就在PC上引导Linux的事实上的标准(MCC是最早的Linux发行版之一,使用它)。同时使用了其他各种引导程序。Loadlin很常见。它从DOS引导Linux,甚至在某些配置中用于在umsdos
DOS文件系统中托管Linux环境。另一种常见配置根本不涉及引导加载程序:内核可以从软盘引导自身,而大多数Linux用户保留了一对已知良好的“引导和根”软盘,其中一个包含内核,另一个包含用于救援目的的基本根文件系统。
也有多种使用其他操作系统的引导程序来引导Linux的方法。例如,OS / 2的启动管理器或Windows NT的NTLDR。
其他系统具有自己的引导程序:
即使是现在,Grub也不是您会看到的唯一引导程序。虽然直接从软盘引导内核不再有用(我还没有检查过是否仍然可行,假设您可以构建一个足够小以适合软盘的内核),但它可以直接从EFI引导(实际上是通过EFI引导)自己的小型操作系统,旨在加载其他操作系统,例如Grub)。在许多较小的系统(嵌入式系统,单板计算机...)上,您会找到U-Boot。(还有一个用于U-Boot的EFI层。)
直到2.6中期内核,如果将x86内核复制到软盘上(就像它是磁盘映像一样),就可以直接启动。
实际上,这是引导Linux的原始方法。
如果今天查看x86内核的标头,您会看到一条错误消息,提示从类似的软盘启动将不再起作用。
我在90年代后期开始使用Linux,并且lilo
默认情况下是提到的。如果要使用DOS系统进行双重引导,则可以执行裸引导,而无需将东西加载到HIMEM中或加载CD驱动程序等,然后使用loadlin
。对于Win95双重引导,您可以先使该驱动器通过DOS启动,然后再安装'95,而'95的引导加载程序将使您仍然引导DOS内核,然后可以使用loadlin
。
对于使用NT4进行双重引导,诀窍是将LILO写入/
分区,然后使用dd
(dd if=/dev/sda2 of=/path/to/file bs=512 count=1
)剥离前512个字节,然后将生成的文件放在ntldr
可以看到的位置,然后可以从WinNT的引导加载程序中使用它。这样做的问题是,当您升级内核时,必须记住在重新引导之前重复所有步骤,否则您将遇到重新进入Linux系统的问题。Win2k使用相同的过程。
使用LILO,无论何时更新内核,您都必须记住要更新LILO。
随着loadlin
随时更新的内核,你必须记得内核进行复制到DOS分区。
其他答案中暗示的另一种选择是使用dd if=/path/to/vmlinuz of=/dev/fd0
BUT 将内核直接写入软盘,但必须在编译时或使用rdev
实用程序在内核中正确设置根设备。
当GRUB
到来的时候,有大家欢欣鼓舞,因为你不再需要记住更新LILO或更新LILO和再剥掉引导信息等没有更多获取左Linux系统,因为你忘了更新的引导装载程序信息...
make install
运行/sbin/lilo
,因此您实际上不需要手动进行任何更新(如果已经lilo
安装,情况仍然会如此)。也许这是一个见解,但grub
与此相反,我不记得有多少欢欣鼓舞。并且lilo
(至少是其1999年版本)可以很好地使用双启动窗口,而无需安装loadlin
。
在LILO和GRUB之前,您必须使用某种自定义的引导加载程序实用程序从命令行启动它。
例如,Amiga可以使用Linux。您必须使用名为amiboot的命令行实用程序将内核ELF加载到内存中并跳转到它。
这是一个从命令行使用amiboot 在Amiga 600上启动linux的人的视频。他的StartInstall脚本正在调用amiboot可执行文件。您可以观看amiboot配置内存,找出所需的加载地址,然后在0:55左右将参数传递给内核。
biosboot(8)
。