centos怎么启动linux,Linux的启动流程(CentOS 6)

前言Linux启动的过程在实际生产中有着至关重要的作用。试想一下,如果我们在实际生产中服务器因为某一个服务出了问题,而不能启动,这时我们应该怎么办。如果我们了解Linux的详细启动过程,知道是在哪一个环节出了问题,我们就能够进入到相应的环节,排除掉相应的问题,从而解决实际生产中的问题。同时,我们在这里提出一个问题,有谁知道Windows的启动过程呢?如果启动过程出了问题,我们该怎么办呢?恐怕答案只有重启系统了吧……Linux 系统的启动过程对于管理员来说是完全透明的,了解了Linux的启动过程,就好像有了透视眼一样,能够清楚的了解Linux的一切。知道了这些,不仅能够解决实际生产中的问题,更能够自己来制作Linux,自己定制Linux了,总之Linux大法好……

写在前面(最重要)本文部分资料参考了以下博文。

先来看一张图

可以图片上点击右键,选择在新的标签页中打开,这样可以查看大图。此图为笔者根据参考资料重制,转载请注明出处。FsZ6scURDSYgpG5yQYIkLAvONrbl这张图大体上描述了Linux 的启动流程,在Linux的不同启动阶段,标注的相应的注释。本文将在此图的基础上,对Linux的启动过程分阶段的进行详细的描述。同时由于自身能力有限,文中描述难免有纰漏之处,还请各位读者留言指出,我会及时改正。

Linux启动过程都经历了什么!!硬件引导启动

grub启动引导阶段

内核引导阶段

init初始化阶段

硬件引导启动硬件引导启动过程在Linux和Windows上是相似的。熟悉Windows系统的朋友可以结合Windows的启动过程来理解。

BIOS 启动稍有计算机基础的人都会知道BIOS(Basic Input / Output System),又称为基本输入输出系统,它是一组固化到计算机主板上的一段程序,存储在ROM中。里面保存了计算机最基本的输入输出程序,计算机启动的时候首先根据BIOS中提供的信息去查找相应的硬件,并完成最基本的检测。如果这个过程中出现了问题,系统就不会启动。

举一个最简单的例子,如果系统在BIOS阶段发现,内存条没有成功加载,那么系统还能够正常启动吗?即便Windows系统在这一点上也是如此的。

MBR 分区引导关于Linux系统的分区结构有两种方式,分别是MBR分区和GPT分区。二者在分区结构上有很大的不同,区别也很多,二者的异同可以去查看相关的资料,我们在这里不做详细的介绍。

我们以MBR分区为例,来介绍Linux的启动过程。

硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,预启动信息、分区表信息。在计算机完成了BIOS阶段之后,系统会找到BIOS中指定的硬盘的MBR,此时系统启动的控制权就移交到MBR阶段。如图所示,在MBR由三部分组成,分别是BootLoader(主引导程序),DPT(硬盘分区表)和55AA(硬盘有效标志)。其详细结构可参考上图。

grub 启动引导阶段系统启动到MBR阶段的时候会读取MBR中记录的BootLoader。所谓的BootLoader指的就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。在Linux 中就是grub。Linux 中的grub 启动位于/boot/grub/目录下

实验 如果仅仅保留 grub.conf 文件,系统能够正常启动吗?

FkrNNoc8YZ8M-l7YJi8uoZWBbHQQ仅仅保留 grub.conf 在启动过程发生的错误,提示信息如下图所示

FqUBT1iGHfhI7HnQUi1snSTRbPXo

stage 1阶段系统进入到MBR阶段中,就会直接将磁盘的前446字节读入内存中,也就是BootLoader。stage 1阶段就是指的这一段。

stage 1 阶段的任务非常简单,就是将硬盘中的这446个字节读入内存中,并解析,然后为下一个阶段做好准备。

实验 如果Stage1 阶段被破坏了,如何修复启动?前面我们说过,Stage1 主要位于BootLoader 中,也就是硬盘的第0个磁道的第一个扇区的前446个字节,那么我们只要将446个字节破坏掉了就可以模拟这个实验。先看下面一个动图。

Fi3DJuDkwNGbGANFJOjqqYRiIuLv从图中可以看到,这时系统会直接进入救援模式。因为系统找不到找不到硬盘启动代码。所以我们就进入到救援模式,进行一系列的救援操作。

FumbI6767oBY98Z4BHVZIY1wdfU0grub-install 的作用就是重新安装grub,会恢复/boot/grub 目录下的文件。 我们在执行 grub-install的过程,不仅修复了stage1 阶段,还修复了stage1.5阶段和stage2阶段。

stage 1.5阶段stage1 位于/boot基本磁盘分区中,为识别内核文件所在的文件系统提供系统识别扩展。 Stage 1.5 是桥梁,Stage 1 并不能直接识别文件系统,所以需要Stage 1.5来引导某个文件系统当中的Stage 2.

stage 2阶段stage 2阶段是GRUB的核心程序,能让用户以菜单方式将操作系统加载、新增参数、修改选项,这些全都是stage2的功用。对GRUB来说,stage2除了不能自己启动外,剩下的事情全都由stage2完成。像是用户在启动时所看到的GRUB启动倒数画面,或是紧接着的启动菜单画面,就都是由stage2所提供的。 在 /boot/grub/目录下可以看到由一个stage2 的文件,就是这个文件起到了至关重要的作用。

在Stage 2阶段 会读取 grub.conf 文件,而grub.conf 文件也是在Linux的整个启动过程中占据着尤为重要的一环。

grub.conf 配置文件grub.conf 文件在启动过程中有着很大的作用能够指定默认启动的内核或者系统

提供交互式接口

提供启动时的密码保护下面我们就会详细的解释一下grub.conf 这个配置文件。如下图所示,是我们自定义的grub.conf文件。

Fqbul22xbqeOFzA1G2I3aVgWlJQCdefault=0 默认启动的是哪个操作系统

timeout=5 选择需要启动的操作系统所需要的时间,如果5秒钟之内不选的话,就启动默认内核或者操作系统

splashimage 启动菜单的背景 ,也就是在选择 需要启动的内核或者操作系统的界面

passwd 输入启动项的密码,意思就是说在看到系统启动项之后,只有输入密码才能进行命令操作,比如说进入单用户。这里配置密码的方式有多种,可以以明文的形式进行配置也可以以加密的形式进行配置。而加密的方式有两种,grub-md5-crypt,grub-crypt. 在文件中配置如下所示。passwd magedu

passwd --md5 加密密码

passwd --encrypted  加密密码hiddenmenu 隐藏选择kernel或操作系统菜单,只有出现等待界面后按下enter键才会出现。如果没有这个字段,则每次系统启动都会出现这个选择菜单。

title 定义需要启动的菜单,(hd0,0) 可以去掉,但是 kernel 和 initrd 两者的顺序不能颠倒,否则系统启动失败。

rhgb 选项可以去掉,隐藏 启动的动画界面(通常是CentOS 6 或者 CentOS 7的LOGO),直接显示字符界面,字符界面上显示的是各种服务的相关启动信息

quiet 默认隐藏内核的启动信息,如果去掉,启动时不光显示服务的启动信息,还显示内核的启动信息。

如果我们隐藏了内核的启动信息,去哪里能够查看内核的启动信息呢?cat /proc/cmdline 会显示与grub.conf 一致的内核信息。

内核引导阶段Kernel,内核,Kernel是Linux系统最主要的程序,实际上,Kernel的文件很小,只保留了最基本的模块,并以压缩的文件形式存储在硬盘中,当GRUB将Kernel读进内存,内存开始解压缩内核文件。讲内核启动,应该先讲下initrd这个文件,initrd(Initial RAM Disk),它在stage2这个步骤就被拷贝到了内存中,这个文件是在安装系统时产生的,是一个临时的根文件系统(rootfs)。因为Kernel为了精简,只保留了最基本的模块,因此,Kernel上并没有各种硬件的驱动程序,也就无法识rootfs所在的设备,故产生了initrd这个文件,该文件装载了必要的驱动模块,当Kernel启动时,可以从initrd文件中装载驱动模块,直到挂载真正的rootfs,然后将initrd从内存中移除。Kernel会以只读方式挂载根文件系统,当根文件系统被挂载后,开始装载第一个进程(用户空间的进程),执行/sbin/init,之后就将控制权交接给了init程序。

init 初始化阶段init 过程,顾名思义,就是对操作系统进行初始化的一个过程,此时操作系统内核已经在内存中加载。实际上是根据/etc/inittab(定义了系统默认运行级别)设定的动作进行脚本的执行,第一个被执行的脚本为/etc/rc.d/rc.sysinit,这个是真正的OS初始化脚本 相关的内容以及配置在图中已经有了详细的描述,此处不再详述。

综上,系统启动流程进行了大体的介绍,无奈,时间紧张,有很多地方只是简单地一笔带过。实际生产中,有些细节也很重要,包括整个启动过程中每一个环节如果出了故障应该如何修复,都是值得详细描述的知识点。以后有时间会回来重新更新补充,以图做到更好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值