linux启动步骤:
BIOS à (boot sequence àMBR:Master Boot Record(1 sector, 512 bytes)) Bootloader à kernel à init(/etc/inittab) à /etc/rc.local àlogin。
以下我将对以上每部分解释一下:
先读取BIOS,其中(boot sequence)存取了系统启动的顺序。然后再在从定义的顺序对应的的MBR,MBR中定义了对系统的引导,其中包括根目录的分区root,内核(vmlinuz)的位置,以及initrd。这都是引导linux的必要的配置。
grub引导之后系统开始启动init进程,该进程的配置文件时/etc/inittab。init进程的顺序:
1. 设定默认运行等级
2. 启动系统初始化脚本rc.sysinit
3. 执行指定运行级别下的每一个启动脚本
4. 设定特定快捷键ctrl+alt+del组合键的功能
5. 设定电源故障时要执行的脚本
6. 设定要启动的虚拟控制台/dev/tty[1-6]
7. 设定当指定运行级别为5时做GUI初始化脚本
其中启动rc.sysinit的过程有:
1. 激活udev和SElinux
2. 设置内核参数/etc/sysctl.conf
3. 设置系统时钟
4. 装载键盘映射
5. 启动交换分区(虚拟内存)
6. 设置主机名,/etc/sysconfig/network
7. 根文件系统检查并重新以读写方式挂载根文件系统
8. 激活RAID和LVM设备
9. 启用磁盘配额
10. 检查并挂载其它文件系统,在/etc/fstab下定义
11. 消除不再使用锁和PID文件
在执行一定等级时,启动的脚本在/etc/rc.d/下对应等级rcN.d目录下,以S开头的脚本,同理关闭的脚本是以K开头的脚本。
GRUB知识小结
GRUB为最新的linux的引导程序,假设系统存在硬盘上,其MAB大小为512byte,其中bootloader大小为446byte,还有64byte存储磁盘分区,每个分区用16byte表示,还有2两个字节存储其它信息。其中bootloader只有446字节存储引导信息,很难提供强大的功能,所以GRUB提供了分段式的方式,在bootloader中只有第一段,其第1.5段和第2段存在于/boot/grup文件夹下,其中第1.5段提供了对多种文件系统硬盘的驱动(除了RAID1之外的其它RAID和LVM),第2段中则提供了grub的主配置文件,其中分别定义了一下几部分:default=1 在有多个启动菜单中默认启动的系统timeout=5 默认等待的时间splashimage=(hd0,0)/grub/11.xpm.gz grub背景图片hiddenmenu 是否隐藏启动的菜单title Red Hat Enterprise Linux Server (2.6.28.10-zly) 系统名称 root (hd0,0) 核心所在的分区 kernel /vmlinuz-2.6.28.10-zly ro root=/dev/vol0/root rhgb quiet 核心所在的具体位置,真是分区所在的位置,及挂载的位置,是否显示加载的信息 initrd /initrd-2.6.28.10-zly.img initrd所在的位置,这是一个虚拟的系统的位置,启动系统所必须的文件。每一个title代表有启动选项的一个菜单。