主引导扇区释疑

原创 2004年09月22日 17:34:00

摘自chinaunix.net


发信人: NightOwl (Owlet), 信区: Linux 
标 题: 主引导扇区释疑 
发信站: BBS 水木清华站 (Sat Nov 20 06:50:43 1999) 

主引导扇区释疑 

关键词:引导扇区、主引导扇区、主引导记录、硬盘分区表。 

NightOwl 
1999.11 

------------------------------------------------------------------- 
本文尚未完备,如有好的意见和建议欢迎与我联系. 
------------------------------------------------------------------- 

很多朋友对于硬盘的主引导扇区里的MBR(Main Boot Record)和DPT 
(Disk Partition Table)的区别有些分不太清。于是我想把它写个简短的 
介绍,希望能对这些朋友有点帮助。 

引导扇区在每个分区里都存在,但是我们常说的*主引导扇区*是硬盘的 
第一物理扇区。它由两个部分组成:即主引导记录MBR和硬盘分区表DPT。在 
总共512字节的主引导分区里其中MBR占446个字节(偏移0--偏移1BDH),DPT 
占64个字节(偏移1BEH--偏移1FDH),最后两个字节“55,AA”(偏移1FEH 
偏移1FFH)是分区的结束标志。大致的结构如下图: 

0000 |------------------------------------------------| 
| | 
| | 
| Main Boot Record | 
| | 
| | 
| 主引导记录(446字节) | 
| | 
| | 
| | 
01BD | | 
01BE |------------------------------------------------| 
| | 
01CD | 分区信息 1(16字节) | 
01CE |------------------------------------------------| 
| | 
01DD | 分区信息 2(16字节) | 
01DE |------------------------------------------------| 
| | 
01ED | 分区信息 3(16字节) | 
01EE |------------------------------------------------| 
| | 
01FD | 分区信息 4(16字节) | 
|------------------------------------------------| 
| 01FE | 01FF | 
| 55 | AA | 
|------------------------------------------------| 

图一:主引导扇区结构图 

主引导记录中包含了硬盘的一系列参数和一段引导程序。引导程序主要 
是用来在系统硬件自检完后引导具有激活标志的分区上的操作系统。它执行 
到最后的是一条JMP指令跳到操作系统的引导程序去。这里往往是引导型病 
毒的注入点,也是各种多系统引导程序的注入点。但是由于引导程序本身完 
成的功能比较简单,所以我们可以完全地判断该引导程序的合法性(看JMP 
指令的合法性),因而也易于修复。象命令fdisk/mbr可以修复MBR和KV300 
这类软件可以查杀任意类型的引导型病毒,就是这个原因。 

往下来是硬盘的分区表,由4个16字节的分区信息表组成。每个信息表的 
结构如下: 

偏移 长度 所表达的意义 
0 字节 分区状态: 如0-->非活动分区 
80--> 活动分区 
1 字节 该分区起始头(HEAD) 
2 字 该分区起始扇区和起始柱面 
4 字节 该分区类型:如82--> Linux Native分区 
83--> Linux Swap 分区 
5 字节 该分区终止头(HEAD) 
6 字 该分区终止扇区和终止柱面 
8 双字 该分区起始绝对分区 
C 双字 该分区扇区数 

最后的两个标志“55 AA”是分区表的结束标志,如果这两个标志被修改 
(有些病毒就会修改这两个标志),则系统引导时将报告找不到有效的分区表。 

由上面的所列出的结构可以大致地了解主引导扇区的结构和用途。下面, 
有一些关于主引导扇区的常见问题: 

Q1、fdisk/mbr 会不会把硬盘的分区表破坏呀? 
A: 从上面的土一我们可以看到fdisk/mbr是不会影响到DPT的。fdisk/ 
mbr只是把主引导分区里的MBR部分重新写过,而不会对DPT有任何破坏。 

Q2、在Linux里有一种方法可以恢复MBR是用如下的命令: 
dd if=/boot/boot.NNNN of=/dev/hda bs=446 count=1 
其中bs(buffer size)是指重写的字节数。为什么不是512 
呢?主引导扇区是一个扇区(512字节呀)? 
A: 答案是因为我们用上面的命令是为了修复可能被病毒修改了的主引导记 
录MBR,或者想把LILO卸载掉,而不是恢复整个主引导扇区。所以我们 
只把主引导扇区的备份文件boot.NNNN的前446个字节重写入主引导扇区。 
boot.NNNN是我们在安装Linux之前整个主引导分区的备份。如果我们把 
512个字节全部写入主引导扇区就可能会把安装了Linux后改变了的硬盘 
DPT表也破坏掉。那就坏事了。 :-) 


linuxrat补充一些:=)... 

MBR-> Main/Master Boot Record, 有些书上是写成Master的. 
我认为可以分成三个部分吧, MBR+DPT+MagicNumber(446+64+2=512) 
这也就是为什么进行MBR备份的时候要指定bs=512 或者 bs=1k, count=1的原因. 然后恢复时经常看到HOWTO里面是bs=446 count=1. 这个446就是指令部分的恢复, 不是DPT的恢复. 往往MBR里面的第一个指令是cli... 研究起来是比较有意思的. 

主引导扇区(MBR)释疑

很多朋友对于硬盘的主引导扇区里的MBR(Main Boot Record)和DPT (Disk Partition Table)的区别有些分不太清。于是我想把它写个简短的 介绍,希望能对这些朋友有点帮...
  • delvertech
  • delvertech
  • 2010年08月05日 01:42
  • 99

硬盘主引导扇区详解

主引导扇区位于整个硬盘的0柱面0磁头1扇区,包括硬盘主引导记录MBR(Master Boot Record)和分区表DPT(Disk Partition Table)。主引导扇区有512个字节。...
  • welldoneyb
  • welldoneyb
  • 2010年10月28日 11:04
  • 561

主引导扇区解析

转 分类: 服务器与存储     最近排查一个USB相关的故障,由于信息安全就不多说工作上的事情了,顺路学习了MBR的相关知识,在网上找了一些资料,现在把学习心得写下来,抛砖引...
  • u013110986
  • u013110986
  • 2016年05月20日 14:18
  • 136

编写主引导扇区代码

一、 读取的主引导扇区数据有512字节,ROM-BIOS程序将它加载到逻辑地址0x0000:0x7c00处。 一个有效的主引导扇区,最后两个字节应当是 0x55 和 0xAA。 二、注释...
  • qq_20480611
  • qq_20480611
  • 2015年08月06日 20:41
  • 728

操作系统1——引导扇区的理解

在操作系统这个方面,我记得自己经常听到主引导记录这个名词,但是对于它的理解并不深,只知道它在系统加载的时候很重要。现在我想自己写一个操作系统,但是想到第一步该怎么做呢?书上说是用汇编写引导程序。那么这...
  • Yelbosh
  • Yelbosh
  • 2012年11月17日 21:02
  • 1199

修复主引导扇区(windows、linux)

1、Win98引导盘 fdisk /mbr 2、Win2000 或 WinXP 引导光盘 用光盘引导,按R进入修复界面 选择控制台 进入控制台 用 help 查看支技的命令 用 FixMBR 命令可以...
  • kl222
  • kl222
  • 2007年04月06日 14:32
  • 6272

编写主引导扇区

在看《x86汇编语言从实模式到保护模式》这本书时,因为我是用fedora进行学习的,所以书上的很多工具是用不了的,只能用另外的方法来创建硬盘了: nasm mbr.asmqemu-img cr...
  • wrx1721267632
  • wrx1721267632
  • 2016年07月17日 11:24
  • 309

掀起硬盘主引导扇区的神秘面纱

       硬盘主引导扇区是一个敏感的区域, 它的安全与否直接决定硬盘是否能够正常使用。 深入认识和灵活使用硬盘主引导扇区将有助于你的系统维护和许多特殊工作完成。一、与DOS 引导扇区的区别  对于...
  • w9521423
  • w9521423
  • 2006年09月07日 18:14
  • 705

主引导扇区

引导扇区程序是位于启动盘最前面的一个扇区中的一段小程序,其大小不超过512字节即一个扇区的长度,也称之为引导记录。   引导记录负责从PCBIOS的启动代码中接管PC的控制权,为加载特定的操作系...
  • KUXINR
  • KUXINR
  • 2013年01月06日 11:56
  • 303

笔记3 引导扇区的格式

引导扇区通常指设备的第一个扇区,用于加载并转让处理器控制权给操作系统。引导扇区的大小为512字节。 计算机启动的时候,会从最初一个扇区读取设备,然后检查这个扇区的最后两个字节,即第511和512字节...
  • lookerson
  • lookerson
  • 2014年09月01日 23:00
  • 723
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:主引导扇区释疑
举报原因:
原因补充:

(最多只允许输入30个字)