CentOS6启动流程及开机启动时一些故障的解决
linux的组成:
Linux: kernel+rootfs
kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能 rootfs:程序和glibc 库:函数集合, function, 调用接口(头文件负责描述)
程序:二进制执行文件
CentOS6启动路程
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eJUGAN8n-1572774011435)(1.png)]](https://i-blog.csdnimg.cn/blog_migrate/d00d3cad8e03d182b82c168bd825c2b7.png)
POST(检点自检) --> BootSequence (BIOS)(选择硬件) --> Bootloader(MBR)(加载硬盘的MBR) --> kernel(ramdisk)(通过上一项加载内核) --> rootfs(只读)(找到根挂载) --> init(systemd)(运行系统中的第一个进程,通过进程重新挂载根,在加载其他需要的进程)
1.加载BIOS的硬件信息,获取第一个启动设备
2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息
3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
4.核心执行init程序,并获取默认的运行信息
5.init程序执行/etc/rc.d/rc.sysinit(初始化脚本)文件
6.启动核心的外挂模块
7.init执行运行的各个批处理文件(scripts)
8.init执行/etc/rc.d/rc.local
9.执行/bin/login程序,等待用户登录
10.登录之后开始以Shell控制主机
POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对 CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测
RAM:断电信息会丢,但是自带一个小型电池
bootloader: 引导加载器,引导程序 属于系统独立的小软件(软件基于GRUB)启动前的引导程序
windows: ntloader,仅是启动OS(只支持windows)
Linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用 户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核
kernel 内核 内核在/boot中
自身初始化: 探测可识别到的所有硬件设备 加载硬件驱动程序(借助于ramdisk加载驱动) 以只读方式挂载根文件系统 运行用户空间的第一个应用程序:/sbin/init (系统中的第一个进程)
/etc/rc.d/rc.sysinit: 系统初始化脚本
(1) 设置主机名
(2) 设置欢迎信息
(3) 激活udev和selinux
(4) 挂载/etc/fstab文件中定义的文件系统
(5) 检测根文件系统,并以读写方式重新挂载根文件系统
(6) 设置系统时钟
(7) 激活swap设备
(8) 根据/etc/sysctl.conf文件设置内核参数
(9) 激活lvm及software raid设备
(10) 加载额外设备的驱动程序
(11) 清理操作
在启动时出现的问题修复
1、破解root口令(contos6以前):在启动倒计时是点击任意键

也可以在/boot/grub/grub.conf文件中为单用户设置密码

2、当启动服务器时直接跳入光盘救援模式可能是磁盘mbr磁头出现损坏可以用下面的方法来修复或者在启动动画后直接黑屏可能是磁盘扇区损坏

3、当init文件损坏或丢失,需要进入选择内核的界面,输入a再在其中输入


4、当/etc/fdisk丢失,/boot丢失修复


本文详细解析了CentOS6的启动过程,从POST自检到BIOS信息加载,再到grub引导加载程序的选择,直至内核加载和根文件系统的挂载。深入探讨了init程序的作用,以及系统初始化脚本rc.sysinit的执行步骤,包括硬件驱动加载、文件系统挂载、系统参数设置等关键环节。
6741

被折叠的 条评论
为什么被折叠?



