Linux 系统的bootloader -- grub

目前服务器和PC上运行的Linux 的 bootloader 几乎全是grub。多年以前流行过的LiLO,显示界面和使用配置比grub差远了,本文就不介绍了。GRUB 还可以引导其它操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT 和 2000。

grub 优点有:

  • 支持较多的文件系统;
  • 启动的时候,可以自行编辑与修改启动配置参数,类似bash 的命令模式;
  • 要修改完 /boot/grub/menu.lst 里头的配置后,下次启动就生效了!

Linux 系统的bootloader -- grub

Linux 系统的启动流程:

  1. 加载BIOS 的硬件资讯与进行自我测试,并依据配置取得第一个可启动的装置;
  2. 读取并运行第一个启动装置内MBR 的bootloader (即grub);
  3. 依据bootloader 的配置加载Kernel ,Kernel 会开始侦测硬件与加载驱动程序;
  4. 在硬件驱动成功后,Kernel 会主动呼叫init 程序,而init 会取得run-level 资讯;
  5. init 运行/etc/rc.d/rc.sysinit 文件来准备软件运行的作业环境(如网络、时区等);
  6. init 运行run-level 的各个服务之启动(script 方式);
  7. init 运行/etc/rc.d/rc.local 文件;
  8. init 运行终端机模拟程序mingetty 来启动login 程序,最后就等待使用者登陆啦;