系统启动顺序
POST->BootLoader(grub)->Kernel->initrd->init
1. POST, Power On Self Test
BOIS配置:boot sequence,启动顺序
2. 找到启动设备对应的MBR
MBR,主引导记录,是一个独立于os的描述位置的概念,前446字节为bootloader
3. 加载bootloader
bois退出, boot loader获取控制权加载对应的内核 && initrd;
常见的bootloader有:
- LILO: LInux LOader,一般用于嵌入式
- GRUB:Grand Unified Bootloader
GRUB:
Stage1:存在于MBR,用于引导Stage1_5;
Stage1_5:识别常见的文件系统,为访问stage2做准备;
Stage2:/boot/grub/stage2,突破了446bytes大小的限制;
### 两种方法安装grub stage1
# Method A:
grub> root (hd0,0)
grub> set (hd0)
# Method B:
# grub-install --root-dirctory=/path/to/boot_parent_dir /PATH/TO/DEVICE
### grub配置损坏时修复
grub> find
grub> root (hd#, N)
grub> kernel /PATH/TO/KERNEL_FILE
grub> initrd /PATH/TO/INITRD_FILE
grub> boot
4. 加载内核kernel
bootloader退出,kernel获取控制权,探测识别硬件装载驱动程序,建立根文件系统, 加载/sbin/init程序;
kernel初始化的过程:
- 设备探测;
- 驱动初始化(可能从initrd文件中装载驱动模块);
- 以只读方式挂载根文件系统(为安全起见)
- 装载第一个进程init
5. init进程启动
###查看运行级别
$ runlevel #显示上次级别和本次级别
$ who -r