CentOS6启动流程及开机启动时一些故障的解决(注:个人笔记)
CentOS6启动流程及开机启动时一些故障的解决
linux的组成:
Linux: kernel+rootfs
kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能 rootfs:程序和glibc 库:函数集合, function, 调用接口(头文件负责描述)
程序:二进制执行文件
CentOS6启动路程
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丢失修复