Linux-系统启动与MBR扇区修复
1.系统启动过程
Linux系统启动过程分为五步。
A[BIOS启动,硬件自检] --> B[读取MBR扇区,获取内核文件路径]
B --> C[通过GRUB代码,获取内核]
C --> D[内核加载,调度硬件]
D --> E[init进程,系统启动的第一个程序]
1.1 MBR扇区
MBR扇区位于磁盘的第一扇区,一个扇区512字节。系统启动时候会最先读取MBR扇区,获取系统启动必要文件路径。MBR扇区中包含三个部分,446字节的引导代码(grud),64字节的分区表(4个主分区信息)和2字节结束标志。MBR分区表的损坏会导致系统无法正常启动,因此需要备份MBR扇区,防止由于MBR扇区的损坏导致系统的启动异常。
1.2 MBR扇区的备份与还原
系统启动盘的MBR扇区修复思路如下:

由于MBR扇区中包含着主分区表信息,所以当硬盘主分区变化时,MBR扇区的数据也会发生变化,所以当分区过后应当及时备份MBR分区表。防止修复后导致分区表信息错误,后导致数据丢失。
1.3 修复MBR
使用lsblk查看硬盘分区情况。

系统中系统盘为sda,数据盘为sdb挂载在目录/data下。挂载有光驱sr0,其中有centos的系统镜像。
1.3.1 dd备份MBR信息
由于sda是系统启动盘,所以其mbr扇区数据应当备份至其他盘中。因为当MBR扇区损坏时,读取自身磁盘中的数据较为困难
[root@localhost ~]# dd if=/dev/sda of=/data/abc.bak bs=512 count=1 ## 将sda的第一个512字节块(MBR扇区数据)复制到abc.bak中
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000478688 s, 1.1 MB/s
将/dev/zreo中的数据拷贝至sda的MBR扇区中,以达到模拟破坏MBR扇区的效果。
[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
重启系统。
1.3.2 光驱启动修复
当系统启动盘的MBR扇区破坏读取失败时,当光驱中有系统文件时时会自动进行光驱启动(也可使用u盘)。

进入救援模式

回车

选择后可获得shell。

在shell中输入图中指令即可完成sda的MBR扇区修复。

重启后,可正常进入系统

1.4 grub引导代码修复
grub引导代码由于处于MBR扇区当中,所以只要备份了MBR引导扇区,即可以同样的方式修复Grub引导代码。
Linux-系统启动与MBR扇区修复的更多相关文章
- Linux修复MBR扇区故障
给虚拟机增加一块硬盘,用于备份mbr的信息 fdisk -l 查看硬盘系统是否认识 fdisk /dev/sdb 进行分区 fdisk -l 查看分区是否出来 mkfs -t ext4 /dev/sb ...
- Windows 7 MBR的修复与Linux产品正确卸载
这几天折腾系统很令人崩溃,但也明白了开机引导流程具体如何. 觉得Centos 7不好用,想卸载Redhat安装Ubuntu,为了图方便直接把红帽的硬盘区格式化了.于是开机引导崩溃,咨询了下大神,大神叫 ...
- MBR扇区故障修复!
一:进行分区且格式化硬盘 [root@roomc~]#mkfs -t ext4 /dev/sdb1 //格式化sdb1盘 二:模拟破坏/sda主硬盘破坏再修复! [root@roomc~]#mk ...
- Linux系统启动过程介绍
Linux系统启动过程介绍 学习操作系统有必要了解一下系统的启动过程,这样在面对各种系统故障的时候能快速定位解决问题,下面以Centos来分析linux系统的启动过程. 1.BIOS自检:当开机的时候 ...
- Linux系统启动那些事—基于Linux 3.10内核【转】
转自:https://blog.csdn.net/shichaog/article/details/40218763 Linux系统启动那些事—基于Linux 3.10内核 csdn 我的空间的下载地 ...
- 学习笔记:CentOS7学习之十八:Linux系统启动原理及故障排除
目录 学习笔记:CentOS7学习之十八:Linux系统启动原理及故障排除 18.1 centos6系统启动过程及相关配置文件 18.1.1 centos6系统启动过程 18.1.2 centos6启 ...
- Linux启动故障排查和修复技巧
一个执着于技术的公众号 我发现Linux系统在启动过程中会出现一些故障,导致系统无法正常启动,我在这里写了几个应对单用户模式.GRUB命令操作.Linux救援模式的故障修复案例帮助大家了解此类问题的解 ...
- Linux学习之CentOS(二十一)--Linux系统启动详解
在这篇随笔里面将对Linux系统的启动进行一个详细的解释!我的实验机器是CentOS6.4,当然对于现有的Linux发行版本,其系统的启动基本上都是一样的! 首先我们来看下Linux系统启动的几个 ...
- linux基础-附件1 linux系统启动流程
附件1 linux系统启动流程 最初始阶段当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序.这一程序通常知道一些直接连接在主 ...
随机推荐
- Disruptor-高性能队列
简介 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题.与Kafka.RabbitMQ用于服务间的消息队列不同,disruptor一般用于线程间消息 ...
- SqlServer基础语法
历史 有很多软件公司开发了数据库产品,其中微软公司的数据库产品命名为 SQL Server,也称 MS SQL Server. 1989年 Ashton-Tate/Microsoft SQL Serv ...
- 自定义ASP.NET MVC Html标签辅助方法
原文:https://blog.csdn.net/a497785609/article/details/50184779 在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性 ...
- 论java中System.arrayCopy()与Arrays.copyOf()的区别
如果我们想拷贝一个数组,我们可能会使用System.arraycopy()或者Arrays.copyof()两种方式.在这里,我们将使用一个比较简单的示例来阐述两者之间的区别. 首先先说System. ...
- .NET6: 开发基于WPF的摩登三维工业软件 (2)
在<.NET6: 开发基于WPF的摩登三维工业软件 (1)>我们创建了一个"毛坯"界面,距离摩登还差一段距离.本文将对上一阶段的成果进行深化,实现当下流行的暗黑风格UI ...
- 流量录制与回放在vivo的落地实践
一.为什么要使用流量录制与回放? 1.1 vivo业务状况 近几年,vivo互联网领域处于高速发展状态,同时由于vivo手机出货量一直在国内名列前茅,经过多年积累,用户规模非常庞大.因此,vivo手机 ...
- Solution -「CF 1361E」James and the Chase
\(\mathcal{Description}\) Link. 给定 \(n\) 个点 \(m\) 条边的有向弱连通图.称一个点是"好点"当且仅当从该点出发,不存在到同一点 ...
- 定制Centos7.9镜像
Ps:因为工作内容:有一部份是需要重装系统:系统版本镜像为centos7.9.可每次装完都需要下载一些基础包:最近因为设备过多:网卡名称太乱:导致做后续配置太繁琐:不规整:索性自己定制个系统: 搭建基 ...
- HTML5/CSS3/JS笔记
HTML笔记: 前言: HTML无非就是围绕标签.属性.属性值这三个词展开的. (标签也可以叫做元素, 元素的内容是开始标签与结束标签之间的内容) *常规标签 <标签 属性1="属性值 ...
- node打标签、污点
标签 1.查看当前节点的标签 kubectl get node --show-labels 2.给节点打标签 kubectl label node nodename key=value. 3.删除标签 ...