一、Linux操作系统引导过程
二、系统初始化进程
1、init进程
2、Systemd
3、Systemd单元类型
三、排除启动类故障
【1】、修复MBR扇区故障(含实验过程)
【2】、修复GRUB引导故障
●方法二:进入急救模式,恢复GRUB引导程序(与MBR 引导扇区类似)
●方法三:引导界面进入急救模式,重建GRUB菜单配置文件
方案三实验
四、遗忘root用户的密码
实验过程

一、Linux操作系统引导过程
1.开机自检
服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。
总结:检测出第一个能够引导系统的设备,比如硬盘或者光驱

2.MBR 引导
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单(如 GRUB)。
总结:运行放在MBR扇区里的启动GRUB引导程序

3.GRUB 菜单
对于Linux操作系统来说,GRUB(统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。
CentOS 7 采用的是 GRUB2 启动引导器。
总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置

4.加载 Linux 内核
Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。
CentOS 7系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.el7.x86_64”。
总结:把内核和镜像文件系统加载到内存中

5.init 进程初始化
为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init 进程负责完成整个系统的初始化,最后等待用户进行登录。
总结:加载硬件驱动程序,内核把init进程加载到内存中运行

传统sysvinit依赖于串行执行 Shell 脚本启动服务,导致效率低下,系统启动速度较慢
systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度。

二、系统初始化进程
1、init进程
●由linux内核加载运行/sbin/init程序
●init进程是系统中第一个进程
●init进程的PID(进程标记)号永远为1

2、Systemd
●Systemd是linux操作系统的一种init软件
●CentOS7采用全新的Systemd启动方式,取代传统的SysVinit
●CentOS中运行的第一个init进程是/lib/systemd/systemd

3、Systemd单元类型

三、排除启动类故障
【1】、修复MBR扇区故障(含实验过程)
●MBR位于第一块硬盘(/dev/sda)的第一个物理扇区处,总共512字节

●故障原因
病毒、木马等造成的破坏
不正确的分区操作、磁盘读写误操作

●故障现象
找不到引导程序,启动中断
无法加载操作系统,开机后黑屏

●解决思路
应提前做好备份文件
以安装光盘引导进入急救模式
从备份文件中恢复

1.备份MBR 扇区数据到其它磁盘(/dev/sdb1)

2.模拟破坏MBR引导扇区

3.引导界面进入急救模式,从备份文件中恢复MBR 扇区数据
先加载好光盘镜像,重启操作系统,
当出现安装向导界面时,选择“Troubleshooting”选项,
再选择“Rescue a CentOS Linux system”选项,进入急救模式
选择“1”选择 Continue并按 Enter 键继续
再次按 Enter 键后将进入带“sh-4.2#”提示符的 Bash Shell 环境

1、首先编辑虚拟机设置,添加一个新硬盘,给它个20G

2、然后我们使用fdisk -l查看一下分区情况,发现多了一块/dev/sdb

3、fdisk /dev/sdb管理分区,n创建新分区,回车默认创建p主分区,回车默认分区号1,回车默认起始扇区,再回车默认大小,w保存操作并退出

4、想使用新创建好的磁盘,需要进行格式化更改文件系统类型xfs,然后在根目录下创建一个目录,用于新磁盘挂载

5、挂载好后df -h查看一个挂载列表情况,确认无误后,我们需要将/dev/sda中MBR注引导记录中的内容进行备份,然后再人为制造/dev/sda主引导分区损坏,再进行重启

6、使用虚拟机界面,选择急救模式,再选择拯救系统

7、进入shell环境后,我们需要创建个目录,让sdb1挂载,这样它里面的那个备份文件就可以使用了,然后我们再将备份文件发送到sda里面就行了,退出就可以自动开机了

【2】、修复GRUB引导故障

●/boot/grub/目录下的包是用于启动菜单的背景图片及样式

 ●方法一:手动输入引导命令(笨拙繁琐,不建议使用)

●内核的名字及位置等

●方法二:进入急救模式,恢复GRUB引导程序(与MBR 引导扇区类似)

●MBR位于第一块硬盘(/dev/sda)的第一个物理扇区处,总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447-510字节中。

●模拟对MRB中的GRUB引导程序的破坏,但并不破坏分区表

●引导界面进入急救模式,从备份文件中恢复GRUB引导程序

●方法三:引导界面进入急救模式,重建GRUB菜单配置文件

●进入急救模式,加载光盘镜像,切换到系统根环境

●重新将GRUB引导程序安装到第一块硬盘(/dev/sda)的MRB扇区

●重新构建GRUB菜单的配置文件

●退出chroot 环境,并重启

四、遗忘root用户的密码

●进入急救模式,加载系统镜像,切换到系统根环境

●重设root用户密码

实验过程

1、首先我们先重启虚拟机,然后快速点击虚拟机内部,在加载读条时点击按键Esc键进入选择启动项(实在不行,请使用上个案例的直接更改启动项,但是不要忘了修改完成后将启动项修改回来)

2、选择光盘启动

3、选择急救模式

4、选择拯救系统

5、稍等一会后输入1,并点击两次回车,开始输入命令进入系统根环境,然后更换root用户密码,修改完成后退出并重启

重启后输入新密码就完成了

Linux系统引导过程及排除启动故障的更多相关文章

  1. linux系统引导过程

    linux系统引导过程 linux-0.11引导时,将依次运行BIOS程序.bootsect.s.setup.s和head.s,完成引导过程后进入到main函数运行.BIOS完成硬件的检查与初始化等工 ...

  2. Linunx系统引导过程及MBR/GRUB故障

    Linunx系统引导过程 系统初始化进程 init进程 Systemd Systemd单元类型 允许级别所对应的systemd目标 修复MBR扇区故障 解决思路 操作 修复GRUB引导故障 解决思路 ...

  3. Linux系统——引导过程与服务控制

    一.Linux开机启动原理(十步) (1)开机自检BIOS 开机检测,主板检测 (2)MBR引导 硬盘512字节 (3)GRUB菜单 操作系统菜单 (4)加载内核(kernel) 启动操作系统核心,根 ...

  4. 【Linux系统引导过程】

    *** 第一步 开机自检 根据主板BIOS中的启动顺序,移交系统控制权. 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它. 这是因为BIO ...

  5. 轻松学习Linux之详解系统引导过程

    轻松学习Linux之详解系统引导过程-1 轻松学习Linux之详解系统引导过程-2 本文出自 "李晨光原创技术博客" 博客,谢绝转载!

  6. 9.Linux系统引导流程

    一.Linux系统引导流程 当我们按下主机电源键的那时候开始,主板上的CMOS/BIOS模块将进行固件自检,以此检查各个硬件是否正确连接. 在Linux引导流程中,一般可以分为以下几个主要过程: 1. ...

  7. linux系统开机过程描述

    本文描述linux系统开机过程,属于个人理解范畴,如果文中表述有误请大家批评指正! 计算机开机之后,首先要加载BIOS(基本输入输出系统)信息,BIOS包含了很多重要的信息,包括CPU信息,设备启动顺 ...

  8. Linux系统/boot目录破损无法启动怎么办

    linux系统中的/boot目录存放着系统开机所需要的各种文件,其中包含内核.开机菜单及所需配置文件等等.但是当不小心删除了/boot目录里的某些文件或者干脆整个/boot目录都不见了的情况下,该如何 ...

  9. Linux 系统管理——引导过程与服务控制

    一. 系统引导流程 1.开机自检(BIOS)(基本的输入输出系统) 2.MBR引导1.2. MBRIS 当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR (Master Boot Record ...

随机推荐

  1. Step By Step(Lua模块与包)

    Step By Step(Lua模块与包) 从Lua 5.1开始,我们可以使用require和module函数来获取和创建Lua中的模块.从使用者的角度来看,一个模块就是一个程序库,可以通过requi ...

  2. Python+Selenium - 文件上传

    如下图,从系统点击上传功能,打开到这种如下图页面的才适合本文介绍的处理方法 处理方法一 pywinauto库 优点:可以选择多个文件,路径中有中文也支持 缺点:只能Windows平台使用 安装 pip ...

  3. 书列荐书 |《至关重要的关系》 【美】里德·霍夫曼

    本书的内容不算多,堪称精辟,有些东西甚至可以作为指导思想.括号内为书列君书评. 经典语录: 每个人都是企业家!(否则你无法最大化努力!) 创业和做人是相通的.我们要有计划,要执着,但是也要有弹性,懂得 ...

  4. Spring的controller接受Date类型数据,接受枚举类型数据

    1. Controller接收Date类型的数据 核心使用@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 来将传递过来的时间字符串 ...

  5. 点云配准的端到端深度神经网络:ICCV2019论文解读

    点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...

  6. 35 张图带你 MySQL 调优

    这是 MySQL 基础系列的第四篇文章,之前的三篇文章见如下链接 138 张图带你 MySQL 入门 47 张图带你 MySQL 进阶!!! 炸裂!MySQL 82 张图带你飞 一般传统互联网公司很少 ...

  7. eclipse解决中文乱码

    参考链接:https://blog.csdn.net/lzc2644481789/article/details/97244261

  8. HTML——超链接<a>

    一.超链接的一般格式: <a href="路径" target="目标窗口的位置">链接文本或图像<a/> 1.常用参数说明: href ...

  9. Spring Boot 实战:如何自定义 Servlet Filter

    1.前言 有些时候我们需要在 Spring Boot Servlet Web 应用中声明一些自定义的 Servlet Filter来处理一些逻辑.比如简单的权限系统.请求头过滤.防止 XSS 攻击等. ...

  10. 如何把excel中的行转为列?

    步骤:选择复制要转行的内容--->新建一张表格---->右键选择性粘贴---->转置----->成功把行转为列(具体操作看下图) 选择复制这些内容