深度探讨MBR引导推荐

在本文开始,笔者提出了4个疑问,这些问题将帮助我们更好的理解计算机启动引导的整个过程,让我们的思路更加清晰

1、全新硬盘GHOST克隆恢复,系统可以启动吗?

2、预装XP的操作系统的电脑,GHOST克隆恢复系统可以启动吗?

3、预装Vista及以上级别的操作系统,GHOST克隆恢复系统可以启动吗?

4、预装Linux操作系统的电脑,GHOST克隆恢复可以启动吗?

这些问题其实都是关于GHOST的,大家都知道GHOST可以备份我们整个电脑的分区,甚至是整个硬盘,有些时候我们GHOST恢复过的计算机会发生不能启动的问题,为什么呢?这就是本文想和大家一起来探讨的重点

图:GHOST 11.5.1

这就是我们熟知的GHOST界面,在GHOST中常用的几个选项是

Partition to Image(将分区备份为GHO后缀的磁盘镜像)

Disk to Image(将磁盘备份为GHO后缀的磁盘镜像)

Partition from Image(将一个镜像恢复到一个分区)

Disk From Image(将一个镜像恢复到整个磁盘)

这些参数在平时可能我们用的比较多,特别是使用一些快速安装光盘的时候,例如深度技术快速安装,以及萝卜快速安装,之所以安装系统比较块是因为,制作这类系统盘的技术爱好者,已经将整个XP封装成了一个GHO文件,我们所需要做的就是插入光盘,选择一键安装即可

但是就像我们上方提出的问题一样,有些时候我们安装玩GHOST系统盘后发现操作系统启动不起来了?这是为什么呢?这里我们就要说说MBR了

Mbr(Mast Boot Record)主引导记录,这个主引导记录是存放在硬盘的0磁道中的,也就是硬盘的起始位置,MBR的逻辑结构见下图

MBR分为三部分

PART1、启动代码:也可以说是引导代码,这里面包含了各操作系统的引导信息,注意这里不存放引导文件,只存放引导代码,引导代码更具其特征来判断磁盘上存放的是什么操作系统,并且在分区表内找到激活的分区,来读取磁盘上的引导程序

我们知道已Windows XP为例,Windows XP的引导程序主要有这三部分组成 NTLDR.EXE、BOOT.INI、NTDECT 引导代码的任务就是寻找到这些引导程序把控制权交给引导程序,引导程序来启动系统的内核,从来又内核来启动操作系统,在这里就不赘述了

PART2、分区表:分区表记录着我们磁盘的分区状况,一块磁盘只能有4个主分区,和我们在XP里看到的C盘、D盘、E盘、F盘、G盘不同的是,在一个物理磁盘上只能分4个主分区,在XP下我们看到的只能说是一个主分区或者说是几个逻辑驱动器,一般的习惯,我们会把C划分成主分区,其余的空间划分成扩展空间,在扩展空间中就可以创建D\E\F\G\H\I等等等等的逻辑驱动器

PART3、结束位

说了那么多关于MBR的,归根到底我们系统是否能正常启动取决于三个方面

第一、MBR中的引导代码正确

第二、主分区被设置为活动

第三、引导程序正确

现在我们就回到上面的问题,先看看上述问题的实验结果

1、全新硬盘GHOST克隆恢复,系统可以启动吗?

笔者手头准备了一张深度技术V9.0的安装光盘,以光盘方式启动进入GHOST界面,笔者发现GHOST是不能够对分区进行还原的,因为全新硬盘并没有分区,所以全新硬盘只能使用Disk From Image(从一个镜像恢复到整个硬盘)

恢复完毕后发现这个系统是可以正常启动的,笔者就疑惑了,难道GHOST可以写MBR信息吗?或者说深度技术的安装光盘是带有MBR信息的?

带着这个疑问笔者查看了GHOST的参数,发现GHOST其中的一个参数为-BI这个参数是可以备份引导信息的,当然这一切只是推测,在后面的试验中笔者将更进一步的来描述MBR中的奥秘。

2、预装XP的操作系统的电脑,GHOST克隆恢复系统可以启动吗? 预装XP的操作系统,在还原了深度GHOST盘后,能够正常启动,其实这也是在笔者的预料之中,因为XP的引导信息一样,GHOST默认是不会去写MBR中的信息,因为GHOST只是针对盘符中的数据来进行操作的,能够顺利还原

3、预装Vista及以上级别的操作系统,GHOST克隆恢复系统可以启动吗?

预装Vista操作系统,可以顺利还原XP镜像,但是在启动时会蓝屏?同样是微软的引导代码为什么会蓝屏?笔者的疑惑开始不断增多?这是为什么?

4、预装Linux操作系统的电脑,GHOST克隆恢复可以启动吗?

预装Linux操作系统,当还原XP镜像后,系统停留在GRUB界面,这个结果明显和1问题冲突,如果深度镜像写入了MBR,那么系统应该是可以启动的

于是笔者4个实验做完还是一头雾水,MBR中到底存放有哪些东西?如何查看MBR中的信息?对比MBR信息是否能找出其中的玄机呢?

这是一张MBR表格,下面这些参数至关重要

80代码:我们看到有一个80代码,80代表着第一个被设置为激活的分区,当分区被设为激活那么分区的最前面就会加上16进制数据80,MBR就更具这个80来判断是从哪个主分区来进行启动

55 AA代码:在表格的最后看到55 AA这两个16进制代码,这表示,引导代码正常,分区表正常可以正常启动

11B8-11BB代码:XP的引导代码

11BE-11FF代码:Linux引导代码

这是一张例图,在计算机中我们是如何查看MBR代码的呢?启动到纯DOS环境下,使用DEBUG命令汇编一段小代码

A DEBUG -A 100 XXXX:0100 MOV AX, 0201 XXXX:0103 MOV BX, 1000 XXXX:0106 MOV CX, 0001 XXXX:0109 MOV DX, 0080 XXXX:010C INT 13 XXXX:010E INT 3 XXXX:010F -G=100 -D 11BE 11FF (显示分区表数据)

首先我们看第各个试验的MBR代码对比图

1、全新硬盘GHOST克隆恢复

全新硬盘克隆前

MBR全部为0

克隆后

2、预装XP的操作系统的电脑

原始XP

克隆后XP

我们发现MBR数据完全没有发生变化,所以XP正常启动

3、预装Vista及以上级别的操作系统

原始Vista

克隆后XP

我们发现48 C1 A6 BA部分没有发生改变,但是后面80 20 部分发生了改变,这也就是为什么Vista系统还原深度镜像出现蓝屏的主要原因

4、预装Linux操作系统的电脑

原始GRUB

覆盖后XP

88 A0 0E 00这段代码是不能引导XP的,在GHOST的过程当中,不会写入这段引导信息,所以XP无法引导

总结:

GHOST更具深度版本的GHO文件内容自动重写了 1B8h – 1BBh 区域

穷则思变,差则思勤!没有比人更高的山没有比脚更长的路。

深度探讨MBR引导推荐

相关文章:

你感兴趣的文章:

标签云: