Chinaunix首页 | 论坛 | 博客
  • 博客访问: 87517
  • 博文数量: 39
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 595
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-21 09:21
文章分类
文章存档

2010年(2)

2009年(25)

2008年(12)

我的朋友
最近访客

分类:

2008-12-03 14:12:31

MBR 系 FDISK.COM(EXE)  一项未公布的开关,隐含于 MS DOS 3.30,延至 MS DOS
8.0(Windows ME)。实践中,有籍以修复主引导信息,重点在主引导程序。
   FDISK /MBR  命令流程的分支有二:
  读得主引导扇区检验标志(字) AA55h,操作单一,仅向主引导扇区位移 0-1BDH  写入当
前系统固有的主引导程序,安全可靠。
  难能可贵的是它不触动主引导信息其余模块(分区表、检验标志),以及随后的 DOS 引导
信息、文件分配表、根目录,省事许多。检出检验标志非 AA55h,写主引导程序、初始化
分区表及登录检验标志,在 MS DOS 7.0 - 8.0  环境中,常规以系统支持的最大容量分配
给基本 DOS  分区的方式登录分区表。分区表初始化(可能幸存的分区表被清除)的后果不难
想象; 目前硬盘大都设置有其它分区,即使在高版本 DOS 环境中运作,常规建立的分区
表每难能符合实际需求,后续工作量也相当可观。
  不过,它也不触动位于其后的  DOS  引导信息、文件分配表及根目录,高版本  FDISK
/MBR 命令适用于修复仅设基本 DOS  分区的硬盘分区表及检验标志受损,或主引导信息全
毁。
  可见,在运行 FDISK /MBR  命令之前,需查明检验标志是否  AA55h,酌情处理,切忌
盲动。
  经由 DOS 软盘引导,认硬盘,检验标志必健在。
  另外,在 FDSIK 主菜单中选 4. Display Partition Information,列出分区信息,进一步证
实检验标志正常; 若现 No partitition defined,检验标志每变异,而分区表或许尚健在。

总簇数=逻辑盘容量/簇容量
总簇数=FAT表长度(字节)/每个表项长度(字节)-2
FAT表长度=逻辑盘容量/簇容量*每个表项长度
 
Dos引导记录块位于逻辑0 sector 中包含三部分:
(1)  磁盘IO 参数表BPB;
(2)  磁盘基数表;
(3)  引导区代码。
 
FAT16的BPB(BIOS Parameter Block)表,描述逻辑盘结构组成,包含隐藏扇区数目
(从0-1-1开始计算)、FAT扇区数、FAT拷贝数、硬盘磁头总数、根目录表项最大值等。
FAT32 系统中,BPB 表的偏移与 FAT16 不同,但表项基本相同。整个隐藏扇区部分都作
为逻辑盘的描述区域。

隐藏扇区(Hidden Secotrs):
    FAT16              0-1-1          1
    FAT32              0-1-1          32
文件分配表(File Allocation Table):
    FAT16              0-1-2           根据逻辑盘容量变化     
    FAT32              0-1-33          根据逻辑盘容量变化
    说明:
FAT16 的每个表项由 2 字节(16 位)组成,通常每个表项指向的簇包含 64 个扇区,即
32K 字节。 逻辑盘容量最大为2047MB。
FAT32的每个表项由4字节(32位)组成,通常每个表项指向的簇包含 8个扇区,即 4K
字节。逻辑盘容量最小为512MB。
对于C分区,在MBR的偏移01c2H 处,FAT16 为 06H,FAT32 为 0CH。
  
FAT是DOS、Windows9X 系统的文件寻址格式,位于DBR之后。
在解释文件分配表的概念的时候,我们有必要谈谈簇(Cluster)的概念。文件占用磁盘空
间,基本单位不是字节而是簇。一般情况下,软盘每簇是 1 个扇区,硬盘每簇的扇区数与硬
盘的总容量大小有关,可能是 4、8、16、32、64……同一个文件的数据并不一定完整地存
放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式
称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(即 FAT),操作系统在读
取文件时,总是能够准确地找到各段的位置并正确读出。
为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个
已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本簇
无后继簇。这些都是由 FAT 表来保存的,表中有很多表项,每项记录一个簇的信息。由于
FAT 对于文件管理的重要性,所以为了安全起见,FAT 有一个备份,即在原 FAT 的后面再
建一个同样的FAT。初形成的FAT中所有项都标明为“未占用”,但如果磁盘有局部损坏,
那么格式化程序会检测出损坏的簇,在相应的项中标为“坏簇”,以后存文件时就不会再使
用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,
因为其中需要存放簇号。FAT的格式有多种,最为常见的是 FAT16 和 FAT32。
当一个磁盘Format后,在其逻辑0扇区(即 BOOT扇区)后面的几个扇区中存在着一个重
要的数据表—文件分配(FAT),文件分配表一式两份,占据扇区的多小凭磁盘类型大小而
定。顾名思义,文件分配表是用来表示磁盘问件的空分配信息的。它不对引导区,文件目录
的信息进行表示,也不真正存储文件内容。
我们知道磁盘是由一个一个扇区组成的,若干个扇区合为一个簇,文件存取是以簇为单位
的,哪怕这个文件只有1个字节。每个簇在文件分配表中都有对应的表项,簇号即为表项号,
每个表项占 1.5 个字节(磁盘空间在 10MB 以下)或 2 个字节(磁盘空间在 10MB 以上)。
为了方便起见,以后所说的表项都是指2 个字节的。
FAT表的开始由介质描述符+一串“已占用”标志组成:
FAT16硬盘----F8 FF FF 7F
    FAT32硬盘----F8 FF FF 0F FF FF FF 0F
   每个有效的FAT结构区包含两个完全相同的拷贝:FAT1、FAT2

文件目录表(File Directory Table),即根目录区,又称为 ROOT区:
   紧跟在 FAT2 的下一个扇区,长度为 32 个扇区(256 个表项)。如果支持长文件名,则每
个表项为64个字节,其中,前32个字节为长文件链接说明;后 32 个字节为文件属性说明,
包括文件长度、起始地址、日期、时间等。如不支持长文件名,则每个表项为 32 个字节的
属性说明。
值得注意的是:
1,FAT32没有储存目录的目录区,而 FAT16 储存根目录并把子目录放到数据区。
  2,表示目录的目录项指出根目录地址同时长度字节为 0,表示文件的目录项指出数据地址。

 

飞客中心:

飞客中心:

飞客中心:

飞客中心:

飞客中心:

阅读(966) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~