当您启动您的机器时,在POST(上电自检)成功完成后,BIOS会定位配置的可引导媒体,并从主引导记录(MBR)或GUID分区表中读取一些指令,该表是可引导媒体的前512字节。
MBR包含两组重要信息,一是引导加载程序,二是分区表。
什么是引导加载程序?
A boot loader is a small program stored in the MBR or GUID partition table that helps to load an operating system into memory. Without a boot loader, your operating system can not be loaded into memory.
我们可以在Linux系统上安装几个引导加载程序,在本文中,我们将简要介绍一些最佳的Linux引导加载程序。
1. GNU GRUB
GNU GRUB是一款流行的、可能是最常用的多引导Linux引导加载程序,基于由埃里希·斯特凡·布鲁林创建的原始GRUB(GRand Unified Bootloader)。它带有几项改进、新功能和错误修复,作为对原始GRUB程序的增强。
重要的是,GRUB 2现在已经取代了GRUB。值得注意的是,名称GRUB已更名为GRUB Legacy,目前不再积极开发,但由于仍在进行错误修复,它可以用于引导旧系统。
GRUB具有以下显著特点:
- 支持多重引导
- 支持多种硬件架构和操作系统,如Linux和Windows
- 为用户提供类似Bash的交互式命令行界面,用户可以运行GRUB命令并与配置文件交互
- 允许访问GRUB编辑器
- 支持使用加密密码进行安全设置
- 支持从网络引导以及其他几个次要功能
2. systemd-boot
systemd-boot是作为systemd系统和服务管理器的一部分开发的UEFI引导加载程序,旨在加载EFI可执行映像,如Linux内核、initramfs映像和其他操作系统,如Windows。
systemd-boot是一个相对较新的引导加载程序,但由于其简单性和性能而变得流行。它也是许多现代Linux发行版的默认引导加载程序。
systemd-boot 是对于想要一个简单快速的引导程序,并且可以引导各种操作系统的用户来说是一个不错的选择。对于已经使用 systemd 作为系统和服务管理器的用户来说,它也是一个不错的选择。
3. rEFInd 引导管理器
rEFInd 是一个用于 UEFI 和 EFI-based 系统的引导管理器,旨在引导各种操作系统,包括 Linux、Windows 和 macOS。
rEFInd 是一个不错的选择,对于想要一个简单易用的引导程序,并且可以根据自己的需求进行定制的用户来说。对于需要双启动多个操作系统的用户来说,它也是一个不错的选择。
4. LILO(Linux Loader)
LILO 是一个简单但功能强大稳定的 Linux 引导加载程序。随着 GRUB 的日益普及和使用,GRUB 带来了许多改进和强大的功能,LILO 在 Linux 用户中变得不那么流行了。
在加载时,屏幕上会显示“LILO”这个词,并且每个字母在特定事件发生之前或之后出现。然而,LILO 的开发在2015年12月停止,它具有以下一些特点:
- 它不提供交互式命令行界面
- 支持多个错误代码
- 不支持从网络引导
- 所有的文件都存储在驱动器的第一个1024个柱面中
- 在面对BTFS、GPT和RAID等多种文件系统时存在限制。
5. BURG – 新的引导加载器
BURG是基于GRUB的相对较新的Linux引导加载程序。由于它是从GRUB派生出来的,因此它带有GRUB的一些主要功能,然而,它还提供了令人瞩目的功能,例如新的对象格式,以支持包括Linux、Windows、Mac OS、FreeBSD以及更多平台。
此外,它支持高度可配置的文本和图形模式引导菜单,以及流(stream)以及对未来各种输入/输出设备改进的计划。
6. Syslinux
Syslinux是一组轻量级的引导加载程序,可让您从CD-ROM、网络等启动。它支持诸如FAT(用于MS-DOS)和ext2、ext3、ext4(用于Linux)等文件系统。它还支持未压缩的单一设备Btrfs。
请注意Syslinux只访问其自己的分区中的文件,因此,它不提供多文件系统启动功能。
结论
A boot loader allows you to manage multiple operating systems on your machine and select which one to use at a particular time, without it, your machine can not load the kernel and the rest of the operating system files.
我们在这里有没有遗漏任何顶级的Linux引导加载程序?如果是的话,请在下面的评论表单中让我们知道,并提出任何值得推荐的引导加载程序,以支持Linux操作系统。