¶1、linux的启动流程
1  | 加载BIOS的硬件信息与进行自我测试,依据设置取得第一个可启动的设备  | 
¶2、BIOS,boot loader,kernel加载
1  | BIOS,MBR:开机时,系统自动加载BIOS,并通过BIOS加载CMOS,取得各个硬件配置,之后BIOS进行开机自检,执行硬件检测初始化,,配置PnP设备,定义启动顺序,进行启动设备数据读取。  | 
¶3、第一个进程init及配置文件/etc/inittab与runlevel
1  | run-level:执行等级  | 
¶4、init处理系统初始化流程(/etc/rc.d/rc.sysinit)
¶主要工作:
1  | 1、取得网络环境与主机类型  | 
¶5、启动系统服务与相关的启动配置文件(/etc/rc.d/rc(n)& /etc/sysconfig)
1  | /etc/rc.d/rc\*:K开头的文件是表示stop,S开头的文件表示start,其后数字表示启动顺序  | 
¶6、启动中需要的配置文件
1  | /etc/modprode.conf:指定系统内硬件所使用的模块  | 
¶7、内核与内核模块
¶位置:
1  | 内核:/boot/vmlinuz or /boot/vmlinuz-version  | 
¶内核模块与依赖性:
1  | depmod -Ane:创建modules.dep,记录内核支持的模块的各项依赖性  | 
¶查看内核模块
1  | lsmod:模块名称,模块大小,模块是否被其他模块所用  | 
¶加载与删除
1  | insmod /lib/modules/$(uname -r) 文件路径 // 加载模块 //不主动分析依赖性  | 
¶8、grub
1  | boot loader 的程序代码执行与设置值加载分成两个阶段  | 
¶9、Initrd,创建initrd文件
1  | mkinitrd -v --with=模块名称 initrd文件名 内核版本 :重制initrd文件  | 
¶10、测试与安装grub
1  | 如果机器没有安装grub,可以尝试安装一个  | 
¶安装步骤:
1  | 1、grub-install [--root-dirrctory=DIR](安装实际目录) INSTALL_DEVICE(安装设备)  | 
¶grub菜单加密:
1  | 1、grub-md5-crypt:产生md5密文;  | 
¶11、启动过程问题解决
1  | 忘记root密码:重新启动,进入grub,e编辑,进入单用户维护模式,修改passwd。  | 


