引导过程与服务控制——MBR引导扇区恢复(二)

MBR

主引导记录(MBR,Master Boot Record)是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。

简介

通常,我们将包含MBR引导代码的扇区称为主引导扇区。因这一扇区中,引导代码占有绝大部分的空间,故而将习惯将该扇区称为MBR扇区(简称MBR)。由于这一扇区承担有不同于磁盘上其他普通存储空间的特殊管理职能,作为管理整个磁盘空间的一个特殊空间,它不属于磁盘上的任何分区,因而分区空间内的格式化命令不能清除主引导记录的任何信息。

引导过程与服务控制——MBR引导扇区恢复(二)_第1张图片MBR结构图

主引导扇区由三个部分组成(共占用512个字节):

1.主引导程序即主引导记录(MBR)(占446个字节)

可在FDISK程序中找到,它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统。

2.磁盘分区表项(DPT,Disk Partition Table)

由四个分区表项构成(每个16个字节)。

负责说明磁盘上的分区情况,其内容由磁盘介质及用户在使用FDISK定义分区时决定。(具体内容略)

3.结束标志(占2个字节)

其值为AA55,存储时低位在前,高位在后,即看上去是55AA(十六进制)。

 

修复 MBR扇区故障

故障原因

病毒木马等造成的破坏

不正确的分区操作、磁盘读写错误操作

故障现象

找不到引导程序,启动中断

无法加载操作系统,开机后黑屏

解决思路

应提前做好备份文件

以安装光盘引导进入急救模式

从备份文件中恢复

实际操作

1.备份mbr引导扇区到其他磁盘

(1)添加硬盘(添加好后记得重启系统)

引导过程与服务控制——MBR引导扇区恢复(二)_第2张图片

(2)创建分区,用fdisk命令进行分区的创建(这里不用去创建分区的类型,只是用来存储)

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

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

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

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

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

Calling ioctl() to re-read partition table.
正在同步磁盘。

 

(3)格式化,用命令mkfs进行格式化

[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242624, 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

(4)创建挂载点/data,并进行挂载

 

[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sdb1 /data
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        20G  3.9G   17G   20% /
devtmpfs                devtmpfs  473M     0  473M    0% /dev
tmpfs                   tmpfs     489M     0  489M    0% /dev/shm
tmpfs                   tmpfs     489M  7.1M  482M    2% /run
tmpfs                   tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda1               xfs       6.0G  161M  5.9G    3% /boot
/dev/mapper/centos-home xfs        10G   37M   10G    1% /home
tmpfs                   tmpfs      98M  4.0K   98M    1% /run/user/42
tmpfs                   tmpfs      98M   20K   98M    1% /run/user/0
/dev/sdb1               xfs        20G   33M   20G    1% /data

(5)对第一个扇区进行备份

输入命令: dd if=/dev/sda of=/data/sda.mbr.bak bs=512 count=1

dd:复制

if   从/dev/sda目录中拿取文件

of=/data/sda.mbr.bak  生成到/data目录下生成一个文件sda.mbr.bak

bs=512   定义容量,512k

count=1    拿取的次数为1次

[root@localhost ~]# dd if=/dev/sda of=/data/sda.mbr.bak bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.00194802 秒,263 kB/秒

2.模拟破坏mbr引导扇区

(1)从/dev/zero拿取文件把/dev/sda覆盖,输入命令:dd if=/dev/zero of=/dev/sda bs=512 count=1

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000236773 秒,2.2 MB/秒

(2)用命令init 6重启,会发现重启失败

引导过程与服务控制——MBR引导扇区恢复(二)_第3张图片

3.引导镜像急救模式进行mbr扇区恢复

(1)光盘镜像必须先放进去,并选择连接

引导过程与服务控制——MBR引导扇区恢复(二)_第4张图片

(2)对虚拟机进行重启,注意:有的电脑在点击重启开始加载进度条的时候,需要按按Esc键

引导过程与服务控制——MBR引导扇区恢复(二)_第5张图片

(3)选择“Troubleshooting疑难问题解决”,用键盘上下键去进行选择,选择好后按回车键

引导过程与服务控制——MBR引导扇区恢复(二)_第6张图片

(4)接下来选择第二行,进入系统自带的命令模式

引导过程与服务控制——MBR引导扇区恢复(二)_第7张图片

(5)进入到命令模式中,输入“1”(Continue),按回车键,会自动加载进入带一个shell终端模式

引导过程与服务控制——MBR引导扇区恢复(二)_第8张图片

4.从备份文件中恢复

(1)输入“ls”查看,并没有之前创建的/data目录

(2)创建一个挂载点名称叫/bak,然后你把/dev/sdb1挂载到/dak上,并查看/bak目录下,就会看到之前之前的那个备份文件sda.mbr.bak

(3)恢复文件操作,输入命令:dd if=/bak/sda.mbr.bak of=/dev/sda  ,进行恢复,然后输入命令reboot重启

(4)重启成功

引导过程与服务控制——MBR引导扇区恢复(二)_第9张图片

 

 

 

 

你可能感兴趣的:(Linux,系统管理)