![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-15 14:54 |
共 47,813 主题排行 / 349,903 发帖 / 今日 1 篇 / 48,257 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » 谁能教我如何填写fat? |
| 可打印版本 805 / 0 |
| 第1楼 ko20010214 | 发表于 2003-06-01 00:00 |
| 版主 发帖 1,628 积分 7,296 | |
|
谁能教我如何填写fat? 发信人: Hechuan (hc), 信区: DOS
【 在 Jungle (自由的荆棘~~我行我素) 的大作中提到: 】 : 【 以下文字转载自 Virus 讨论区 】 : 【 原文由 Jungle 所发表 】 : 正在试图修复一个被cih破坏的硬盘,c盘的两个fat都坏了。8-( : 用ghost5.1c复制,总说有非法cluster(号为:c000) : 看来只好在不复制的情况下,手工修修看了。 : 现在遇到一个问题,我找到了根目录(部分文件)。 : c盘参数是从(0,1,1)到(305,127,63)(柱面,头,扇区), : 1204M,512 bytes/sector, 63 sectors/head, 127 heads/cylinder, : 64 sectors/cluster,即32k bytes/cluster : 每个fat为151个扇区(fat16) : 根目录在(1,6,26) : 在(31,72,20)找到一个子目录,其起始扇区在30757簇(和根目录的记录是一致的)。 : 怎么算物理扇区和簇的对应关系? : (直接拿簇数 x 64 再加上第二个fat结束的位置,结果不对;而在其它盘上, : 包括fat32的盘和1G的盘,这么计算就是对的,我不太明白是怎么回事,呵呵) : 怎样把根目录信息加到fat里? : 请诸位大侠不吝赐教,谢谢! FAT16保留前两个簇号没用,所以应该是: (簇号 - 2) * 64 + 数据区起始位置就对了。 发信人: Jungle (自由的荆棘~~我行我素), 信区: DOS 事实上我发现,计算远比这复杂。 主要原因可能是由于根目录不是紧接着fat表。 经过归纳 8-): 从根目录后面的一个目录dir1开始计算相对簇数cl, 计算扇区数se = cl * 32(居然不是64?奇怪,分区超过1.1G了呀) 然后计算相对柱面数cy,修改se = se - cy * 63(不知道为何每柱面少算一个头) 现在se是要计算的簇与dir1的位置的相对扇区数。 (如果从根目录计算,还有差距,不知是什么原因) 接下来,谁能教我如何填写fat? 【 在 Hechuan (hc) 的大作中提到: 】 : FAT16保留前两个簇号没用,所以应该是: : (簇号 - 2) * 64 + 数据区起始位置就对了。 发信人: Hechuan (hc), 信区: DOS 【 在 Jungle (自由的荆棘~~我行我素) 的大作中提到: 】 : 事实上我发现,计算远比这复杂。 : 主要原因可能是由于根目录不是紧接着fat表。 : 经过归纳 8-): : 从根目录后面的一个目录dir1开始计算相对簇数cl, : 计算扇区数se = cl * 32(居然不是64?奇怪,分区超过1.1G了呀) : 然后计算相对柱面数cy,修改se = se - cy * 63(不知道为何每柱面少算一个头) : 现在se是要计算的簇与dir1的位置的相对扇区数。 : (如果从根目录计算,还有差距,不知是什么原因) : 接下来,谁能教我如何填写fat? 不会吧。你的分区是FAT16吗?是不是相对扇区和物理扇区的换算不对呀。 发信人: Jungle (自由的荆棘), 信区: DOS 我想应该是fat16吧,我问过原来做盘的人。 而且如果是fat32,我这个计算方法岂不是差距更大?(4k 即 8 sectors/cluster) 这个32 sectors/cluster 实在太古怪了。1.2G的盘应该是64 sectors/cluster才对呀。 可用fat32来解释也不大对头。 当然原来的系统可能是win97的,它会干什么坏事吗? 另:我最初文章里的根目录位置不对。后来计算的是在另一个地方的目录, 这个目录是对的,因为我顺着找了几个目录,包括最应该恢复的文档目录。 也就是我得以总结出规律的几个目录。 【 在 Hechuan (hc) 的大作中提到: 】 : 不会吧。你的分区是FAT16吗?是不是相对扇区和物理扇区的换算不对呀。 相对扇区和物理扇区差别在什么地方?总不会大小也有差别吧。。。 发信人: Hechuan (hc), 信区: DOS 【 在 Jungle (自由的荆棘) 的大作中提到: 】 : 我想应该是fat16吧,我问过原来做盘的人。 : 而且如果是fat32,我这个计算方法岂不是差距更大?(4k 即 8 sectors/cluster) : 这个32 sectors/cluster 实在太古怪了。1.2G的盘应该是64 sectors/cluster才对呀。 : 可用fat32来解释也不大对头。 : 当然原来的系统可能是win97的,它会干什么坏事吗? : 另:我最初文章里的根目录位置不对。后来计算的是在另一个地方的目录, : 这个目录是对的,因为我顺着找了几个目录,包括最应该恢复的文档目录。 : 也就是我得以总结出规律的几个目录。 : 相对扇区和物理扇区差别在什么地方?总不会大小也有差别吧。。。 1.2G的盘应该是32 sectors/cluster吧。你算算: 1.2*1024*1024*1024/65536 = 19660.8 我说的相对扇区是从根目录后的第一个扇区为0扇区。物理扇区是用柱面、 磁头、扇区来表示的。 我觉得手动恢复太复杂了。还是找一些恢复工具(可能要挂到另外一个硬盘上), 如RecoverNT, RecoverAll,Lost&Found,Virus和Win95版以前的文章有很详细的介绍, 这样可把恢复的内容写到另外一个盘上,而不改变原来的盘。 手动修改也最好不要直接改FAT,把找到的文件手工写到另一个盘上就行了(用 DiskEdit)。 (本文采用S-Term文章拷贝脚本拷贝) ================================================== |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |