Linux开机启动详解
Linux开机启动过程指的是从打开计算机电源到显示用户登录画面的过程。
第一步:加载BIOS
BIOS(Basic Input Output System)信息存储在计算机的主板上,需要靠主板的锂电池来维持。其中包含有CPU、硬盘、内存等计算机自身最基础的信息。计算机加载BIOS与安装的操作系统没有任何关系。
第二步:读取MBR
BIOS加载完毕后,计算机将控制权转交给硬盘第0磁道第1扇区,也就是硬盘的MBR(Master Boot Record),俗称主引导记录。MBR的容量很小,一般只有512字节,里最主要的部分是分区表和引导程序,受物理大小的限制,分区表只能存储4个硬盘分区的信息,所以硬盘都只能有4个主要分区。引导程序指的是grub,lilo这类的东西,这些程序也可以不写在MBR里,而是直接写在硬盘的数据区域里,一般装系统的时候会提示让你选择安装的引导程序的位置。
第三步:加载引导程序(Boot Loader)
引导程序是为加载内核前的一小段程序片,帮内核准备一些环境,同时还记录有内核的地址。如上所述,引导程序可能存在MBR里也可能存在硬盘数据区域里。
第四步:加载Linux内核
根据引导程序记录的内核地址加载内核以及内核的外挂模块,还有swap等数据。到了这一步才算是真正进入了Linux的世界。
第五步:执行init程序
1.init程序首先寻找的文件是/etc/inittab,该文件定义了系统的运行级0-6。
运行级
|
定义
|
0
|
关机
|
1
|
单用户模式
|
2
|
无网络支持的多用户模式
|
3
|
有网络支持的多用户模式(标准级)
|
4
|
保留,未使用
|
5
|
有网络支持有X-Window支持的多用户模式
|
6
|
重新引导系统,即重启
|
更多运行级的信息可以参考其他资料。
提前声明:2和3的顺序我不确定。
2.init程序接着会加载/etc/rc.d/rc0.d~rc6.d目录下的文件,0~6的数字代表着该目录的运行级,目录里面的文件如S80postfix、K45named,其中S代表start,K代表kill,数字代表顺序。这些目录下的文件即是Linux启动项组成的一部分,主要是跟系统紧密相关的一些启动项,建议不要随便修改。
3.init程序接着会加载/etc/rc.d/init.d目录下的文件,这些文件一般是使用rpm安装的时候生成的启动项,主要以二进制文件为主。chkconfig命令管理的就是这些文件了。顺便提一下另一个目录/etc/init.d,该目录其实都是软链接过去的,本质上和/etc/rc.d/init.d是同目录。
4.系统内置的启动项加载完了,init程序会加载用户自定义的启动脚本,文件为/etc/rc.d/rc.local,打开这个文件写着:
#This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.
如果你想在系统启动的时候加载自己写的一些脚本,没错,就是它了!
第六步:运行登录程序。
不多说,/bin/login
附上一张逻辑图,理解更深刻些。
以上是综合网络资料和自己经验的结论,有错误的地方麻烦大神指点一二。
分享到:
相关推荐
linux启动服务详解:内含配置文件、端口、说明和是否需要开机启动的建议。感谢原作者!
对linux开机启动的详细过程做描述 kenel initrd 内核启动详解
主要为大家详细介绍了Linux开机启动过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Linux系统启动流程详解3-1
描述linux开机到登陆界面的启动过程详解.pdf
描述linux开机到登陆界面的启动过程详解.docx
描述linux开机到登陆界面的启动过程详解借鉴.pdf
主要给大家介绍了关于Linux下Python脚本自启动与定时任务的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
第二章系统开机与启动详解.ppt
Linux 可以有几种操作方式:单用户方式、单用户联网方式、多用户方式、始于 X 窗口的多用户方式,等等。如果您使用的不是 Slackware Linux,那么配置文件的结构与我谈到的结构会大不相同。 本文将说明如何在系统...
Linux自启动设置详解 [ 作者: 加入时间:2007-07-19 11:41:06 来自:Linux联盟收集整理 ] 前言 linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。 阅读之前建议先看...
主要介绍了CentOS 开机启动自定义脚本的相关资料,有些时候我们需要在服务器里设置一个脚本,让他一开机就自己启动,需要的朋友可以参考下
主要介绍了spring boot linux启动方式详解,分为为前台启动,后台启动和脚本启动的各种方式讲解,需要的朋友可以参考下
您可能感兴趣的文章:Linux中Oracle启动侦听报错TNS:permission denied的解决方法Linux中Oracle服务启动和停止脚本与开机自启动详解Linux系统中Oracle数据库程序的启动和关闭方式Linux系统下Oracle数据库的安装和...
Linux启动与自启动的实例详解 一 启动与自启动 服务启动:就是在当前系统中让服务运行,并提供功能。 服务自启动:自启动是指让服务在系统开机或重启动之后,随着系统的启动而自动启动服务。 二 查询已安装的...
在单机环境下,要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle Oracle数据库有以下几种启动方式: 1、 startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 ...
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里。 /dev:Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式...
该命令用来重启Linux系统。相当于Windows系统中的restart命令。 命令语法: /sbin/reboot [-n] [-w] [-d] [-f] [-i] 或 reboot [-n] [-w] [-d] [-f] [-i] 命令参数: 参数 长参数 描叙 -d 重新...