设为首页 收藏本站
查看: 407|回复: 0

[经验分享] Linux系统启动流程

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-6 14:53:41 | 显示全部楼层 |阅读模式
一、CentOS 5启动流程图  
QQ截图20150906145303.png
二、CentOS系统启动流程详解
概述:  POST --> BIOS (Boot Sequence) --> MBR(bootloader)--> Kernel (CentOS5: initrd, CentOS6: initramfs)--> /sbin/init(CentOS5:/etc/inittab, CentOS6:/etc/inittab, /etc/init/*.conf)-->/etc/rc.d/sysinit/--> 关闭和启用对应级别下的服务-->启动终端

POST(加电自检):检测硬件
在CPU的控制下,将RAM芯片中的某个程序映射到ROM地址空间,并执行其中的指令完成系统硬件健康状况检查,例如硬盘、网卡、CPU、声卡等硬件设备是否完好。当检查完成后,所有硬件或基本硬件、核心硬件没有问题,则下一个启动流程BIOS

BIOS(Boot Sequence):决定启动介质
按照BIOS所设定的系统启动流程,根据引导次序(Boot Sequence)自上而下的寻找对应存储设备上操作系统的MBR(全称为Master Boot Record即硬盘的主引导记录),如果MBR存在,则会读取MBR中的bootloader

MBR(bootloader):寻找 grub,读取配置文件/etc/grub.conf,决定默认启动项
根据MBR所指引的活动分区上寻找系统分区中的 bootloader,bootloader称为是一段程序,占据446字节。在bootloader当中配置了所要引导操作系统的内核所在的位置,因此BIOS被载入内存以后,当它实现将控制权限转交给bootloader以后,bootloader接收整个系统的控制权限,而后根据用户的选择去读取相应操作系统中的内核,并将内核装载入内存的某个空间位置,解压缩,这时kernel就可以在内存中活动,并根据kernel本身功能在内存当中探索硬件并加载硬件驱动程序并完成内核初始化,bootloader会将控制权限转交给内核kernel。

Kernel(初始化):内核会主动调用用户空间的init进程,读取配置文件 /etc/inittab,决定启动级别,运行初始化脚本/etc/rc.d/rc.sysinit
探测硬件->加载驱动(initrd)->挂载根文件系统->rootfs(/sbin/init)
initrd就是一个虚拟的文件系统,里面有lib、lib64、bin、sbin、usr、proc、sys、var、dev、boot、etc等一些目录,称之为虚拟的根文件系统,作用就是将kernel和真的根文件系统建立关联关系,让kernel去initrd中加载根文件系统所需要的驱动程序,并以读写的方式挂载根文件系统,并让执行用户当中第一个进程init。

/etc/inittab
/sbin/init启动会用到/etc/inittab所定义的条目,如:默认登陆级别id:3:initdefault:
可以使用runlevel或who -r命令来查看当前系统运行的级别


/etc/rc.d/rc.sysinit 系统初始化脚本   
设置主机名     /etc/sysconfig/network
设置欢迎信息
激活udev和selinux
挂载/etc/fstab文件中定义的文件系统  (mount命令)
检测根文件系统,并以读写重新挂载
设置系统时钟
激活swap设备
/etc/sysctl.conf文件设置内核参数
激活lvm及软raid设备
加载额外设备的驱动程序
清理操作

根据/etc/rc.d/rc脚本运行对应级别下启用或停止的服务;
服务所在目录/etc/rc.d/rc.#.d/*  #对应运行级别0-6
0关机
1单用户模式(root,无需登录,使用passwd可直接修改root密码),single,维护模式;
2多用户模式,会启动网络功能,但不会启动网络文件系统NFS;维护模式
3多用户模式,正常模式;文本界面
4预留级别
5多用户模式,正常模式;图形界面
6重启
注意:正常级别下,最后启动供应服务S99local没有链接至/etc/rc.d/init.d一个服务脚本,而是指向了/etc/rc.d/rc.local脚本,因此,不便或不需写入服务脚本放置于/etc/rc.d/init.d/目录,且又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.local文件中

设置 终端   /sbin/mingetty    (/etc/inittab中定义的)
QQ截图20150906145322.png
[配置项目]:[run level]:[init 的动作行为]:[命令项目]1、配置项目:最多四个字节,代表 init 的主要工作项目,只是一个简单的代表说明。
2、run level:该项目在哪些 run level 底下进行的意思。
        如果是 35 则代表 runlevel 3 与 5 都会运行。
3、init 的动作项目:主要可以进行的动作项目意义有:
inittab 配置值意义说明
initdefault代表默认的 run level 配置值
sysinit代表系统初始化的动作项目
ctrlaltdel代表 [ctrl]+[alt]+[del] 三个按键是否可以重新启动的配置
wait代表后面栏位配置的命令项目必须要运行完毕才能继续底下其他的动作
respawn代表后面栏位的命令可以无限制的再生 (重新启动)。举例来说, tty1 的 mingetty 产生的可登陆画面, 在你注销而结束后,系统会再开一个新的可登陆画面等待下一个登陆。
4、命令项目:亦即应该可以进行的命令


三、CentOS 6与CentOS 5不同的地方
init程序类型:
Centos5     init程序为:sysv,其配置文件:/etc/inittab
Centos6     init程序为:upstart ,其配置文件:/etc/inittab, /etc/init/*.conf
                注意:/etc/init/*.confi文件语法 遵循 upstart 配置文件语法格式     

ramdisk :  内核中的特性之一:使用缓存和缓存对磁盘上的文件访问
Centos5     initrd ,工具程序 : mkinitrd            
Centos6     initramfs ,工具程序: mkinitrd,dracut


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-110227-1-1.html 上篇帖子: 虚拟机(vm)上redhat连接Xshell详解 下篇帖子: 文件查找及find命令详解 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表