一直想弄清楚MBR存放的是什么东西,今天仔细研究了下,查了不少资料,小总结一下:
#dd if=/dev/sda of=mbrtest bs=512 count=1
#od -x mbrtest
我电脑上输出的最后几行是:
0000660   0000 0000 0000 0000 ebb0 f0b1 0000 0100
0000700   0001 fe07  ffff    003f 0000 1481 012a 0000
0000720   ffc1   fe0f   ffff   14c0 012a d001 0826 0000
0000740   0000 0000 0000 0000 0000 0000 0000 0000
0000760   0000 0000 0000 0000 0000 0000 0000 aa55
0001000
注意这个表看的时候要把每一组两个字节调换位置来看,如aa55在硬盘上存储的实际是
55aa了,具体是little-endian的原因,这里就不多探究了。
下面是一些分析:
1、输出最前面的一列是8进制的位偏移,所以每行有16个字节了。
2、mbr总共512字节,前446个字节是主引导记录,是bios加电自检后要运行的代码
3、从第447个字节开始后的64个字节,每16个字节为一组,是硬盘分区表,就是
      红色的部分了。
4、看到0xaa55了吗?这就是Boot Sector结束标志。

5、关于硬盘分区表(DPT,Disk Partion Table)各个字节比较详细一点的说明如下:
     0 Activeflag.活动标志.若为0x80H,则表示该分区为活动分区.若为0x00H,则表示该分区为非活动分区.   
     1,2,3 该分区的起始磁头号,扇区号,柱面号:
              磁头号 -- 1字节, 扇区号 -- 2字节低6位,柱面号 -- 2字节高2位 + 3字节   
    4 分区文件系统标志:  分区未用: 0x00H.   扩展分区: 0x05H, 0x0FH.  
             FAT16分区: 0x06H.  FAT32分区: 0x0BH, 0x1BH, 0x0CH, 0x1CH.  
NTFS分区: 0x07H.   
    5,6,7 该分区的结束磁头号,扇区号,柱面号,含义同上.   
   8,9,10,11 逻辑起始扇区号。表示分区起点之前已用了的扇区数.   
    12,13,14,15 该分区所占用的扇区数
6、根据第五点分析我的硬盘,(1)有两个主分区 (2) 第1个主分区前几个字节是
      00  010100 07 feffff 0000003f 012a1481(表示数值的部分调整了顺序)
      00因此该分区不是活动分区;010100表示该分区从硬盘的0柱面1磁头1扇区开始;
      07代表该分区文件系统是ntfs;feffff其实是因为现在的硬盘超出了传统的
      表示范围用最大值表示;0000003f,开始之前已经用的扇区数为什么是0x3f呢,
      这个我也没搞懂,后面那个16进制的扇区数计算后大约9.35GB,与我的C盘大小
      基本吻合。后面的照此分析了。
7、注意到一点就是没有activeflag为80的分区,我觉得原因是双系统装grub时覆盖了
     原系统的mbr,grub把活动分区划到了某个逻辑分区,系统启动查找分区表链时找到该分区。

转载于:https://www.cnblogs.com/liujiahi/archive/2010/11/27/2196418.html

linux下查看MBR实例分析相关推荐

  1. linux下查看cpu负载及分析

    linux下查看cpu负载有两个命令可以看:uptime 和 top. 其中load average的三个值分别表示1分钟.5分钟.15分钟的CPU负载情况,是运维需要经常关注的 那么怎么确定这些值展 ...

  2. linux下查看所有用户及所有用户组

    linux下查看所有用户及所有用户组 groups 查看当前登录用户的组内成员 groups xxx查看xxx用户所在的组,以及组内成员 whoami 查看当前登录用户名 /etc/group文件包含 ...

  3. linux抓包库libpcap,linux下libpcap抓包分析.doc

    linux下libpcap抓包分析 HYPERLINK "/Seiyagoo/archive/2012/04/28/2475618.html" linux下libpcap抓包分析 ...

  4. 如何查看linux的分区类型,linux 下查看硬盘分区类型

    可以用  df 这个命令 具体 要 man df  仔细看看 实例 [root@localhost mnt]# df -Th 文件系统    类型      容量  已用  可用 已用% 挂载点 /d ...

  5. Linux下 启动SELinux命令,Linux下查看SELinux状态和关闭SELinux的方法命令是什么

    Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.对于SELinux状态可能很多用户不知道怎么设置,这篇文章主要介绍了Linux下查看SELinux状态和关闭SELi ...

  6. Linux下查看磁盘挂载的三种方法

    Linux下查看磁盘挂载的三种方法 2009-06-05 23:17 好久没有更新日志了,呵呵.不是没有要写的东东.实在抽不出时间来写,要准备公司的考试呢,C++考试.已经有七个月没有写C++代码了, ...

  7. linux 查询内存和核心数,Linux下查看操作系统信息、内存情况及cpu信息:cpu个数、核心数、线程数...

    1.查看物理CPU的个数 [root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc ...

  8. linux查看某进程的连接,linux下查看指定进程的所有连接信息(转)

    定位某个进程的网络故障时经常需要用到的一个功能就是查找所有连接的信息.通常查找某个端口的连接信息使用 ss 或者 netstat 可以轻松拿到,如果是主动与别的机器建立的连接信息则可以通过 lsof ...

  9. 查看linux进程的设备io,Linux下查看进程IO工具iopp

    Linux下的IO检测工具最常用的是iostat,不过iostat只能查看到总的IO情况.如果要细看具体那一个程序点用的IO较高,可以使用iotop .不过iotop对内核版本和Python版本有要求 ...

最新文章

  1. 中科元素精准饮食治未病干预 李喜贵:签约华佗国药体系建立
  2. java 正则表达式 替换括号,Java正则表达式:如何替换方括号内的所有字符?
  3. linux用vsc写c语言,vscode写c语言(windows)
  4. 【java机器学习】svm入门十讲
  5. MyEclipse Web开发教程:XML XML架构(一)
  6. qt的qfiledialog怎么判断打开的是不是一张图片_花瓣网画板图片一键导出 设计师速来围观...
  7. linux下mysql将表导出_linux下mysql导出数据表命令
  8. PDF页面旋转怎么操作
  9. Photoshop实用的快捷键大全
  10. OkHttp Events事件
  11. 什么是MRAM(不挥发性磁性随机存储器)
  12. 编译原理陈火旺第三版第六章课后题答案
  13. 【渝粤教育】电大中专消费者行为学30分钟交卷(1)作业 题库
  14. 总结java重载和重写的区别
  15. 关系数据理论--规范化
  16. 虚拟服务器主机涨价好多,虚拟主机涨钱了吗
  17. 小白入门炒股票关键词解释及细节注意事项
  18. CSS3 - footer 固定在底部(无论页面多高始终在底部)
  19. css 的缩写形式,CSS样式中的几种缩写方式
  20. 软件产品案例分析--K米

热门文章

  1. 软件测试你会涉及的模块
  2. 一个划时代的病毒“鬼影”袭击WinXP系统(重装无法清除)如何防范查杀?
  3. ebay注册流程_新手卖家如何注册ebay账户?
  4. vue.js学习笔记:audio标签实现钢琴弹奏
  5. 目前最稳定的Win10 21H2正式版系统 V2022
  6. Markdown 编辑器 Mark Text
  7. ownhere android 4.0 rom 三星i9100刷机,三星i9100g的4.1和4.2 rom刷机包(线刷和卡刷包)...
  8. SketchUp学习笔记
  9. C语言中猜数大小的实验报告,猜数字游戏实验报告
  10. 执法记录仪提示内存不足时怎么办?快速解决方法