引导过程与故障修复

news2024/11/30 20:40:15

一、Linux操作系统引导过程

1、引导过程总览

开机自检

检查硬件设备,检测出第一个能够引导系统的设备,比如硬盘或者光驱 

 MBR 引导

运行MBR扇区里的主引导程序GRUB

启动GRUB菜单

统读取GRUB配置文件(/boot/grub2/grub.cfg)获取内核的设置和位置,并在屏幕显示GRUB菜单页面 。

加载Linux内核

把内核加载到内存,将系统控制权交接给内核

 init进程初始化

 内核将init进程加载到内存中运行,并把init进程作为系统的第一个进程

系统初始化      

启动内核模块,执行运行级别的启动脚本,执行/etc/rc.d/rc.local文件里的命令等 

 2、系统初始化进程

init进程

  • init进程文件位于 /sbin/init -> /lib/systemd/systemd 
  • init进程PID号固定为 1 ,是系统中其它所有进程的父进程
  • init 进程负责完成整个系统的初始化,最后等待用户进行登录

Systemd

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

进程启动方式 

  • centos7开始的版本默认的启动方式是 systemd,开机服务程序为并行启动,启动效率较快
  • centos6及以前版本的启动方式是 sysVinit,开机服务程序是通过串行执行/etc/init.d/目录下的shell脚本启动的,容易阻塞,启动效率较慢

System单元类型

Linux的运行级别

运行级别说明对应的Systemd的target
0关机poweroff.target
1单用户模式rescue.target
2字符界面的多用户模式(无网络)multi-user.target
3字符界面的多用户模式(有网络)multi-user.target
4字符界面的多用户模式(保留)multi-user.target
5图形界面的多用户模式graphical.target
6重启reboot.target

二、系统故障修复

1、修复MBR扇区故障

MBR   主引导程序 1~446字节   硬盘分区表 447~510字节

如果是 MBR 整个扇区数据被破坏了,需要进入到急救模式将备份的MBR数据导入还原

备份命令:dd if=/dev/sda  of=备份文件  bs=512  count=1
还原命令:dd if=备份文件  of=/dev/sda

解决思路:

  1. 应提前作好备份文件
  2. 以安装光盘引导进入急救模式
  3. 从备份文件中恢复

 实例:修复MBR扇区故障

步骤一:增加一块硬盘,用于存放数据

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x2d7e90b8 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-104857599,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-104857599,默认为 104857599):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):w^H
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# cd /opt
[root@localhost opt]# mkdir mbr-bak
[root@localhost opt]# mount /dev/sdb1 /opt/mbr-bak/
[root@localhost opt]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        26G  4.4G   22G   17% /
/dev/sda1               xfs      1014M  187M  828M   19% /boot
tmpfs                   tmpfs     378M  8.0K  378M    1% /run/user/42
tmpfs                   tmpfs     378M     0  378M    0% /run/user/1000
/dev/sdb1               xfs       2.0G   33M  2.0G    2% /opt/mbr-bak
[root@localhost opt]# dd if=/dev/sda of=/opt/mbr-bak/mbr.bak bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.00112141 秒,457 kB/秒
[root@localhost opt]# ll -h
总用量 0
drwxr-xr-x. 2 root root 21 4月  18 03:12 mbr-bak
drwxr-xr-x. 2 root root  6 10月 31 2018 rh

步骤二:备份MBR扇区数据到其他磁盘(/dev/sdb1)

if指定从何处提取数据,of表示备份到何处,bs指定提取的大小,count指定次数

步骤三:模拟破坏MBR引导扇区 

步骤四:进行恢复操作

 

实例:修复GRUB引导故障 

方法:

  1.  尝试手动输入引导命令
  2.  进入急救模式,重写或者从备份中恢复grub.conf
  3. 向MBR扇区中重建grub程序

实例:

步骤一:删除grub.cfg文件并重启

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


grub> insmod xfs                                                                 #加载指定的模块到内核
grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet LANG=zh_CN.UTF-8               #内核的名字及位置等信息
grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img            #镜像系统文件
grub> boot                                                                            #引导boot

方法二:

 

重启后,文件已恢复,如图: 

实例:MBR 的GRUB主引导程序被破坏

 

进入急救页面。重建MBR数据

总结:

启动类故障恢复
MBR   主引导程序 1~446字节   硬盘分区表 447~510字节
如果是 MBR 整个扇区数据被破坏了,需要进入到急救模式将备份的MBR数据导入还原

备份命令:dd if=/dev/sda  of=备份文件  bs=512  count=1
还原命令:dd if=备份文件  of=/dev/sda
  

如果是 MBR 的GRUB主引导程序被破坏了

(1)在急救模式下使用备份文件恢复          dd if=备份文件  of=/dev/sda  bs=446  count=1
(2)在急救模式下重建MBR的GRUB主引导程序   chroot /mnt/sysimage   ->   grub2-install /dev/sda
      

如果是GRUB配置文件被删了

在急救模式下重建GRUB配置文件  chroot /mnt/sysimage   ->   grub2-mkconfig -o /boot/grub2/grub.cfg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1602734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国产主流数据库存储类型简析

国产数据库在技术架构上主要分为集中式、基于中间件分布式和原生分布式架构,衍生出集中式架构和分布式架构。那么在这些部署架构中,从数据分布的视角来看,在数据库中数据分布的形态是怎样的。本文将简要分析OceanBase、PolarDB、OpenGauss、G…

OpenMesh 网格平均曲率计算

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 根据 Laplace-Beltrami 算子与平均曲率法向的关系: 又根据余切 Laplace-Beltrami 算子的定义: 其中 Ai 为该点邻域面积,取 Voronoi cell 面积如下: 得到

jmeter及PTS压测介绍和使用

一、常用压测工具: loadrunner apache ab(单接口压测最方便) jmeter 阿里云PTS(原生上传jmeter脚本进行压测) 二、jmeter可以压测不同的协议和应用 web http https jdbc for database TCP 三、使用场景及优点 1、功能…

基于Python大数据的微博舆情分析,微博评论情感分析可视化系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

5.1 iHRM人力资源 - 员工管理

iHRM人力资源 - 员工管理 - 左右侧主体展示 文章目录 iHRM人力资源 - 员工管理 - 左右侧主体展示一、页面主体结构二、页面左树加载2.1 加载左树数据2.2 记录树的切换节点 三、右侧员工列表3.1 列表结构3.2 员工数据获取3.3 头像和聘用形式3.4 数据分页3.5 员工模糊搜索 一、页…

ssm055基于spring框架的中小企业人力资源管理系统的设计及实现+jsp

中小企业人力资源管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本中小企业人力资源管理系统就是在这样的大环境下诞生,其可…

基于SpringBoot+Vue的装饰工程管理系统(源码+文档+包运行)

一.系统概述 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统装饰工程项目信息管理难度大,容错率低&a…

5.2 iHRM人力资源 - 员工管理 - 使用文件导入导出员工

iHRM人力资源 - 员工管理 - 导入导出员工 文章目录 iHRM人力资源 - 员工管理 - 导入导出员工一、员工导出Excel二、员工导入Excel2.1 Excel导入组件封装2.2 下载导入模板2.3 Excel 导入功能 三、删除员工 一、员工导出Excel 这个地方涉及一个接口二进制流blob 就是下面这一大片…

力扣HOT100 - 234. 回文链表

解题思路&#xff1a; class Solution {public boolean isPalindrome(ListNode head) {List<Integer> list new ArrayList<Integer>();// 将链表的值复制到数组中ListNode cur head;while (cur ! null) {list.add(cur.val);cur cur.next;}// 使用双指针判断是否…

力扣hot100:136. 只出现一次的数字 及其衍生

文章目录 一、LeetCode&#xff1a;136. 只出现一次的数字 使用到的异或运算的特点&#xff1a; 两个相同的数异或&#xff0c;结果为0 一、LeetCode&#xff1a;136. 只出现一次的数字 LeetCode&#xff1a;136. 只出现一次的数字 这里数组nums的特点是&#xff0c;除了一…

线程控制及线程底层原理

thread id 本质是一个地址。 以十六机制打印id。 线程终止的两种方法。 1.直接return&#xff1b; 2.pthread_exit(); 注意exit()是用来终止进程的&#xff0c;不能用于线程。 那怎么获取线程的返回值呢&#xff1f; 首先&#xff0c;和进程一样&#xff0c;线程退出也需要…

Python 入门指南(一)

原文&#xff1a;zh.annas-archive.org/md5/97bc15629f1b51a0671040c56db61b92 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 前言 这个学习路径帮助你在 Python 的世界中感到舒适。它从对 Python 的全面和实用的介绍开始。你将很快开始在学习路径的第一部分编写程序…

2024年阿里云4核8G配置云服务器价格低性能高!

阿里云4核8G服务器租用优惠价格700元1年&#xff0c;配置为ECS通用算力型u1实例&#xff08;ecs.u1-c1m2.xlarge&#xff09;4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选&#xff0c;CPU采用Intel(R) Xeon(R) Platinum处理器&#xff0c;阿里云优惠 aliyunfuwuqi…

基于docker的Jenkin的服务平台搭建

项目拓扑图 项目环境: jenkins-2.440 sonarqube-9.9.4 apache-maven-3.9.6 gitlab-ce-12.4.2 java17 docker20 harbor.v2.6.0 centos7.9 项目目的: 模拟企业构建一个流行的持续集成和持续部署环境,可以更轻松地创建和管理构建环境&#xff0c;实现自动化构建和部署应用程序的…

大模型开发轻松入门——(1)从搭建自己的环境开始

pip install openai import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv())openai.api_key os.getenv(OPENAI_API_KEY)

3d模型怎么全是网格?---模大狮模型网

在进行3D建模或场景设计时&#xff0c;有时会遇到一个普遍问题&#xff0c;即所见的3D模型表面全是由网格组成&#xff0c;而没有显示实际的表面纹理或颜色。这可能会导致困惑和挫败感&#xff0c;阻碍项目的进展。本文将深入探讨这一现象背后的原因&#xff0c;并提供多种解决…

2024九章云极DataCanvas智算操作系统新品发布会震撼来袭!

从大模型到智能算力&#xff0c;从“数字中国”到“新质生产力”……在技术突破和时代引领双轮驱动下&#xff0c;人工智能技术应用不断刷新全社会的认知&#xff0c;人工智能产业机遇席卷而来、发展将颠覆想象。随着AIGC和大模型的快速发展&#xff0c;建设拥有“卓越算力”和…

Chrome修改主题颜色

注意&#xff1a;自定义Chrome按钮只在搜索引擎为Google的时候出现。

如何鉴别品深茶叶的真伪?

鉴别品深茶叶的真伪可以通过以下三点进行判断&#xff1a;第一是看&#xff0c;观察茶叶的颜色和形状是否自然&#xff1b;第二是闻&#xff0c;感受茶叶的香气是否纯净&#xff1b;第三是泡&#xff0c;品尝茶汤的味道是否醇厚。最好的方式还是通过官方访问进行查询&#xff0…

Linux系统——Elasticsearch企业级日志分析系统

目录 前言 一、ELK概述 1.ELK简介 2.ELK特点 3.为什么要使用ELK 4.完整日志系统基本特征 5.ELK工作原理 6.Elasticsearch介绍 6.1Elasticsearch概述 6.2Elasticsearch核心概念 7.Logstash介绍 7.1Logstash简介 7.2Logstash主要组件 8.Kibana介绍 8.1Kibana简介 …