分享
分销 收藏 举报 申诉 / 76
播放页_导航下方通栏广告

类型FAT文件系统与文件装载.doc

  • 上传人:精****
  • 文档编号:3133016
  • 上传时间:2024-06-19
  • 格式:DOC
  • 页数:76
  • 大小:2.59MB
  • 下载积分:18 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    FAT 文件系统 文件 装载
    资源描述:
    FAT文件系统与文件装载 在建立自己的文件系统之前,为了进行操作系统装载程序的实验,我们选择使用DOS简单的FAT12文件系统,作为存储数据和文件的组织方式。 1 文件系统 文件系统是操作系统在(磁/U/光)盘上组织文件的方法和存储数据的结构;也指用于存储文件的磁盘分区、或文件系统的种类;还是操作系统中负责管理和存储文件信息的软件模块(文件管理系统)的简称。文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户创建文件,存入、读出、修改、转储文件,控制对文件的访问,当用户不再使用时撤销和删除文件等。 1.1 操作系统与文件系统 每种操作系统都有自己的文件系统,而且往往一种操作系统有多种文件系统类型,并且每种类型又有若干具体格式和多个升级版本。有的操作系统还支持多种文件系统类型,如Windows支持NTFS和FAT,Linux通过VFS(Virtual File Systems,虚拟文件系统)机制支持多种文件系统,如ext2、ext3、ReiserFS、Minix、FAT32、NTFS等。 DOS操作系统的文件系统为FAT(File Allocation Table,文件分配表),包括FAT12、FAT16、FAT32和exFAT等多种具体格式,老式Windows是DOS的外壳,当然也支持FAT文件系统。 Windows NT系列(包括NT/2000/XP/Vista/7/8)的文件系统为NTFS(New Technology File System,新技术文件系统),版本有v1.0(NT 3.1)、v1.1(NT 3.5)、v1.2(NT 3.51和NT 4.0)、v3.0(NTFS 5.0/Win2000)、v3.1(NTFS 5.1/WinXP、NTFS 5.2/WinServer2003、NTFS 6.0/Vista、NTFS 6.1/WinServer2008和Win7)。Windows NT系列操作系统也支持老式的FAT文件系统。 Linux最初使用的是Minix文件系统。为了突破Minix文件系统的局限,Rémy Card于1992年4月在传统的UFS(Unix File System,Unix文件系统)的启发下设计出了ext(extended file system,扩展文件系统)。后来Rémy Card于1993年1月又推出了改进的ext2(second extended filesystem),成为Linux的标准文件系统。Stephen Tweedie设计的带有日志功能的ext3(third extended filesystem)于2001年11月被引入Linux 2.4.15内核,现在也被许多Linux发行版广泛使用。2006年10月10日西奥多·周(Theodore Ts'o)和Mingming Cao(曹明明?)等人又开发出了ext4(fourth extended filesystem),引进了盘区(extent)文件储存方式,以取代ext2/3使用的块映射(block mapping)方式,提高了大型文件的操作效率,2008年10月21日推出的Linux 2.6.28开始提供对ext4文件系统的支持。ReiserFS是Linux的另一种日志型文件系统格式,由Hans Reiser及其公司Namesys于1997年7月23日推出,Linux内核从2.4.1版本(2001年1月30日)开始支持ReiserFS。 1.2 磁盘分区 磁盘分区(disk partitioning)将硬盘分割成若干逻辑部分(分区,partition),可安装多个操作系统和使用不同的文件系统。在DOS和Windows中,硬盘的分区对应于文件系统中不同的卷(volume),如C:、D:、E:等。由于软盘的容量小,没有分区结构。 1.引导扇区的构成 引导扇区(Boot Sector)是磁盘的第一个物理扇区,由主引导记录(MBR = Master Boot Record)、磁盘分区表(DPT = Disk Partition Table)和引导记录标识符(BRID = Boot Record IDentifier)三部分组成。 0 1BD 主引导记录 MBR(446B) 1BE 1CD 分区项1(16B) DPT(64B) 1CE 1DD 分区项2(16B) 1DE 1ED 分区项3(16B) 1EE 1FD 分区项4(16B) 1FE 1FF 55 AA BRID(2B) 引导扇区结构图 2.分区表项的结构 DPT含4个分区表项,每一项占16B,参见下表: 分区表项的字段结构 偏移量 长度 含义(值) 0x00 1B 分区是否激活(0x80或0) 0x01 1B 开始磁头号 0x02 2B 开始扇区号(低字节的低6位)和柱面号(其余10位,其中低位字节的高2位为其第9、10位) 0x04 1B 分区类型(如:0x06/0x0E = FAT16、0x0B/0x0C = FAT32、0x07 = NTFS、0x05/0x0F = 扩展、0x83 = Linux) 0x05 1B 结束磁头号 0x06 2B 结束扇区号(低字节的低6位)和柱面号(其余10位,其中低位字节的高2位为其第9、10位) 0x08 4B 分区起始地址(相对扇区数) 0x0C 4B 分区大小 (总扇区数) 3.分区类型 PC的分区类型标志 数值 开发者 分区类型 数值 开发者 分区类型 0x00 IBM 空分区 3C PowerQuest PqRP(PartitionMagic) 0x01 微软 FAT12 64 Novell NetWare File System 286 0x02 微软 Xenix root 65 Novell NetWare File System 386 0x03 微软 Xenix user 78 Geurt Vos XOSL引导装入文件系统 0x04 微软 FAT16 <32MB 80 Andrew Tanenbaum 老Minix文件系统 0x05 IBM 扩展分区(CHS) 81 Minix文件系统 0x06 Compaq FAT16B 82 GNU/Sun Linux交换空间/Solaris 0x07 微软 HPFS/NTFS/exFAT 83 GNU/Linux Linux文件系统 0x08 IBM Aix 84 微软 休眠 0x09 IBM Aix bootable 85 GNU/Linux Linux扩展 0x0A 微软&IBM OS/2 Boot Manager 86 微软 Legacy FT FAT16 0x0B 微软 FAT32(CHS) 87 微软 Legacy FT NTFS 0x0C 微软 FAT32(LBA) 88 GNU/Linux Linux无格式文本 0x0E 微软 FAT16(LBA) 89 GNU/Linux Linux LVM 0x0F 微软 扩展分区(LBA) 8B 微软 Legacy FT FAT32 0x11 微软 隐藏FAT12 8C 微软 Legacy FT FAT32 with LBA 0x12 Compaq 康柏诊断(FAT) A0 HP HP膝上型电脑诊断分区 0x14 微软 隐藏FAT16 <32MB A5 FreeBSD BSD slice 0x17 微软 隐藏HPFS/NTFS DE Dell Dell诊断分区 0x1B 微软 隐藏FAT32 EB Be公司 BFS(BeOS或Haiku) 0x1C 微软 隐藏FAT32(LBA) EE 微软 EFI保护分区 0x1D 微软 隐藏FAT16(LBA) EF Intel EFI系统分区(可为FAT文件系统) 0x20 微软 Windows Mobile update XIP FB VMware VMware VMFS 0x23 微软 Windows Mobile boot XIP FC VMware VMware VMKCORE 0x25 微软 Windows Mobile IMGFS FD GNU/Linux Linux RAID auto 0x27 微软 Windows恢复分区(隐藏NTFS) FE IBM IBM IML分区 其中: l Xenix是微软公司于1980年为微机推出的一种Unix系统(最后的版本是1989年推出的2.3.4),1987年转让给了SCO公司,后者在其基础上推出了SCO Unix(即现在的SCO OpenServer)。 l HPFS(High Performance File System,高性能文件系统)是微软公司于1989年为IBM的操作系统OS/2 1.2推出的一种文件系统,Windows NT 3.1~3.51支持,但是从Windows NT 4.0后不再支持。 l AIX(Advanced Interactive Executive,高级交互执行体/先进交互执行程序)是IBM于1986年推出的一种Unix系统,现在最新的版本是2010年9月推出的7.1。 l CHS(Cylinder/Head/Sector,柱面/磁头/扇区)磁盘的一种传统寻址方式。 l LBA(Logical Block Addressing,逻辑块寻址)磁盘的一种线性寻址方式,有22b(ATA,1986)、28b(ATA-1,1994)和48b(ATA-6,2003)三种版本。1996年以后推出的硬盘一般都采用了LBA。下面是LBA与CHS的转换公式: LBA = ((C*HPC)+H)*SPT+S-1 C = LBA/(SPT*HPC) H = (LBA/SPT) % HPC S = (LBA % SPT)+1 其中: n HPC = Heads Per Cylinder,柱面磁头数(对28位的LBA一般为16) n SPT = Sectors Per Track,磁道扇区数(对28位的LBA一般为63) l OS/2(Operating System/2,操作系统/第二代)微软与IBM于1987年为IBM的第二代个人计算机系统PS/2(Personal System/2)开发的一种操作系统,最后的版本为2001年12月推出的4.52。 4.磁盘寻址方式 用这种CHS(Cylinder柱面/Head磁头/Sector扇区)方式表示的分区容量是有限的,因为柱面和磁头从0开始编号,扇区 从1开始编号,所以最多只能表示1024个柱面×63个扇区×256个磁头×512B = 8 455 716 864B(8.4GB[实际上应该是7.8GB左右])。对容量超过8.4GB的分区,分区结束的CHS一般用其最大值FE FF FF填充,有时也用柱面与1024的模来填充。 用4B存储的分区大小,最大为232*512B = 2 147 483 648KB = 2048GB = 2TB。即使使用NTFS文件系统,也不能创建大于2TB的分区,但可以使用动态卷或GPT来创建超过2TB的NTFS卷。 由于分区不允许跨柱面(分区粒度,分区的扇区总数加上与前一分区之间的保留扇区数必须是柱面容量[= 磁头数*每个柱面的扇区数]的整数倍),所以用操作系统进行分区时所得到的分区容量往往不是我们所指定的整数值。 为了增加容量,现代硬盘一般使用等密度结构(即外圈磁道的扇区数比内圈磁道的多),大容量磁盘一般采用线性寻址(可突破CHS寻址方式下容量<8.4GB限制,硬盘控制器内部的地址翻译器可将老式的CHS参数转换成线性参数)。硬盘的扇区总数不一定是(所设)柱面容量的整数倍,所以磁盘的末尾处常会出现未被分配使用的剩余空间。 5.GPT GPT(GUID Partition Table,全局唯一标识符分区表)一种新的磁盘分区表标准,最初由Intel公司开发,2010年作为UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)规范的子集而推出,可突破传统MBR的2TB限制,最大可支持9.4ZB的硬盘和分区。 字节的十进制/二进制次方单位 缩写 英文名 中文名 次方 KB kilobyte / kibibyte 千字节 103 / 210 MB megabyte / mebibyte 兆字节 106 / 220 GB gigabyte / gibibyte 吉字节 109 / 230 TB terabyte / tebibyte 太字节 1012 / 240 PB petabyte / pebibyte 拍字节 1015 / 250 EB exabyte / exbibyte 艾字节 1018 / 260 ZB zettabyte / zebibyte 泽字节 1021 / 270 YB yottabyte / yobibyte 尧字节 1024 / 280 GPT方案 (LBA的大小为512B,LBA 0=MBR,LBA -1为磁盘的最后一个512B大小的块) 支持GPT的操作系统平台 类别 OS 起始版本 平台 类Unix FreeBSD 7.0 x86/x64 Linux 2.5.8 Mac OS X 10.4.0 Windows Vista SP1 x64 Server 2008 7 1.2 扩展分区与逻辑驱动器 在主引导扇区的DPT中,最多可以定义4个(基本)分区(卷)。为了引入和管理更多的逻辑驱动器(分区/卷),微软定义了扩展分区(类型值一般为0x0F)。在Windows操作系统中,一般将主引导扇区里DPT的第一个表项作为磁盘的主(基本)分区,第二个表项作为扩展分区。 在一个扩展分区中,可包含多个逻辑驱动器。每个逻辑驱动器都有自己的引导扇区和引导记录,分别叫做扩展引导扇区和扩展引导记录(EBR = Extended Boot Record),逻辑驱动器还有自己的扩展分区表。在扩展分区表的4个分区表项中,第1个指向自己的引导扇区,第2个指向下一个逻辑驱动器的EBR,后两个分区表项没有使用。最后一个逻辑驱动器的第2个分区表项的值,必须全为0。 DOS/Windows硬盘的分区结构 1.3 FAT分区 FAT(File Allocation Table,文件分配表)是微软公司为其操作系统DOS和老式Windows所定义的一套文件系统,包括FAT12、FAT16、FAT32和exFAT等多种具体格式。 FAT12可支持的最大容量为32MB,用于早期的1.2MB/1.44MB软盘和小容量硬盘,现在已被淘汰。FAT16则可支持<4GB的盘,现在一般用于中小容量的U盘。FAT32虽然在理论上最多可以支持128TB的盘,但是由于目前只使用了大小为32位簇字段中的28位,所以允许的最大容量是8TB,但Windows 2000/XP最多只能格式化32GB的盘,如小容量硬盘和较大容量U盘。exFAT(也叫FAT64)支持现代的大容量硬盘、移动硬盘和固态盘,但出现的晚,支持的系统少,而且由于exTAT采用了与NTFS一样的分区类型值(7),造成了一些兼容性问题。 Windows NT系列操作系统,一般都采用性能更好的NTFS格式。NTFS支持的最大卷为264-1个簇(WinXP的为232-1簇),若采用默认/最大的簇大小4KB / 64KB,则最大卷为64ZB-4KB / 1YB-64KB(WinXP的为16TB-4KB / 256TB-64KB)。NTFS支持的最大文件的理论值为16EB-1KB,实现值为16TB-64KB。 不同版本FAT的比较 FAT 开发商 微软(Compaq) 全名 文件分配表 12位版 16位版 32位版 64位版 发布时间 1980年8月 1984年8月 1987年11月 1996年8月 2006年11月 OS版本 QDOS 0.11 MS DOS 3.0 Compaq DOS 3.31 Windows 95 OSR2 Windows Embedded CE 6.0 分区标识 0x01 0x04、0x0E 0x06 0x0B、0x0C 0x07 结构 FAT12 FAT16 FAT16B FAT32 exFAT 目录内容 表格 文件配置 链表 坏块 对含损坏磁区的簇加以标识 最大文件大小 32MB 32MB 2GB 4GB 64ZB(推荐512TB) 最大文件数量 4,077(212-21) 65,517(216-19) 65,517(216-19) 268,435,437(228-19) 每个目录2,796,202 最长文件名 8.3、长文件名(255个字符) 最大卷大小 32 MB(64KB簇时256MB) 32MB(64KB簇时256MB) 2 GB(64KB簇时4GB) 2TB(32KB簇时8TB) 64ZB(推荐512TB) 记录日期 创建、修改、访问 日期范围 1980年1月1日至2107年12月31日 日期分辨率 2 秒、10秒 属性 只读、隐藏、系统、卷标、子目录、归档 访问许可权 无 1.分区结构 下面以FAT16和FAT32为例,讨论FAT文件系统的基本内容。 FAT16分区结构 区域 扇区数 内容 说明 保留扇区 1 分区引导扇区 r-1 其余保留扇区 可选 FAT区 k FAT#1 主FAT k FAT#2 备份FAT 根目录区 m 根目录 固定大小 数据区 n 数据 FAT32分区结构 区域 扇区数 内容 说明 保留扇区 1 分区引导扇区 1 FS信息扇区 r-2 其余保留扇区 可选 FAT区 k FAT#1 主FAT k FAT#2 备份FAT 数据区 n 数据 根目录表一般位于其第1个簇 2.分区引导扇区 分区引导扇区也叫VBR(Volume Boot Record,卷引导记录)区或PBR(Partition Boot Record,分区引导记录)区,是分区的第一个扇区(一般是512B)。 FAT12/16分区引导扇区的结构 偏移 长度 内容 0x0000 3B 跳转指令 0x0003 8B OEM名串(厂商标志与操作系统版本,剩余字节用空格符填充) 如“MSDOS5.0”、“MSWIN4.1”、“NTFS ”、“EXFAT ”。 0x000B 25B BPB 0x0024 26B 扩展BPB 0x005A 448B 引导程序代码 0x01FE 2B 有效结束标志(55 AA) FAT32分区引导扇区的结构 偏移 长度 内容 0x0000 3B 跳转指令 0x0003 8B OEM名串(厂商标志与操作系统版本,剩余字节用空格符填充) 如“MSDOS5.0”、“MSWIN4.1”、“NTFS ”、“EXFAT ”。 0x000B 53B BPB 0x0040 26B 扩展BPB 0x005A 420B 引导程序代码 0x01FE 2B 有效结束标志(55 AA) 3.BPB与EPBP BPB(BIOS Parameter Block,BIOS参数块)是一种数据结构,用于描述数据存储卷(如硬盘的卷分区)的物理布局。EBPB(Extended BIOS Parameter Block,扩展BPB)是BPB的补充。 BPB结构(25B) 偏移 长度 内容 0x0B 2B 每扇区字节数(一般为512) 0x0D 1B 每簇扇区数 0x0E 2B 保留扇区数[含本扇区](≥1,FAT32一般为32) 0x10 1B FAT数(一般为2) 0x11 2B 最大根目录项数(FAT32必须为0) 0x13 2B 总扇区数(为0时使用偏移0x20处的4字节值)(<64K,容量<32MB) 0x15 1B 介质描述符(盘类型,高密度3.5寸软盘为0xF0、硬盘和U盘为0xF8) 0x16 2B FAT占扇区数(FAT32为0,参见偏移0x24) 0x18 2B 每道扇区数 0x1A 2B 磁头数 0x1C 4B 隐藏扇区数 0x20 4B 总扇区数(≥64K,容量≥32MB) FAT32的补充BPB结构(28B) 偏移 长度 内容 0x24 4B 每个FAT占用的扇区数 0x28 2B 镜像标志(位7为1时位0~3为活动FAT数-1、位7为0时运行的FAT被映射到所有的FAT、其余位保留) 0x2A 2B 文件系统版本(定义为0) 0x2C 4B 根目录首簇号(一般为2,即第一个簇) 0x30 2B FS信息扇区号(一般为1,即三个FAT32引导扇区的第二个) 0x32 2B 备份的三个FAT32引导扇区的首个扇区号(一般为6) 0x34 12B 保留(必须为0) EBPB结构(26B) FAT12/16偏移 FAT32偏移 长度 内容 0x24 0x40 1B 物理驱动器编号(可移动介质为0x00、硬盘为0x80) 0x25 0x41 1B 保留(一般为0) 0x26 0x42 1B 扩展引导标签(为0x29时表明下面有三项存在,为0x28时表明有下面只有序列号一项存在[EPBP的早期格式]) 0x27 0x43 4B 卷ID(序列号,在系统格式化分区时所产生的一个随机数) 0x2B 0x47 11B 卷标(剩余字节用空格符填充,如“NO NAME ”) 0x36 0x52 8B 文件系统类型(剩余字节用空格符填充,如“FAT16 ”) 4.FS信息扇区 FS(Free Space?,空闲空间)信息扇区(Information Sector)是FAT32引进的,用于加速获取空闲空间等操作。该扇区的位值由FAT32补充BPB结构中偏移0x30处的值决定,一般为1,即是三个FAT32引导扇区的第二个。 FAT32的FS信息扇区结构(512B) 偏移 长度 内容 0x000 4 签名标识(=RRaA) 0x004 480 保留(全=0) 0x1E4 4 签名标识(=rrAa) 0x1E8 4 卷中的空闲数据簇数 0x1EC 4 最近分配的数据簇数 0x1F0 12 保留(全=0) 0x1FC 4 签名标识(=0x00、0x00、0x55、0xAA) 2 FreeDOS与Bochs虚拟机的配置 为了使用FAT12文件系统,我们需要一个有现成DOS操作系统的虚拟机环境。为了同时也可以使用软盘映像来制作我们的操作系统,还需要支持双软盘映像的虚拟机。Virtual PC显然不能满足这些要求,而小巧的Bochs虚拟机则完全符合我们的需要。 2.1 DLX Linux Demo 如果大家在安装Bochs虚拟机时,选择了完全安装(包含DLX Linux Demo),则会自动生成dlxlinux子目录及一系列文件,并会在桌面上生成批处理文件run.bat对应的图标。双击该图标,运行结果如下: Linux Demo in Bochs显示窗口 run.bat文件的内容为(改变当前目录、启动bochs): cd "C:\Program Files\Bochs-2.5.1\dlxlinux" ..\bochs -q -f bochsrc.bxrc 2.2 FreeDOS FreeDOS是一种自由开源的兼容DOS操作系统,由Jim Hall领导一个团队于1994年中开始开发,1998年1月12日推出最初的0.05版,2006年9月3日推出1.0版,2012年1月2日推出1.1版。官方网站(http://www.freedos.org/)提供可安装的光盘映像文件fd11src.iso(38.9MB)下载,也可以从我的个人网页上下载。 安装完整的FreeDOS 1.1,需要100MB的硬盘空间,可以将其安装到在Virtual PC中新创建的FreeDOS虚拟机中。具体细节我这里就不介绍了,因为我们准备改用Bochs虚拟机,来进行我们下一步的实验。 可以从我的个人网页上,下载我自己制作的1.1版的系统软盘映像FDOS11.img,到Bochs虚拟机安装目录的dlxlinux子目录中。 2.3 Bochs配置文件 与Virtual PC通过对话框来设置虚拟机参数不同,Bochs是通过配置文件来设置虚拟机的各种参数,包括安装软盘和设置启动盘。 在Windows平台下的Bochs虚拟机的配置文件为bochsrc.bxrc,例如DLX Linux Demo的bochsrc.bxrc内容为: ############################################################### # bochsrc.txt file for DLX Linux disk image. ############################################################### # how much memory the emulated machine will have megs: 32 # filename of ROM images romimage: file=../BIOS-bochs-latest vgaromimage: file=../VGABIOS-lgpl-latest # what disk images will be used floppya: 1_44=floppya.img, status=inserted floppyb: 1_44=floppyb.img, status=inserted # hard disk ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 ata0-master: type=disk, path="hd10meg.img", cylinders=306, heads=4, spt=17 # choose the boot disk. boot: c # default config interface is textconfig. #config_interface: textconfig #config_interface: wx #display_library: x # other choices: win32 sdl wx carbon amigaos beos macintosh nogui rfb term svga # where do we send log messages? log: bochsout.txt # disable the mouse, since DLX is text only mouse: enabled=0 # enable key mapping, using US layout as default. # # NOTE: In Bochs 1.4, keyboard mapping is only 100% implemented on X windows. # However, the key mapping tables are used in the paste function, so # in the DLX Linux example I'm enabling keyboard_mapping so that paste # will work. Cut&Paste is currently implemented on win32 and X windows only. #keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-us.map #keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-fr.map #keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-de.map #keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-es.map 其中红色标识的部分涉及软硬盘映像文件的设置及启动盘的设置。 我们可将配置文件中软盘A的映像文件,从“floppya.img”改为FreeDOS的“fdos11.img”(在DOS操作系统中,文件名和命令行是不区分字母大小写的)。再将“boot:”后的“c”改为“floppy”,即从原来的硬盘C(Demo Linux)启动变成从软盘A(FreeDOS)启动。 重新启动Linux Demo in Bochs 2.5.1虚拟机,则运行结果如下: 老版本FreeDOS的运行界面 3 创建FAT12软盘 3.1 创建软盘映像 现在我们使用的是Bochs虚拟机,所以我们也用Bochs提供的磁盘映像创建工具(一种控制台程序)来创建新软盘映像。 选中“开始/程序/Bochs 2.5.1/Disk Image Creation Tool”项,启动Bochs的磁盘映像创建工具程序bximage.exe,会出现如下控制台窗口: Disk Image Creation Tool程序窗口 键入“fd”回车,选择创建软盘映像(默认为硬盘映像) 直接回车,选择默认的1.44MB的高密度软盘 键入软盘映像文件的名称MyOS.img(默认的为a.img)后回车 按任意键完成创建 被创建的软盘映像文件MyOS.img,大小为1.44MB,位于Bochs的安装目录“C:\Program Files\Bochs-2.5.1\”中,可将其移至“dlxlinux”子目录中。 如果我们用WinHex查看MyOS.img文件,会发现里面全是0。 刚创建的MyOS.img中全是0 3.2 修改配置文件 为了让Bochs虚拟机使用我们创建的新软盘映像,需要修改Bochs的配置文件。将其中的“floppyb.img”改为我们的“myos.img”。 重新启动Bochs虚拟机,并用DOS的查看目录命令“dir b:”来查看软盘B,则得到的是普通致命错误的提示信息,这是因为软盘映像中缺少必须的分区和格式化信息。可以按两次a字符退回DOS提示符。参见下图: 软盘B的普通致命错误信息 退回DOS提示符 3.3 FAT12软盘结构 1.44MB软盘的格式:2个磁头(head)/ 盘面(side)、每磁头80个柱面(cylinder)/磁道(track)、每个柱面有18个扇区(sector)、每个扇区有512个字节(byte),所以软盘的容量为: 2磁头*80柱面*18扇区*512B=2880扇区*512B=1474560B=1440KB=1.44MB 对1.44MB软盘,采用FAT12文件系统,引导扇区中没有分区信息,但有根目录区(224条目*32B = 7168B = 14扇区)。 FAT12的每个FAT项占12位(1.5B),每个簇只有一个扇区。整个软盘2880个扇区,需要2880*1.5B = 4320B = 8.44个扇区,所以每个FAT表的大小设为9个扇区。 1.44MB软盘的FAT12文件系统结构 起始扇区号 占用扇区数 内容 CHS参数 0 1(512B) 引导程序 起:0/0/1、止:0/0/1 1 9(4608B) FAT1 起:0/0/2、止:0/0/10 10 9(4608B) FAT2 起:0/0/11、止:1/0/1 19 14(9728B) 根目录 起:1/0/2、止:1/0/15 33 2847(1457664B) 文件数据区 起:1/0/16、止:79/1/18 FAT12分区引导扇区的结构 偏移 长度 内容 0x0000 3B 跳转指令(jmp 地址 nop = EB ?? 90) 0x0003 8B OEM名串(虚拟软盘的为“VPC4 ”) 0x000B 25B BPB 0x0024 26B 扩展BPB 0x005A 448B 引导程序代码 0x01FE 2B 有效结束标志(55 AA) FAT12的BPB结构(25B) 偏移 长度 内容 1.44M软盘值 10M硬盘值 3M硬盘值 0x0B 2B 每扇区字节数(一般为512) 200H=512 200H=512 200H=512 0x0D 1B 每簇扇区数 1 8 2 0x0E 2B 保留扇区数[含本扇区](≥1) 1 1 1 0x10 1B FAT数(一般为2) 2 2 2 0x11 2B 最大根目录项数 E0H=224 200H=512 E0H=224 0x13 2B 总扇区数(<64K,容量<32MB) B40H=2880 5027H=20519 1801H=6145 0x15 1B 介质描述符(盘类型,高密度3.5寸软盘为0xF0、硬盘和U盘为0xF8) F0H F8H F8H 0x16 2B FAT占扇区数 9 0BH=11 0AH=10 0x18 2B 每道扇区数 12H=18 11H=17 11H=17 0x1A 2B 磁头数 2 4 4 0x1C 4B 隐藏扇区数(对无分区的介质必须为0) 0 11H=17 0 0x20 4B 总扇区数(≥64K,容量≥32MB) 0 0 0 FAT12的EBPB结构(26B) FAT12/16偏移 长度 内容 1.44M软盘值 10M硬盘值 0x24 1B 驱动器号(软0/硬0x80) 0 80H 0x25 1B 保留(一般为0) 0 0 0x26 1B 扩展引导标签(一般为0x29) 29H 29H 0x27 4B 卷ID(序列号,随机数) 如D2 07 04 22 如全0 0x2B 11B 卷标(不足补空格) 如“NO NAME ” 如全空格符 0x36 8B 文件系统类型(不足补空格) “FAT12 ” “FAT12 ” Virtual PC虚拟机生成的1.44MB虚拟软盘的引导扇区 FreeDOS 1.1系统软盘FDOS11.img的引导扇区
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:FAT文件系统与文件装载.doc
    链接地址:https://www.zixin.com.cn/doc/3133016.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork