主引导记录(MBR)分析
来源:互联网 发布:java监控系统 编辑:程序博客网 时间:2024/06/05 02:54
主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。详情:http://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BC%95%E5%AF%BC%E8%AE%B0%E5%BD%95
首先使用shell如何查看MBR信息:
1 #使用dd导出MBR到mbr.bin文件2 dd if=/dev/sda of=mbr.bin bs=512 count=1 3 #使用dd导出MBR并且使用xxd显示4 dd if=/dev/sda bs=512 count=1 | xxd5 #使用dd导出MBR并且使用xxd显示分区信息6 dd if=/dev/sda bs=512 count=1 | xxd -s 446
虚拟机上的使用实例:
1 #取得sda中的MBR中的分区信息,得出2个分区,第一个分区为活动分区(可以引导系统) 2 #第一个分区信息存储在mbr的0x01be偏移 3 #最后一个分区结束在mbr的0x01fe偏移 4 #至于16个字节的具体含义,就参见下文 5 [root@localhost ~]# dd if=/dev/sda bs=512 count=1 |xxd -s 446 -c 16 -g 1 # dd if=/dev/sda bs=512 count=1 |xxd -s 0x01be -c 16 -g 1 6 00001be: 80 20 21 00 83 dd 1e 3f 00 08 00 00 00 a0 0f 00 . !....?........ 7 00001ce: 00 dd 1f 3f 8e fe ff ff 00 a8 0f 00 00 58 b0 03 ...?.........X.. 8 00001de: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 9 00001ee: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................10 1+0 records in11 1+0 records out12 512 bytes (512 B) copied, 0.000361566 s, 1.4 MB/s13 00001fe: 55 aa U.
上面只能表示4个主分区,不能表示扩展分区。扩展分区和主分区的具体存储如下图:
以下内容从维基百科上摘录,整个MBR分为下面三部分。
启动代码
主引导记录最开头是第一阶段引导代码。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后将控制权交给硬盘上的引导程序(如GNU GRUB)。MBR是由分区程序(如Fdisk)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而能够实现多系统引导。
硬盘分区表
硬盘分区表占据主引导扇区的64个字节(偏移01BEH--偏移01FDH),可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节。具体每个字节的定义可以参见硬盘分区结构信息。下面是一个例子:
如果某一分区在硬盘分区表的信息如下
- 80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00
则我们可以看到,最前面的"80"是一个分区的激活标志,表示系统可引导;"01 01 00"表示分区开始的磁头号为01,开始的扇区号为01,开始的柱面号为00;"0B"表示分区的系统类型是FAT32,其他比较常用的有04(FAT16)、07(NTFS);"FE BF FC"表示分区结束的磁头号为254,分区结束的扇区号为63、分区结束的柱面号为764;"3F 00 00 00"表示首扇区的相对扇区号为63;"7E 86 BB 00"表示总扇区数为12287662。
对于现代大于8.4G的硬盘,CHS已经无法表示, BIOS使用LBA模式,对于超出的部分,CHS值通常设为 FEFFFF, 并加以忽略,直接使用08-0f的4字节相对值,再进行内部转换.
其它数值没有意义01H1分区起始磁头号(HEAD),用到全部8位02H2分区起始扇区号(SECTOR),占据02H的位0-5;
该分区的起始磁柱号(CYLINDER),占据
02H的位6-7和03H的全部8位04H1文件系统标志位05H1分区结束磁头号(HEAD),用到全部8位06H2分区结束扇区号(SECTOR),占据06H的位0-5;
该分区的起始磁柱号(CYLINDER),占据
06H的位6-7和07H的全部8位08H4分区起始相对扇区号0CH4分区总的扇区数
结束标志字
结束标志字55,AA(偏移1FEH-偏移1FFH)是主引导扇区的最后两个字节,是检验主引导记录是否有效的标志。
未完成!!!
- 主引导记录(MBR)分析
- 主引导记录 MBR
- MBR 主引导记录
- 磁盘主引导记录(MBR)详解
- 主引导记录(MBR)信息分析与获取
- 主引导记录(MBR)的反汇编分析
- 主引导记录MBR详解
- 恢复Windows的主引导记录(MBR)
- 硬盘主引导记录,分区引导记录(MBR,PBR)
- 硬盘主引导记录(MBR)及其结构
- 硬盘主引导记录(MBR)及其结构
- 硬盘主引导记录(MBR)及其结构
- 硬盘主引导记录(MBR)及其结构
- 硬盘主引导记录(MBR)及其结构
- 硬盘主引导记录(MBR)及其结构
- 硬盘主引导记录(MBR)及其结构
- 硬盘主引导记录(MBR)及其结构
- 主引导扇区代码(MBR)分析(转)
- mount的api使用笔记
- write error:file too large!!!
- c调用Api设置linux时间
- 一些自用的c函数
- c通过system取得分区信息
- 主引导记录(MBR)分析
- 开发板上挂载NTFS分区
- 给定一个硬盘标识,umout掉所有相关挂载
- linux读取硬盘指定扇区
- strtok_r函数学习
- 【转】收藏:shell目录管理
- 四个预编译宏:__FILE__,__LINE__,__DATE__,__TIME__
- 【转】linux监控程序-程序自动重启方法
- 使用NDK开发SQLite3