CentOS6系统启动流程
2016-04-05 20:50
507 查看
系统启动流程图
POST加电
计算机开机后对各硬件进行检测,确保系统能正常运行。BIOS选择启动项
上阶段检测结束后,BIOS将选择带有MBR的分区的设备,进行引导启动,在这阶段将加载该设备第0扇区的前512字节到内存,前446字节为Bootloader,后64字节为分区表,最后2个字节(0x55,0xaa)为标志位。MBR
CentOS6中的Bootloader为Grub,但MBR中的446字节,显然不够加载完。这里只存放了stage1阶段,在系统安装时,在mbr扇区后存放stage1.5,从而让bootloader存放的stage1能识别stage2所在的分区上的文件系统,stage2存放在磁盘分区(/boot/grub/)下。Grub
在系统将要开启时,快速按下任意键即可进入Grub引导画面,如下:回车即可启动选中CentOS6系统。
输入 e 键进去编辑模式
输入 c 键进入命令模式
Grub在磁盘上的挂载点为/boot/grub,配置文件为/boot/grub/grub.conf。
在这阶段,Grub选择要启动的内核或系统,将加载 kernel 和 解压ramdisk 到内存中,内核启动时将 ramdisk(initramfs-VERSION.img) 作为一个临时的根文件系统,进行加载硬件驱动程序。当所需的驱动程序加载完后,然后将根文件系统 rootfs 以只读的方式挂载,进行 switchroot 。
启动init
启动用户空间的第一个应用程序:/sbin/init,CentOS6系统的init程序类型为Upstart,配置文件为在 /etc/inittab,/etc/init/*.conf。init启动后
1.读取/etc/inittab 确定运行级别
id:runlevel:action:process
runleve:共7级别 为0-6,默认级别为3
runlevel | |
---|---|
0 | 关机 |
1 | 单用户模式(root, 无须登录), single, 维护模式; |
2 | 多用户模式,会启动网络功能,但不会启动NFS;维护模式; |
3 | 多用户模式,正常模式;文本界面; |
4 | 预留级别;可同3级别; |
5 | 多用户模式,正常模式;图形界面; |
6 | 重启 |
action | |
---|---|
wait | 切换至此级别运行一次 |
respawn | 此process终止,就重新启动之 |
initdefault | 设定 init 默认运行级别 |
sysinit | 设定系统初始化方式,/etc/rc.d/rc.sysinit |
… | 以上为常见action |
(1) 设置主机名;
(2) 设置欢迎信息;
(3) 激活udev和selinux;
(4) 挂载/etc/fstab文件中定义的文件系统;
(5) 检测根文件系统,并以读写方式重新挂载根文件系统;
(6) 设置系统时钟;
(7) 激活swap设备;
(8) 根据/etc/sysctl.conf文件设置内核参数;
(9) 激活lvm及software raid设备;
(10) 加载额外设备的驱动程序;
(11) 清理操作;
3.加载开机启动程序
执行 /etc/rc.d/rc #,默认 # 为3,将读取/etc/rc.d/rc3.d/下的所有脚本,来控制系统启动的时候启动以K开头的或者关闭以S开头那些服务。
注意:正常级别下,最后启动一个服务S99local没有链接至/etc/rc.d/init.d一个服务脚本,而是指向了/etc/rc.d/rc.local脚本;因此,不便或不需写为服务脚本放置于/etc/rc.d/init.d/目录,且又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.local文件中;
4.执行/etc/rc.d/rc.local脚本
此脚本是启动过程中最后启动的一个脚本,启动加载终端,至此系统启动过程完成。
相关文章推荐
- Linux中配置jdk环境变量
- linux常用头文件详解(转)
- Linux解决删除文件后空间没有释放问题_端口占用问题
- linux下dmesg命令详解
- <<unix/linux programming>>学习标记整理
- linux cobbler 自动安装centos6与centos7系统
- linux监控进程并且自动重启
- Linux内核分析 读书笔记 (第七章)
- 页面置换算法
- 同步和互斥
- Linux内存布局
- 一个简单的Linux驱动示例
- Linux内核分析 读书笔记 (第三章)
- Linux内核启动过程
- Linux替换文本字符串(Vim编辑器中使用)
- Linux系统的命令源代码的获取方法
- linux串口测试程序
- U盘启动pe+CDlinux最简单方法
- LINUX的XEN和KVM到底区别在什么地方?
- Linux GRUB legacy