优盘上的数据按照其不同的特点和作用大致可分为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. 《Programming WPF》翻译 第7章 6.视频和3-D

    原文:<Programming WPF>翻译 第7章 6.视频和3-D 虽然详细地讨论视频和3-D超越了这本书的范围,但是获得这些特征的支持是值得的. 视频由MediaElement类型支 ...

  2. C语言---类型转换

    itoa 功 能:把一整数转换为字符串 用 法:char *itoa(int value, char *string, int radix); 详细解释:itoa是英文integer to array ...

  3. 【转】repo sync同步Android 源代码下载到99%出错

    原文网址:http://blog.csdn.net/mr_president/article/details/7693707 根据Google官网上的方法在我们实验室搭建了一个本地的Android代码 ...

  4. Using HTML5 audio and video

    From:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_HTML5_audio_and_video Using HTML5 ...

  5. Hdu3436-Queue-jumpers(伸展树)

    Description Ponyo and Garfield are waiting outside the box-office for their favorite movie. Because ...

  6. sudo nopasswd

    preface,不问头条,但汝读荐,诚意满满的!

  7. STL容器是否是线程安全的

    转载http://blog.csdn.net/zdl1016/article/details/5941330 STL的线程安全. 说一些关于stl容器的线程安全相关的话题. 一般说来,stl对于多线程 ...

  8. 减少GC开销的5个编码技巧

    在这篇文章中,我们来了解一下让代码变得高效的五种技巧,这些技巧可以使我们的垃圾收集器(GC)在分配内存以及释放内存上面,占用更少的CPU时间,减少GC的开销.当内存被回收的时候,GC处理很长时间经常会 ...

  9. 《Java程序员面试笔试宝典》之Java变量命名有哪些规则

    在Java语言中,变量名.函数名.数组名统称为标识符,Java语言规定标识符只能由字母(a~z,A~Z).数字(0~9).下划线(_)和$组成,并且标识符的第一个字符必须是字母.下划线或$.此外,标识 ...

  10. ubuntu下php安装xdebug

    1.安装  sudo apt-get install php5-xdebug 2.配置  修改 php .ini 路径: /etc/php5/apache2/php.ini (这里可能有不同,不同的u ...