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