优盘上的数据按照其不同的特点和作用大致可分为5 部分:MBR 区、DBR 区、FAT 区、FDT区和DATA 区。

  • 主引导记录(MBR)

绝对扇区号为:MBR_LBA=0x00000000 处是主引导记录,等同位于硬盘的0 磁道0 柱面1 扇区。
在总共512 字节的主引导扇区中,MBR 只占用了其中的446 个字节(ofs:0 - ofs:1BDH),另外的64 个字节(ofs:1BEH - ofs:1FDH)交给了DPT(Disk Partition Table 盘分区表),最后两个字节“55 AA”(ofs:1FEH - ofs:1FFH)是分区的结束标志。
  MBR 定义如下:

typedef struct {
    uchar bootcode[];    //ofs:0.启动代码。“FA 33 C0 8E D0 BC…”.
    PartitionTable PT[];   //ofs:446.分区表length=4*16.
    uint EndingFlag;        //ofs:510.结束标识:0xAA55.
}MBR_tag;

  Bootcode[446]启动代码一般是固定的,用于引导 x86,不用管。
  分区表项的定义如下:

typedef struct {
    uchar BootFlag;            //启动标志
    CHS StartCHS;              //分区开始的柱面、磁头、扇区
    uchar SystemID;            //分区类型
    CHS EndCHS;                //分区结束的柱面、磁头、扇区
    ulong RelativeSectors;     //分区起始扇区数,指分区相对于记录该分区的分区表的扇区位置之差 (该分区表:LBA=0x0)。
    ulong TotalSectors;        //分区总扇区数
}PartitionTable;

  其中 CHS 为一个柱面、磁头、扇区的结构,定义如下:

struct CHS {
    uchar Head;                //磁头。
    unsigned Sector : ;    //扇区。
    unsigned CyH2 : ;        //柱面(高两位)。
    uchar CyL8;                //柱面(低八位)。
    +CyL8);} //返回柱面值

    void SetCylinder(uint Cylinder) //设置柱面值
    {
        CyH2=(Cylinder>>)&0x3; CyL8=(Cylinder&0xff);
    }
};

例:80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00

  在这里我们可以看到:

优盘文件系统(FOR C)的更多相关文章

  1. 【从零开始学习Hadoop】--2.HDFS分布式文件系统

    1. 文件系统从头说2. Hadoop的文件系统3. 如何将文件复制到HDFS3.1 目录和文件结构3.2 FileCopy.java文件的源代码3.3 编译3.4打包3.5 运行3.6 检查结果 1 ...

  2. 一步一步制作yaffs/yaffs2根文件系统(一)---储备好基础知识再打

    开发环境:Ubuntu 12.04 开发板:mini2440  256M NandFlash   64M SDRAM 交叉编译器:arm-linux-gcc 4.4.3点此可下载 BusyBox版本: ...

  3. 一键GHOST优盘版安装XP/win7系统

    系统的安装方法有各种各样,一键GHOST优盘版也是其中的一种系统安装方法,也是俗称的U盘系统安装.下面豆豆来详细介绍下使用一键GHOST优盘版系统安装方法. 一.安装: 所谓"优盘" ...

  4. 树莓派无显示器、无网线,优盘(U盘)启动,远程桌面

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:树莓派无显示器.无网线,优盘(U盘)启动,远程桌面     本文地址:http://techi ...

  5. ubuntn系统下将文件拷贝到优盘中及挂载概念理解

    参考资料:http://jingyan.baidu.com/article/7082dc1c76f178e40a89bdd3.html: http://bbs.csdn.net/topics/3801 ...

  6. 速度竟差9倍!6款32GB USB3.0优盘横评

    速度竟差9倍!6款32GB USB3.0优盘横评 2014-08-22 05:04:00  [  中关村在线 原创  ]   作者: 蒋丽 |  责编:孙玉亮 收藏文章 分页阅读 分享到 评论(90) ...

  7. .NET Core的文件系统[5]:扩展文件系统构建一个简易版“云盘”

    FileProvider构建了一个抽象文件系统,作为它的两个具体实现,PhysicalFileProvider和EmbeddedFileProvider则分别为我们构建了一个物理文件系统和程序集内嵌文 ...

  8. Linux学习之探索文件系统

    Linux,一起学习进步-    ls With it, we can see directory contents and determine a variety of important file ...

  9. Linux之搭建自己的根文件系统

    Hi!大家好,我是CrazyCatJack.又和大家见面了.今天给大家带来的是构建Linux下的根文件系统.希望大家看过之后都能构建出符合自己需求的根文件系统^_^ 1.内容概述 1.构造过程 今天给 ...

随机推荐

  1. POJ 2152 Fire(树形DP)

    题意: 思路:令F[i][j]表示 的最小费用.Best[i]表示以i为根节点的子树多有节点都找到负责消防站的最小费用. 好难的题... #include<algorithm> #incl ...

  2. 《Programming WPF》翻译 第9章 5.默认可视化

    原文:<Programming WPF>翻译 第9章 5.默认可视化 虽然为控件提供一个自定义外观的能力是有用的,开发者应该能够使用一个控件而不用必须提供自定义可视化.这个控件应该正好工作 ...

  3. 《Programming WPF》翻译 第7章 7.我们进行到哪里了?

    原文:<Programming WPF>翻译 第7章 7.我们进行到哪里了? WPF提供了一个范围的高质量生成和合成服务.一组形状元素支持各种的绘图基础.一些笔刷类型是可利用的,对于决定如 ...

  4. 2015第16周六学习java建议

    学习Java 建议: 尽量用 google 查找技术资料. 有问题在 stackoverflow 找找,大部分都已经有人回答. 多看官方的技术文档. ibm developerworkers 的文章质 ...

  5. Merge Sorted Array 解答

    Question Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array ...

  6. 【HDU1231】How Many Tables(并查集基础题)

    什么也不用说,并查集裸题,直接盲敲即可. #include <iostream> #include <cstring> #include <cstdlib> #in ...

  7. jdbc资料收集

    1.Hibernate史上最简单的Hibernate入门简介http://blog.csdn.net/doodoofish/article/details/43207/ jdbc不足 尽管JDBC在J ...

  8. 第02讲- Android开发环境

    第02讲Android开发环境 需要下载的软件: JDK(JavaDevelopment Kit) Eclipse AndroidSDK(SoftwareDevelopmentKit) ADT(And ...

  9. pyqt显示指定范围的数字

    # -*- coding: cp936 -*- # -*- coding: cp936 -*- import sys from PyQt4 import QtCore, QtGui   #导入模块 a ...

  10. mycat(4)

    2016二月 24 置原 配置MyCat-eye 接下来在开始使用MyCat之前,我们先把监控平台部署好. 下载MyCat-eye项目,mvn打包. 之后得到类似于Mycat-web-1.0-SNAP ...