#yyds干货盘点#启动流程和grub故障排错

Posted 王华_linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#启动流程和grub故障排错相关的知识,希望对你有一定的参考价值。

#1.CentOS 6 的启动管理

 Linux组成

 kernel 实现进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能等功能

rootfs 包括程序和 glibc 库

程序:二进制执行文件

库:函数集合, function, 调用接口(头文件负责描述)

内核设计流派 

宏内核(monolithic kernel):又称单内核和强内核,Unix,Linux

把所有系统服务都放到内核里,所有功能集成于同一个程序,分层实现不同功能,系统庞大复杂,Linux其实在单内核内核实现了模块化,也就相当于吸收了微内核的优点微内核(micro kernel):Windows,Solaris,HarmonyOS(华为开发微内核)

简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护,每种功能使用一个单独子系统实现,将内核功能移到用户空间,性能差

CentOS 6 启动流程

#yyds干货盘点#启动流程和grub故障排错_加载

1. 加载Bios的硬件信息,获取第一个启动设备

2. 读取第一个启动设备MBR的引导加载程序(grub)的启动信息

3. 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

4. 核心执行init程序,并获取默认的运行信息

5. init程序执行/etc/rc.d/rc.sysinit文件,重新挂载根文件系统

6. 启动核心的外gua模块

7. init执行运行的各个批处理文件(scripts)

8. init执行/etc/rc.d/rc.local

9. 执行/bin/login程序,等待用户登录

10. 登录之后开始以Shell控制主机

硬件启动POST

POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测

主板的ROM:BIOS,Basic Input and Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等

主板的RAM:CMOS互补金属氧化物半导体,保存各项参数的设定,按次序查找引导设备,第一个有引导程序的设备为本次启动设备

启动加载器 bootloader

bootloader: 引导加载器,引导程序

  • windows: ntloader,仅是启动OS
  • Linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核

Linux的bootloader

  • LILOLInux LOader,早期的bootloader,功能单一
  • GRUB: GRand Unified Bootloader, CentOS 6 GRUB 0.97: GRUB Legacy CentOS 7 以后使用 GRUB 2.02

GRUB 启动阶段

  • primary boot loader :

1st stageMBR的前446个字节

1.5 stage mbr 之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统

secondary boot loader :2nd stage,分区文件/boot/grub/

#yyds干货盘点#启动流程和grub故障排错_linux_02

#yyds干货盘点#启动流程和grub故障排错_linux_03

定义了菜单信息 ,

#yyds干货盘点#启动流程和grub故障排错_centos_04

#yyds干货盘点#启动流程和grub故障排错_centos_05

636K ext4的驱动无法放在446字节里面 。要进入系统首先要加载内核

2.CentOS 6 grub 安装

安装grub:

(1) grub-install 安装grub stage1和stage1_5到/dev/DISK磁盘上,并复制GRUB相关文件到 DIR/boot

目录下

grub-install --root-directory=DIR /dev/DISK

(2) grub

grub> root (hd#,#)

grub> setup (hd#)

3.修复grub的第1阶段故障

#yyds干货盘点#启动流程和grub故障排错_加载_06

#yyds干货盘点#启动流程和grub故障排错_centos_07

重启就不可以了,因为要用到前446字节

#yyds干货盘点#启动流程和grub故障排错_linux_08

#yyds干货盘点#启动流程和grub故障排错_centos_09

#yyds干货盘点#启动流程和grub故障排错_centos_10

#yyds干货盘点#启动流程和grub故障排错_linux_11

#yyds干货盘点#启动流程和grub故障排错_加载_12

#yyds干货盘点#启动流程和grub故障排错_linux_13

#yyds干货盘点#启动流程和grub故障排错_linux_14

#yyds干货盘点#启动流程和grub故障排错_加载_15

ctrl alt del 重启


#yyds干货盘点#启动流程和grub故障排错_centos_16

#yyds干货盘点#启动流程和grub故障排错_linux_17

27个扇区都被修复了


#yyds干货盘点#启动流程和grub故障排错_加载_18


4. 修复grub的第1.5 阶段故障

#yyds干货盘点#启动流程和grub故障排错_linux_19

错误提示

#yyds干货盘点#启动流程和grub故障排错_linux_20
因为1.5阶段被破坏了,但是第1阶段是好的,它认为硬盘还是可以启动的,所以不停的在这里闪烁

#yyds干货盘点#启动流程和grub故障排错_centos_21

修复:

#yyds干货盘点#启动流程和grub故障排错_加载_22

exit

#yyds干货盘点#启动流程和grub故障排错_centos_23

光盘启动,进入rescue模式
#chroot /mnt/sysimage
#grub-install /dev/sda
#sync
#按 ctrl+alt+delete 三个键重启动




以上是关于#yyds干货盘点#启动流程和grub故障排错的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#Ubuntu网络配置和故障排错工具详解

#yyds干货盘点#启动流程

#yyds干货盘点#Linux网络配置故障排除命令

#yyds干货盘点#数仓开发详细剖析

#yyds干货盘点#HP服务器无法进入“Intelligent Provisioning”故障

ceph pg degraded#yyds干货盘点#