- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
U盘文件系统
优盘上的数据按照其不同的特点和作用大致可分为 5 部分:MBR 区、DBR 区、FAT 区、FDT区和 DATA区。
主引导记录(MBR) 绝对扇区号为:MBR_LBA=0是主引导记录,等同位于硬盘的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[446];?? //ofs:0.启动代码。“FA 33 C0 8E D0 BC…”. PartitionTable PT[4];?? //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 : 6; //扇区。 unsigned CyH2 : 2; //柱面(高两位)。 uchar CyL8; //柱面(低八位)。?ulong Cylinder() {return (uint(CyH2)*256+CyL8);} //返回柱面值? void SetCylinder(uint Cylinder) //设置柱面值 { CyH2=(Cylinder8)0x3; CyL8=(Cylinder0xff);? }? }; 例: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)、06(bigFAT16)、01(FAT12)、07(NTFS);??
“FE BF FC”表示分区结束的磁头号为 254,分区结束的扇区号为 63、分区结束的柱面号为 764;??
?“3F 00 00 00”表示首扇区的相对扇区号为 63;
?“7E 86 BB 00”表示总扇区数为
系统引导记录(DBR) 绝对扇区号为:DBR_LBA=MBR.PT[0].RelativeSectors 处是 DBR,等同位于硬盘的 0 磁道 1柱面 1 扇区(512 字节),是操作系统可以直接访问的第一个扇区,它包括一个引导程序和一个被称为 BPB(Bios Parameter Block)的本分区参数记录表。引导程序的主要任务是当 MBR将系统控制权交给它时,判断本分区跟目录前两个文件是不是操作系统的引导文件(以 DOS为例,即是 Io.sys和 Msdos.sys)。如果确定存在,就把其读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数,分配单元的大小等重要参数。?? DBR定义如下: typedef struct { uchar bJmpBoot[3];????? //ofs:0.典型的如:0xEB,0x3E,0x90。 char? bOEMName[8];????? //ofs:3.典型的如:“MSWIN4.1”。 uint? BPB_wBytesPerSec;?? //ofs:11.每扇区字节数。 uchar BPB_bSecPerClus;??? //ofs:13.每簇扇区数。 ui
您可能关注的文档
- UML 9787030444677 邹盛荣 06 UML的进一步讨论 ---2015.09指导.ppt
- UML 类图和对象图指导.ppt
- UML讲义7-活动图指导.ppt
- Unicode字符编码表的认识.doc
- unit 2 General and specific words指导.ppt
- Unit 2 What is the matter2指导.ppt
- unit 5- 部分练习答案_翻译的认识.doc
- Unit 6 The truth can be stranger than fiction的认识.doc
- unit07动态分配内存空间指导.ppt
- unit10第十章 信息管理系统指导.ppt
- 2024年智能眼镜行业分析报告:AI引领应用侧创新,智能眼镜迎新机遇.pdf
- 2024年丙纶涤纶短纤纤维制品企业组织架构部门职能和业务流程.docx
- 2024年山东药玻分析报告:成本下降+中硼硅高景气,公司价值逐步回归.pdf
- 2024年新大陆分析报告:第三方支付盈利改善,海外战略持续推进.pdf
- 北京康辰药业股份有限公司募集资金管理办法(2024年9月修订).PDF
- 2024年软磁铁氧体磁粉公司发展战略规划.docx
- 2024年恺英网络分析报告:深耕游戏细分领域,构建海外发行网络.pdf
- 2024年全球银行业展望报告(第4季度):全面深化改革与银行业国际化.pdf
- 2024年四轮全球科技股周期与A股映射.pdf
- 鑫科材料应收账款管理制度.PDF
文档评论(0)