启动流程
INIT
启动加载器
GRUB
主要启动流程
初始化BIOS:
检测外置设备,将外置设备的信息提供给操作系统使用
寻找启动磁盘 cdrom-usb-net-local
执行启动加载器
1寻找硬盘第一个分区IPL MBR=446+64+2=512By
2寻找硬盘中标记为启动分区的第一个扇区
载入内核
检测所有硬件设备
驱动硬件设备:静态驱动(存在系统内核中),动态驱动(模块形式存在硬盘中)
挂载根文件系统(/etc,/bin,/sbin,/lib,/dev)
启动init服务
/etc/init? /bin/init? /sbin/init? /bin/sh
执行Init 唯一一个内核直接启动的进程,系统中所有进程的父进程,PID恒为1,只能被重启,不能被杀死。
重启init kill -HUP 1 init q telinit q
init配置文件/etc/inittab
初始化系统环境
/etc/rc.d/rc.sysinit
启动UDEV和selinux
设置内核参数 sysctl -p /etc/sysctl.conf
设置系统时间
加载键盘对应表
启动swap swapon -a -e /etc/sftab
设置主机名 /etc/sysconfig/network HOSTNAME=
检查挂载文件系统 mount rw
初始化硬件
加载模块 /etc/mdprobe.conf
启动ISA PNP设备
启动USB设备
启动RAID&LVM
卸载/initrd
初始化串行端口设备
清除过期的锁定文件
重置磁盘参数 /etc/sysconfig/harddisk
/etc/rc.d/rc
确定运行级别
/etc/rc.d/rc.local
开机自动运行的程序
建立用户接口
建立虚拟控制台 /bin/login tty1-tty6 F1-F6
建立图形
RUNLEVEL
级别 描述 登录用户数量 网络 图形
0 关机 无 否 否
1 单用户 root 否 否
2 多用户 本机用户 是 否
3 字符 本机+域 是 否
4 保留 本机+域 是 否
5 图形 本机+域 是 是
6 重启 无 否 否
查看运行级别 runlevel
切换运行级别 init telinit
init服务
建立系统环境
确保系统运行
监控周边设备
ctrl+alt+del
配置文件/etc/inittab
ID RUNLEVEL ACRIONS PROCESS
参数识别名称 在哪个运行级别调用 执行程序的方法 要执行的程序文件(绝对路径)
ID
id 定义默认运行级别
si 系统初始化时要执行的内容
l0-l6 进入到不同的运行级别要执行的动作
ca ctrl+alt+del要做的工作
pf 电源失效时执行的工作
pr 电源恢复时执行的操作
N 开启控制台的程序
x 启动图形界面显示管理员的方法