##第一阶段.硬件启动流程
###1.打开电源
###2.BIOS(basicinput/outputsystem基本输入输出系统)
①.检查整个系统的硬件状态(cpu,内存,显卡,网卡等)。
②.根据BIOS当中的启动顺序(硬盘,U盘,光驱,网络等)【硬盘启动==读取硬盘的0柱面0磁道1扇区(MBR)的前446字节(共512,后64为磁盘分区列表)到内存】
③.控制区转给MBR当中的bootloader
###3.MBR(MasterBootRecord)硬碟里的第一个磁道--MBR有由主引导程序,硬碟分区表和有效的硬碟标示组成,MBR上面的bootloader上面安装有GRUB程序的一部份linux 启动进程的命令redflag linux,在系统安装时写入
##第二阶段.GRUB启动引导阶段
① stage1是安装时被写入到MBR当中的,因MBR的空间有限,所以MBR当中安装有bootloader的最小程序,主要作用启动装载stage2
② stage1.5在MBR后面的分区,可以识别启动分区文件系统,stage1.5是stage1和stage2的桥梁。GRUB访问/boot分区grub下面的stage文件,将stage2文件载入内存并执。
③ stage2阶段解析grub的配置文件 /boot分区下的/grub/grub.conf文件,显示操作系统的启动菜单,加载内核到镜像,通过/boot/initrd开头的文件虚拟DAM disk虚拟文件系统转交给内核。
##第三阶段.内核引导阶段
调用虚拟根文件系统中的init,加载驱动模块初始化系统系统当中的个设备并做相关的配置,包括cpu,i/o,储存设备,并加载切换真正的根文件系统(grub.conf中的“root=”所指定)国内linux主机,协助内核呼叫进程sbin/init程序
##第四阶段.系统初始化阶段
①通过/etc/inittab文件获取运行级别
0 - halt (系统直接关机)
1 - single user mode (单人模式,用于系统维护时使用)
2 - Multi-user, without NFS (类似3模式,不过少了NFS服务)
3 - Full multi-user mode (完整模式,不过,是文本模式)
4 - unused (系统保留功能)
5 - X11 (与3模式类似,不过,是X终端显示)
6 - reboot (重新开机)
②通过/etc/rc.sysinit文件
1. 获取网络环境与主机类型
2. 打开文本欢迎信息
3. 决定是否启动selinux
4. 测试与载入内存设备/proc及usb设备
5. 接口设备的检测与即插即用(pnp)参数的测试
6. 挂载所有在fatab当中定义的文件系统
7. 加载核心的相关设置,按“/etc/sysctl.conf”文件设定的内核参数的值
8. 设置系统时间
9. 设置中终端控制台的字形
10. 设置raid与LVM等硬盘功能
11. 以fack检查磁盘文件系统
12. 进行磁盘配额quota的转换
13. 重新以可读取模式载入系统磁盘
14. 启动quota功能
15. 启动系统随机数设备
16. 清楚启动过程中的临时文件
17. 将启动相关信息加载到/var/log/dmesg文件中
③加载系统服务
1./etc/rc.d/rc#.d 根据对应运行级别启动启动对应/etc/rc.d/rc#.d 目录下的服务(#为0-6) s start k stop
2. /etc/rc/local 加载用户自定义开机启动的服务
##第五阶段.启动终端
1.默认情况下执行/sbin/mingetty打开6个纯文本终端
①验证登陆
*/etc/nologin 该文件中的用户不准登录
/etc/usertty 对文件做出附近访问限制。不存在该文件没有限制
/etc/securetty 登记的终端才允许使用。没有文件任何终端都可以登录
/etc/passwd & /etc/shadow 来验证密码以及设置账号的主目录是什么,使用何种shell
②登录成功
屏幕输出/var/log/lastlog输出最经一次登陆信息
/var/spool/mail/用户名检测用户是否有新电邮
加载环境变量/etc/profile
.bash_profile.bash_login.profile
2.假如运行级别为5linux 启动进程的命令,则打开x-window