Jump to content

Overcoming the MS-DOS 8,025 MB limitation


ppgrainbow

Recommended Posts

You might remember my remarkable post regarding testing MS-DOS limitations from almost three years ago and now I'm realising it.

Okay, I'm currently running MS-DOS 6.22 triple booting with OS/2 Warp 4 and Windows 95B under GRUB4DOS 0.4.6a 2015-09-15.

I'm running Virtual PC 2007 with three 16 GB hard disk images and 256 MB of system memory and have split three of the drives into four partitions. Looking at the Disk Management utility:

post-334069-0-97101000-1444430422_thumb.

 

1. The areas where it is shaded in dark blue are primary partitions. MS-DOS 6.22 is occupying the first 2 GB on each drive with drive letters C, D and E.

 

2. The areas where it has a dark green border are extended partitions. 14 GB of disk space on each of the three drives are used as a extended partition.

 

3. The extended partition on each of the three drives are split into three logical drives. The logical drives are shaded in blue.

4. My OS/2 Warp 4 installation has three 2 GB FAT formatted drives (drives F, I and K mapped as C, D and E) and one 8 GB HPFS formatted partition (drive M mapped as drive F).

5. My Windows 95B installation has three 4 GB FAT32 formatted drive (drives G, J and L mapped as C, D and E).

6. Drive H is a hidden FAT32 formatted drive that will be used as storage. The other 8 GB partition below it will be a Linux formatted partition as I'm going to install DSL 4.4.10 soon.

The only problem is that MS-DOS 6.22 lacks INT 13h support which means that it cannot support hard disks larger than 8,025 MB (1,023 cylinders, 255 heads and 63 sectors per track) which means that if the size of the extended partition is over 5,977 MB, MS-DOS will not be able to access any of the three logical drives on each disk at all.

Are there any hacks or wokrarounds to overcome the 8,025 MB limit without having to mess-up the GRUB4DOS bootloader?

Edited by ppgrainbow
Link to comment
Share on other sites


I did it with a Drive Splitting DDO but that required very specific Partitioning to work.

 

Another option would be to use the Ontrack DDO utilities. Unfortunately, both of these DDO partitioning utilities will require destructive reformatting which is something that I wouldn't want to go through.

 

Oh wait. A better solution was to load the Ontrack Disk Manager 9.50 ONTRACKD.SYS driver in the CONFIG.SYS! :)

 

This will correctly recognise hard disk partitions over 8,025 MB. The maximum size that the Ontrack Disk Manager utility will accept is 32,768 MB! That is enough for MS-DOS 5.0 to 6.22 to recognise logical hard disk partitions up to drive R. ONTRACKD.SYS uses only 3.2 KB of base memory. Have a look:

 

post-334069-0-30016300-1444460603_thumb.

 

Has anyone tested the creation of hard disks by splitting in to 2 GB logical drives on a 32 GB hard disk image using the ONTRACKD.SYS driver loaded?

 

I'm pretty sure that Microsoft imposed the 8,025 MB limit as hard disks and other media this large were not available at the time when MS-DOS 5.0 through 6.22 came out between the 1991 to 1994 period. Overcoming the 8,025 MB limit under these stand alone versions of MS-DOS would require architectural changes that will never be supported.

Edited by ppgrainbow
Link to comment
Share on other sites

The Ontrack DDO is the one that gave DDOs a bad name. It offset all Disk accesses making the Drive unreadable unless you booted through it. Windows 9x has specific code to work with Ontrack. Other DDOs, such as EZ-DRIVE and my BOOTMAN series, do not offset Disk Accesses so no Reformatting is required.

I wrote my DDO a long time ago so it was a bit crude. It would have required rebuilding the Partitions above 8GB.

It is not be hard to write a Partition Driver that can mount Partitions above the 8GB limit. I assume Ontrack did.

Link to comment
Share on other sites

The Ontrack DDO is the one that gave DDOs a bad name. It offset all Disk accesses making the Drive unreadable unless you booted through it. Windows 9x has specific code to work with Ontrack. Other DDOs, such as EZ-DRIVE and my BOOTMAN series, do not offset Disk Accesses so no Reformatting is required.

I wrote my DDO a long time ago so it was a bit crude. It would have required rebuilding the Partitions above 8GB.

It is not be hard to write a Partition Driver that can mount Partitions above the 8GB limit. I assume Ontrack did.

 

Despite the fact that Ontrack wrote its Dynamic Drive Overlay utility, it was the only utility that overcame the 8,025 MB limit under standalone MS-DOS. I was lucky to use the ONTRACKD.SYS driver to load in the CONFIG.SYS, rather than taking the risk of making the entire drive unreadable unless it was booted though it.

 

EZ-Drive is a utility that actually overcame the 504 MB limit in BIOSes from the early 1990s.

 

And in regards to creating anymore logical drives, I don't think that I will be able to create anymore partitions inside in the hard disk. Partitioning utilities limit to no more than four partitions (one primary partition and three logical drives per disk). If I wanted to create a fourth logical drive or a second primary partition, a Extended Master Boot Record (EMBR or Extended MBR) would need to be created.

Edited by ppgrainbow
Link to comment
Share on other sites

As far as I can tell ONTRACKD.SYS is a Block Device Driver not a DDO. It translates Sector Requests to Extended INT 13 Calls.

It would probably need a DDO as well if the BIOS does not support INT 13 Extensions.

EZ-DRIVE is a DDO. It would be of little use to you.

You can create more than 3 Logical Partitions. The limit of 4 applies to the number of Primary and Extended Partitions.

One Extended Partition can contain an unlimited number of Logical Partitions. Standard DOS only recognizes one Extended Partition per Drive.

FDISK allows one Primary and One Extended Partition. My RFDISK allows more. I have a Patch that allows DOS to see more than one Extended Partition as well.

Link to comment
Share on other sites

As far as I can tell ONTRACKD.SYS is a Block Device Driver not a DDO. It translates Sector Requests to Extended INT 13 Calls.

It would probably need a DDO as well if the BIOS does not support INT 13 Extensions.

EZ-DRIVE is a DDO. It would be of little use to you.

You can create more than 3 Logical Partitions. The limit of 4 applies to the number of Primary and Extended Partitions.

One Extended Partition can contain an unlimited number of Logical Partitions. Standard DOS only recognizes one Extended Partition per Drive.

FDISK allows one Primary and One Extended Partition. My RFDISK allows more. I have a Patch that allows DOS to see more than one Extended Partition as well.

 

That's good to hear that. Although ONTRACKD.SYS is a Block Device Driver (BDD) or better known as a BIOS Overlay Driver that supports Extended INT 13 calls overcoming the 8,025 MB limit: http://www.bandwidthco.com/whitepapers/datarecovery/hdd/barriers/Breaking%20the%208.4%20GB%20Barrier.pdf

 

EZ-Drive would be little use, because it doesn't support hard disk and other media beyond the 8,025 MB (1,023 cylinder) barrier.

 

If there is a patch that will allow DOS to see more than one Extended Partition, can it be done using the DEBUG tool?

Link to comment
Share on other sites

If there is a patch that will allow DOS to see more than one Extended Partition, can it be done using the DEBUG tool?

Presumably. It is part of the Patches that I have made to IO.SYS for my TeraByte Plus Package.

It is intended for use with my RFDISK Multi-Boot Partiting Tool.

You don't need more than one Extended Partition to have an unlimited number of Logical

Partitions. I don't know which Partitioning tools would even allow more than one.

Link to comment
Share on other sites

 

If there is a patch that will allow DOS to see more than one Extended Partition, can it be done using the DEBUG tool?

Presumably. It is part of the Patches that I have made to IO.SYS for my TeraByte Plus Package.

It is intended for use with my RFDISK Multi-Boot Partiting Tool.

You don't need more than one Extended Partition to have an unlimited number of Logical

Partitions. I don't know which Partitioning tools would even allow more than one.

 

Partitioning tools that will allow more than one primary partition would be BootIT NG, DFSee and GParted to name a few.

 

As for the patches for the IO.SYS, it's not free, I don't think.

 

According to this forum thread, hard disks can have up to four primary partitions, or three partitions and one extended partition. Certain OSes such as MS-DOS, Windows 9x/Me and OS/2 do not recognise more than one primary partition.

Link to comment
Share on other sites

According to this forum thread, hard disks can have up to four primary partitions, or three partitions and one extended partition. Certain OSes such as MS-DOS, Windows 9x/Me and OS/2 do not recognise more than one primary partition.

 

I don't know about OS/2 but the others do recognize more than one Primary Partition.

Microsoft even published a specific sequence they use for enumerating them as follows:

 

1. Active Primary Partition on each Drive.

2. All Logical Partitions in an Extended Partition on each Drive in succession.

3. All Inactive Primary Partitions on each Drive in succession.

Link to comment
Share on other sites

 

According to this forum thread, hard disks can have up to four primary partitions, or three partitions and one extended partition. Certain OSes such as MS-DOS, Windows 9x/Me and OS/2 do not recognise more than one primary partition.

 

I don't know about OS/2 but the others do recognize more than one Primary Partition.

Microsoft even published a specific sequence they use for enumerating them as follows:

 

1. Active Primary Partition on each Drive.

2. All Logical Partitions in an Extended Partition on each Drive in succession.

3. All Inactive Primary Partitions on each Drive in succession.

 

 

I read up on this FAQ regarding XOSL as the boot manager:

http://www2.arnes.si/~fkomar/xosl.org/faqhow/faq.html

1. MS-DOS 3.3 to 6.22 canoot be installed nor run on a logical partition and cannot use more than one primary partition.

2. Caldera DR-DOS 7.03 can use more than one primary partition and can be installed on a logical partition, but cannot boot from it.

3. Other operating systems such as Windows 95, 98 and ME can boot from a logical partition, but cannot directly run from a logical partition without having to use a bootloader to tell where Windows 9x/Me is installed.

4. Windows NT 4.0, which does not support hard disks larger than 8,025 MB on the primary IDE hard drive, cannot be directly installed on the logical partition. The same applies for Windows 2000. However, Windows NT 4.0 and Windows 2000 both can run from a logical partition and use more than one primary partition.

The downside is that MS-DOS, OS/2 and Windows 9x/Me have a bug where, if the last logical partition in the extended partition is not a recognised file system type and multiple visible primary FAT-formatted partitions exist, it will use the last logical partition as a FAT-formatted one in place of the next primary partition. These OSes will think that the size of the partition is that of the primary partition and consequently, data corruption will occur!

 

Therefore, I got MS-DOS 6.22, OS/2 Warp 4, Windows 95B, FreeDOS FAT32 maintenance partition to install Puppy Linux as well as disk images that are used for GRUB4DOS and **** Small Linux in a multi-boot GRUB4DOS configuration successfully without any major problems. With the ONTRACKD.SYS BDO in the CONFIG.SYS, MS-DOS can recongise the first three FAT-formatted logical partitions where OS/2 is installed. :)

Link to comment
Share on other sites

The downside is that MS-DOS, OS/2 and Windows 9x/Me have a bug where, if the last logical partition in the extended partition is not a recognised file system type and multiple visible primary FAT-formatted partitions exist, it will use the last logical partition as a FAT-formatted one in place of the next primary partition. These OSes will think that the size of the partition is that of the primary partition and consequently, data corruption will occur!

It doesn't use the logical partition as a FAT partition. It adds the offsets of the partitions together

to produce an entirely spurious partition.

 

This bug is well known. I posted a fix on this forum for it years ago.

Link to comment
Share on other sites

 

The downside is that MS-DOS, OS/2 and Windows 9x/Me have a bug where, if the last logical partition in the extended partition is not a recognised file system type and multiple visible primary FAT-formatted partitions exist, it will use the last logical partition as a FAT-formatted one in place of the next primary partition. These OSes will think that the size of the partition is that of the primary partition and consequently, data corruption will occur!

It doesn't use the logical partition as a FAT partition. It adds the offsets of the partitions together

to produce an entirely spurious partition.

 

This bug is well known. I posted a fix on this forum for it years ago.

 

 

Can I have a link to the fix on the forum that you posted a long time ago?

Link to comment
Share on other sites

The link to the Patch is at the bottom of this page:

http://www.msfn.org/board/topic/118119-patched-iosys-for-9xme/page-7

It appears that the file I attached PATCHPAR.ZIP is no longer available.

 

Thank you for the link. I don't know if the patched IO.SYS works in Windows 98 (original release), Windows 95 or even MS-DOS. As far as I know these OSes that I've mentioned haven't been tested it might not work at all.

 

Since I'm running MS-DOS, I might want to play safe and back up the hard disk images just in case massive data corruption occurs.

Edited by ppgrainbow
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...