『第 5 楼』:
[转帖]硬盘“逻辑锁”解决办法
使用 LLM 解释/回答一下
许多电脑用户都见过或听说过,当硬盘中了所谓的“逻辑锁”后,无论是用软盘、硬盘,还是光盘都不能启动一些电脑。那么,“逻辑锁”到底是什么呢?
所谓“硬盘逻辑锁”是使用了某些DOS的一个错误制成的。它采用了“循环分区表”的技术,使某些有这个错误的DOS无法用任何设备启动,包括软盘等移动设备。当DOS启动时,系统会自动搜索硬盘中的各个分区的信息,如类型、大小等,以使系统能够识别硬盘,分别分配为C、D、E、F等驱动器,并使用户能对其进行各种操作。而“逻辑锁”正是利用了这一点,通过修改硬盘的分区表使分区表发生循环,即把扩展分区的第一个逻辑盘指向自身,使某些DOS系统启动时查找分区时发生死循环而无法启动。
可见,这其实是DOS启动时的一个错误造成的。据说早在1992年,就有一个叫Mike的反病毒专家发现了此问题,并报告给了有此问题的DOS的生产厂家,如生产PC-DOS的IBM公司、生产DR-DOS/NovellDOS的Novell公司、生产MS-DOS的微软公司等等。不久后,IBM、Novell等公司纷纷宣布其DOS的新版本已彻底解决了此问题,唯有拥有MS-DOS的微软公司没有理会,导致MS-DOS的新版本,如6.x、7.x等仍继续存在此问题。
然而,由于微软的MS-DOS使用得最为广泛,所以其影响和危害也最大。一旦用户的硬盘被“逻辑锁”锁住,各种微软的操作系统,如MS-DOS 5.x/6.x、MS-DOS 7.x/8.0(Win9x/ME)等的启动盘均无法启动,造成了硬件故障的假像,而且连许多高手对此都束手无策。由于这种现像非常可怕,将导致电脑无法使用,所以许多人纷纷去寻找预防及解决的办法。其实,其解决起来并不困难,下面就介绍几种解决办法。
* 使用非MS-DOS的操作系统启动
由上文可知,“硬盘逻辑锁”主要对微软的MS-DOS系统发生影响,因此,使用其它的DOS启动就可以了。为此,我特意对几种较实用的高版本的DOS,如MS-DOS 7.10(Win9x)、PC-DOS 7.10、DR-DOS 7.05、ROM-DOS 7.10、FreeDOS beta8、PTS-DOS Pro2000的启动盘在硬盘中了“逻辑锁”的情况下进行了启动测试,结果如下:
PC-DOS 7.10启动盘:启动一切正常;
DR-DOS 7.05启动盘:启动一切正常;
ROM-DOS 7.10启动盘:启动一切正常;
FreeDOS beta8(7.10):启动时显示硬盘有错误,并完全正常启动;
PTS-DOS Pro 2000(6.90):启动一切正常。
注:以上各种DOS都十分稳定,且均支持FAT32分区和大硬盘,其中ROM-DOS 7.10还完全本地支持长文件名,且兼容性非常好。
因此,可以用任何一种以上的DOS启动盘启动带有“逻辑锁”的硬盘,启动后C:等硬盘驱动器虽然无效,但各种磁盘分区软件,如Norton Disk Editor 2002、Norton Disk Doctor 2002,以及DOS自带的FDISK程序等,均可以显示出被锁住的硬盘,此时既可用上面提到的DISKEDIT等工具对此硬盘进行查看/手工修复等操作,也可以用一些软件进行自动修复,如NetResq等,具有自动去掉“逻辑锁”的功能,且硬盘上的数据不会受到任何损坏。
* 使用修复的MS-DOS启动盘启动
虽然MS-DOS启动盘在正常状态下不能在硬盘被锁住的情况下启动电脑,但是由于这仅仅是MS-DOS的启动文件IO.SYS中的一个BUG,所以只要修复此BUG,MS-DOS启动盘就不会受到“逻辑锁”的影响而能正常启动了。不过,即使是修复BUG,也应该使用正确的方法。有人提到过通过修改IO.SYS中的硬盘分区标记“55AA”的方法来解决问题,其实此法非常不好。因为,这种方法其实是让IO.SYS彻底忽略硬盘的存在,即通过跳过硬盘的方法来启动软盘,这样一来,无论硬盘是否被锁住,用此启动软盘启动后硬盘都不能被识别,因此此启动盘就不能作为正常的MS-DOS启动盘了。相反,如果采用正确的方法修复IO.SYS中的BUG的话,用此软盘启动后,若硬盘是好的,则能够正常识别,而即使是硬盘被“逻辑锁”锁住了,也可以像上面的方法(即“使用非MS-DOS的操作系统启动”)中提到的用PC-DOS、DR-DOS、ROM-DOS、FreeDOS、PTS-DOS Pro等启动软盘启动后进行进一步的修复等操作。还有人提到过MS-DOS的某些低版本,如3.2版的启动盘以启动电脑。但这显然有很多缺点,一是旧版本的DOS很难找到,二是由于其版本太低,功能很少,兼容性也很差;三是这些低版本的DOS自身不支持大硬盘(连32M都不支持)、逻辑分区等,甚至会对硬盘造成真正的破坏,而且,MS-DOS 3.2等版本甚至连1.44M软盘都不认识。可见,用低版本的MS-DOS启动的方法并不是很可行。因此,使用好的方法修正高版本的MS-DOS的IO.SYS中的BUG是很重要的。以MS-DOS 6.22的启动盘为例,只需用任何16进制编辑器(如PCTOOLS等)查找IO.SYS文件中的16进制字符串“07 72 03”,并将最后的“03”替换为“06”即可。其它版本的MS-DOS也可以使用类似的方法。这样一来,微软的MS-DOS启动盘也可以像其它各种DOS那样在硬盘被“逻辑锁”锁住的情况下正常启动了。
以上提到的方法都是解决“硬盘逻辑锁”的最直接的方法(即“使用不受‘逻辑锁’影响的DOS启动盘来启动电脑”),也是最好的办法。因此,只要制作一张上面提到的任何一种启动盘(如PC-DOS 7.10启动盘、ROM-DOS 7.10启动盘、FreeDOS启动盘,或修复的MS-DOS启动盘等)就可以了。既可平时将此启动盘当作正常启动盘使用,而且当硬盘被锁住时则可用此启动盘启动并解决问题。
有人还提到了其它的“方法”,如硬盘热插拔、DM低格等等,不仅麻烦、危险,而且会可能对硬盘中的所有数据造成破坏。比如硬盘热插拔后(需拆机箱且拿下硬盘,并在启动后再重新装上硬盘,非常麻烦且危险),即使是用软盘启动成功了,此时硬盘将彻底不能被识别,包括各种硬盘工具也不能识别。如果用DM跳过BIOS对硬盘进行低格,这样一来,硬盘上的所有数据将全部丢失,不可恢复,损失非常大。由此可见,硬盘热插拔等“方法”都是不实用也不可行的。
因此,只要找到了好的解决办法,并进行相应的操作,所谓的“硬盘逻辑锁”是可以轻易解决的,大家不妨一试。
作者:Wengier
Many computer users have seen or heard that when a hard disk is infected with the so-called "logical lock," some computers cannot be booted using floppy disks, hard disks, or optical discs. So, what exactly is a "logical lock"?
The so-called "hard disk logical lock" is made using a flaw in some versions of DOS. It uses the technology of "circular partition tables," making some versions of DOS with this flaw unable to be booted by any device, including mobile devices such as floppy disks. When DOS starts, the system automatically searches for information about each partition on the hard disk, such as type and size, so that the system can recognize the hard disk, respectively assign it as drives C, D, E, F, etc., and allow the user to perform various operations on it. And the "logical lock" precisely makes use of this point. By modifying the partition table of the hard disk to make the partition table circular, that is, pointing the first logical disk of the extended partition to itself, it causes a dead loop when some versions of DOS start to search for partitions, making it unable to boot.
It can be seen that this is actually caused by a flaw in the startup of DOS. It is said that as early as 1992, an anti-virus expert named Mike discovered this problem and reported it to the manufacturers of the relevant versions of DOS, such as IBM, which produces PC-DOS, Novell, which produces DR-DOS/NovellDOS, and Microsoft, which produces MS-DOS, etc. Soon after, IBM, Novell, and other companies successively announced that their new versions of DOS had completely solved this problem, but only Microsoft, which owns MS-DOS, ignored it, resulting in the new versions of MS-DOS, such as 6.x, 7.x, etc., still having this problem.
However, since Microsoft's MS-DOS is used the most widely, its impact and harm are also the greatest. Once a user's hard disk is locked by a "logical lock," the boot disks of various Microsoft operating systems, such as MS-DOS 5.x/6.x, MS-DOS 7.x/8.0 (Win9x/ME), etc., cannot boot, creating the illusion of a hardware failure, and even many experts are at a loss. Since this phenomenon is very terrifying and will lead to the computer being unusable, many people are frantically looking for prevention and solution methods. In fact, it is not difficult to solve. Several solutions are introduced below.
### Using a non-MS-DOS operating system to boot
As can be seen from the above, the "hard disk logical lock" mainly affects Microsoft's MS-DOS system. Therefore, using other versions of DOS to boot is fine. To this end, I specially conducted boot tests on several practical high-version DOSes, such as MS-DOS 7.10 (Win9x), PC-DOS 7.10, DR-DOS 7.05, ROM-DOS 7.10, FreeDOS beta8, and PTS-DOS Pro2000, in the case where the hard disk is locked by a "logical lock." The results are as follows:
PC-DOS 7.10 boot disk: boots normally;
DR-DOS 7.05 boot disk: boots normally;
ROM-DOS 7.10 boot disk: boots normally;
FreeDOS beta8 (7.10): displays an error on the hard disk when booting and boots normally;
PTS-DOS Pro 2000 (6.90): boots normally.
Note: The above various versions of DOS are all very stable and all support FAT32 partitions and large hard disks. Among them, ROM-DOS 7.10 also fully supports long file names locally and has very good compatibility.
Therefore, any of the above-mentioned DOS boot disks can be used to boot a hard disk locked by a "logical lock." After booting, drives such as C: are invalid, but various disk partitioning software, such as Norton Disk Editor 2002, Norton Disk Doctor 2002, and the FDISK program built into DOS, etc., can all display the locked hard disk. At this time, tools such as DISKEDIT mentioned above can be used to view/manually repair the hard disk, etc., or some software can be used for automatic repair, such as NetResq, which has the function of automatically removing the "logical lock," and the data on the hard disk will not be damaged at all.
### Using a repaired MS-DOS boot disk to boot
Although the MS-DOS boot disk cannot boot the computer when the hard disk is locked in the normal state, since this is only a bug in the IO.SYS startup file of MS-DOS, as long as this bug is repaired, the MS-DOS boot disk will not be affected by the "logical lock" and can boot normally. However, even when repairing the bug, the correct method should be used. Some people have mentioned the method of modifying the hard disk partition mark "55AA" in IO.SYS to solve the problem. In fact, this method is very bad. Because this method actually makes IO.SYS completely ignore the existence of the hard disk, that is, by skipping the hard disk to boot from a floppy disk. In this way, no matter whether the hard disk is locked or not, the hard disk cannot be recognized after booting with this boot floppy disk, so this boot disk cannot be used as a normal MS-DOS boot disk. On the contrary, if the bug in IO.SYS is repaired correctly, after booting with this floppy disk, if the hard disk is good, it can be recognized normally, and even if the hard disk is locked by a "logical lock," further repair operations can be carried out by using the boot disks of PC-DOS, DR-DOS, ROM-DOS, FreeDOS, PTS-DOS Pro, etc., as mentioned in the above method (that is, "using a non-MS-DOS operating system to boot"). Some people have also mentioned using some low versions of MS-DOS, such as the boot disk of version 3.2, to boot the computer. But this obviously has many drawbacks. First, it is very difficult to find the old version of DOS. Second, due to its very low version, it has very few functions and very poor compatibility. Third, these low versions of DOS themselves do not support large hard disks (not even supporting 32M), logical partitions, etc., and may even cause real damage to the hard disk. Moreover, versions such as MS-DOS 3.2 even do not recognize 1.44M floppy disks. It can be seen that the method of using the low version of MS-DOS to boot is not very feasible. Therefore, it is very important to use a good method to correct the bug in the IO.SYS of the high version of MS-DOS. Taking the boot disk of MS-DOS 6.22 as an example, it is only necessary to use any hex editor (such as PCTOOLS, etc.) to find the hexadecimal string "07 72 03" in the IO.SYS file and replace the final "03" with "06". The same method can be used for other versions of MS-DOS. In this way, the Microsoft MS-DOS boot disk can also boot normally when the hard disk is locked by a "logical lock" like various other versions of DOS.
The above-mentioned methods are all the most direct methods to solve the "hard disk logical lock" (that is, "using a DOS boot disk that is not affected by the 'logical lock' to boot the computer"), and also the best methods. Therefore, as long as a boot disk as mentioned above is made (such as a PC-DOS 7.10 boot disk, a ROM-DOS 7.10 boot disk, a FreeDOS boot disk, or a repaired MS-DOS boot disk, etc.), it will be fine. It can be used as a normal boot disk at ordinary times, and when the hard disk is locked, it can be used to boot and solve the problem.
Some people have also mentioned other "methods," such as hot swapping the hard disk, low-level formatting with DM, etc. These are not only troublesome and dangerous but may also cause damage to all data on the hard disk. For example, after hot swapping the hard disk (which requires opening the case and removing the hard disk, and then reinstalling the hard disk after booting, which is very troublesome and dangerous), even if it is successfully booted from a floppy disk, the hard disk will completely not be recognized at this time, and even various hard disk tools cannot recognize it. If DM is used to skip the BIOS to low-level format the hard disk, all data on the hard disk will be lost completely and cannot be recovered, resulting in a very large loss. It can be seen that methods such as hot swapping the hard disk are not practical and feasible.
Therefore, as long as a good solution is found and corresponding operations are carried out, the so-called "hard disk logical lock" can be easily solved. Everyone might as well give it a try.
Author: Wengier
|