①.检查整个系统的硬件状态(cpu,内存,显卡,网卡等)。
②.根据BIOS当中的启动顺序(硬盘,U盘,光驱,网络等)【硬盘启动==读取硬盘的0柱面0磁道1扇区(MBR)的前446字节(共512,后64为磁盘分区列表)到内存】
③.控制区转给MBR当中的bootloader
① 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虚拟文件系统转交给内核。
第一阶段.硬件启动流程 ### 1.开启电源 ### 2.BIOS(基本输入输出系统) ### 3.MBR(主引导记录)硬盘中的第一个扇区–MBR包含主引导程序、硬盘分区表和有效的硬盘标识。MBR中的引导加载程序(bootloader)的一部分是GRUB程序,在系统安装时写入。
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 (重新开机)
第二阶段.GRUB启动引导阶段
第三阶段.内核引导阶段 调用虚拟根文件系统中的init,加载驱动模块初始化系统设备并进行相关配置,包括CPU、I/O和存储设备,并加载真正的根文件系统(由grub.conf中的“root=”指定),协助内核调用/sbin/init程序。
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 加载用户自定义开机启动的服务
*/etc/nologin 该文件中的用户不准登录
/etc/usertty 对文件做出附近访问限制。不存在该文件没有限制
/etc/securetty 登记的终端才允许使用。没有文件任何终端都可以登录
/etc/passwd & /etc/shadow 来验证密码以及设置账号的主目录是什么,使用何种shell
第四阶段.系统初始化阶段 ① 通过/etc/inittab文件获取运行级别
② 通过/etc/rc.sysinit文件进行初始化
③ 加载系统服务
第五阶段.启动终端 1.默认情况下执行/sbin/mingetty打开6个纯文本终端 ① 验证登录 ② 登录成功后,屏幕输出/var/log/lastlog,显示最近一次登录信息,检查/var/spool/mail/用户名以查看是否有新邮件,加载环境变量(/etc/profile、.bashprofile、.bashlogin、.profile)。
- 如果运行级别为5,则打开X窗口。