Windows 98SE incorrectly registers LBA partitions in some cases. This
causes phantom drives to appear in Explorer. The problem is caused by a bug
in IO.SYS and occurs when an LBA partition occurs in a non-LBA extended
partition or is the first drive encountered after processing a non-LBA
extended partition. This bug is also present in the Windows ME IO.SYS.
The patched version of IO.SYS in the link below :-
Correctly registers all partitions. Any valid combination of LBA and CHS
partitions is acceptable. Original IO.SYS miscalculates I/O keys for some LBA
partitions (the offset for the logical drive is doubled).
Processes all extended partitions using LBA I/O ensuring that drive letters
are allocated in the correct order. This non-standard feature means that disks
must contain valid LBA keys in all extended partition records.
Sets the access mode (CHS or LBA) flag for each partition based on the
partition type code. Original IO.SYS sometimes marks CHS partitions for LBA
access.
The patched IO.SYS is based on the Microsoft W98SE file dated 2001-12-01.
The code changes are :-
Offset 206C was 3E now 85 (causes 0x05 ext par access to be LBA not CHS).
Offset 2072 was 04 now 00 (erroneous set of LBA flag for next par).
Offset 3A01 was JNZ (75) now JMPS (EB) (stops erroneous adjust of LBA key).
The patch is also available for Windows ME. The ME IO.SYS is compressed
so rather than changing the bytes in the file a stub has been added which
modifies the code in memory once the file has been expanded.
The files were examined and changed using HIEW611 (excellent freeware).
To install this fix :-
Copy IO.SYS in root directory of drive C as IO.OLD . Renaming is not
recommended as it will be hard to restart if you have a crash between the
rename and the extract of the new file.
Download w98.zip file from link below and extract IO.SYS to root directory
of drive C overwriting original IO.SYS .