| |
|
KV3000修复硬盘数据之三十七
|
|
|
|
|
|
| |
(怎样手动重建分区表)
其硬盘为30G,分了一个区,分区类型为FAT32的,装的是WIN98系统,4月26日那天开机,一开机就黑屏了,最后把此硬盘放在别的上用启动盘启动,发现硬盘找不到了。
用KV3000的A盘启动,运行KV3000.EXE,发现0扇区被破坏了,表的开始几个字节显示为"FC608B44 242020",而往后翻页,发现全是乱码。以上信息表明,此硬盘遭CIH破坏。
开始用KV3000的F10功能进行自动修复,但是搜索了二行多了都没有搜索到(可能是由于大容量硬盘的缘故,搜索时间比较长),所以决定改用KV3000的F6编辑功能进行手动修复。
修复步骤:
1、用KV3000的F4搜索功能搜索字符串"0000F8FF",这是搜索FAT表2开始几个字节,经过搜索,在14399停留显示,此时向后再翻一页,结果在"14400"扇区找到了此硬盘的FAT表2;
2、进入14400扇区,按Ctrl+F10组合键,准备将FAT表2复制到FAT表1处,此时屏幕上出现:
To Write Sector 0-[ ](写到第几扇区)
Write Sector Count [ ](写几个扇区)
将FAT表2写到FAT表1开始95扇区,共写1500个扇区(一般的FAT32位的FAT表1开始处都在95扇区),CIH病毒会破坏硬盘前1117个扇区左右,所以要写入1500个扇区,即大于1117个扇区,这是把好的FAT表2恢复到被CIH破坏的FAT表1处。
3、现在修复硬盘主引导扇区(0扇区)
在表的开头显示: hard Disk Head=255 cyls=3649 Sector=63
Total Sector(总扇区数)=58621184
根据以上的信息,推算出C盘的主引导分区表的第二关键代码:
8001 01000CFE FFFF3F00
0000C27C 7E03
"80"为引导状态,80h表示此分区可作启动盘,00h表示不引导;
"01"为起始磁头;
"0100"为C盘的起始扇区和柱面;
"0C"为分区类型,大于8G以上的FAT32位的应用0Ch表示,小于8G,用0B表示;
"FE"为结束磁头,此数值的算法:255-1=254,再把此数值十进制254转换成十六进制=FE,所以此处为"FE";
"FFFF"为C盘结束扇区和柱面;
"3F000000"为绝对引导扇区,计算实际值时,字组内前后位(byte)交换,即实际十六进制为0000003Fh,转换成十进制为63,数值可以从Sector=63处得到;
"C27C7E03"为C区的扇区数,算法:总结扇区数:58621184+1-63=58621122,把十进制58621122转换成十六进制:037E7CC2h,然后字组内前后位(byte)交换,即C27C7E03,所以此处为"C27C7E03";
把以上推算出来的C盘第二关键代码写回到主引导区的原位置,然后退到A提示符下,用KV3000/K命令硬性的将硬盘主引导程序写入0扇区,这时主引导分区表已修复完毕。
4、现在修复C盘BOOT区(63)扇区。进入63扇区,用F5写功能,从表的开始写入:
EB589000 00000000 00000000 02202000 02000000 00F80000
(1) (2) (2)
3F00FF00 3F000000 C27C7E03 E1370000 00000000 02000000
(2)
01000600 00000000 00000000 00000000 800029
(3) (3)
"EB5890"为主引导扇区的最开头,一个JMP(jump,跳转)指令,使启动的程序跳过磁盘I/O数据而继续进行;
"0002"为每个扇区的字节数,每个扇区有512字节,把十进制512转换成十六进制=0200h,字组内前后位(byte)交换,即"0002",所以此处为"0002";
"20"为每个簇的扇区数(目录扇区数),得出方法,按F4搜索字符串"Command"(此为C盘根目录下的一个文件名),最后在28705扇区找到了这字符串,然后往后翻页,数一下有几个目录扇区数,结果在28737扇区发现已经不是目录区了,所以,目录扇区数=28737-28075=32个扇区,十进制32转换成十六进制=20h,所以此处为"20";
"2000"为保留扇区数,保留扇区记录着保留给FAT和根目录区的扇区的数量,此数算法:95(FAT表1的开始扇区)-63=32,把十进制32转换成十六进制=0020h,字组内前后位(byte)交换得:2000,所以此处为"2000";
"02"为FAT表的份数,一般FAT32位的有2份,所以为"02";
"F8"为介质描述;
"3F00"为每道的扇区数,开头显示:Sector=63,此63即每道的扇区数,将十进制63转换成十六进制=003Fh,字组内前后位(byte)交换得3F00,所以此处为"3F00";
"FF00"为磁头数目,开头显示:Head=25,此数即为物理磁头数,但大于8G硬盘其逻辑磁头数为255,将十进制255转换成十六进制=00FFh,字组内前后位(byte)交换得FF00,所以此处为"FF00";
"3F000000"为隐藏扇区数,这里记录着分区扇区及其后面空下来的扇区总数,有63个扇区,把十进制63转换成十六进制=0000003Fh,字组内前后位(byte)交换得3F000000,所以此处为"3F000000";
"C27C7E03"为C区扇区总数,此数值和引导扇区中的C区扇区数是一样的,可以从C区主引导扇区中得到;
"E1370000"为FAT的扇区数,算法:(28705(目录扇的开始扇区数)-95)÷2=1405,此数就是FAT的扇区数,再将此十进制1405转换成十六进制=37E1h,字组内前后位(byte)交换,得E1370000,所以此处为"E1370000";
上述目录扇区的开始扇区数28705在前面有述。
"02000000"为根目录所在簇数,一般为第2簇,为00000002h,字组内前后位(byte)交换得02000000,所以此处为"02000000";
"0100"为文件系统信息扇区,此文件系统信息扇区为1扇区,为0001h,字组内前后位(byte)颠倒得0100,所以此处为"0100";
"0600"为系统引导扇区数目,FAT32位的系统引导扇区有7个扇区,即0至6为0006h,字组内前后位(byte)颠倒得0600,所以此处为"0600";
"80"为磁盘编号(第一个硬盘为80h);
"29"以后为扩展的引导扇区特征码及系统安装序列号等,这部份可用标准的硬盘照搬过来。
注:
(1)OEM名称和版本号,传系统即可解决;
(2)FAT32位的此处应为0;
(3)保留。
5、写入完毕后,拿一张相同版本的WIN98启动盘启动,往C盘传一下系统,具体操作:用WIN98启动盘启动完之后,在A提示符下键入:SYS C:,做完这一切后,把软盘取出,按Ctrl+Alt+Del组合键重新启动计算机,终于可以进入WIN98系统了,而且数据全部无损。
注:以上的手动修复方法对于一般用户而言存在一定的困难,建议用KV3000的F10自动修复功能进行修复。
|
| |
|
|
|
|
|