Two months later...

On 12/22/20 7:11 AM, Eric Auer wrote:

(I've rearranged Eric's original posting somewhat because responding
to this paragraph makes for a good introduction to where I am now
it was originally towards the end of his e-mail)

You could get yourself a converter to connect SATA drives
(SSD or mechanical) to your IDE computer: I think SATA will
stay available for a long time and you can always use the
first 504 (528) MB even without extra drivers or BIOS fixes.

I ended up going with a SATA SSD on a SATA/IDE converter, plus a
a magnetic IDE disk (both in 2.5" form factor). But here's where things
get weird, as I've discovered while trying to get everything working:
when I input a manual drive size, I indeed get the 504 MiB limit (it resets
CHS counts greater than 1024/16/63 to 1 as soon as I hit enter). If I put
in a larger drive, fully partitioned and tell BIOS to auto-detect CHS, the
machine chokes on it (and, as I recall, if you manually enter an incorrect
CHS count, it rejects the drive).

If I put in a larger drive with a single small
partition, the machine accepts the drive, and *may* autodetect it with more
cylinders/heads than it will allow me to enter manually (though not
necessarily up to the full capacity of the drive), and then if I partition the
drive on another machine, it will continue accepting the drive. The size
corresponding to this auto-detected CHS count does not seem to match
the size of the drive, the size of the partition used during the initial auto
detection, or any of the classical drive size limits (504 MiB, 8 GiB, etc).
For the 40 GiB magnetic swap drive I went with, this size is somewhere over
a gigabyte. For the 128 GiB SSD, however, it actually detects with *less*
than the number of cylinders/heads it allows me to enter manually
(only 123 MiB!).

All of the partitions I'm migrating over are larger than 123 MiB, so it breaks
(MS/Free)DOS, Win95, and Linux, 'cause DOS can't handle it's partition not
being accessible to BIOS, and GRUB can't load Win95 or Linux. What's
worse, when I boot the system off a Debian install CD, Linux seems to believe BIOS as to the disk size, and treats any attempt to access anything beyond that as an I/O error. Parted refuses to even display the partition table on either disk. Linux fdisk does somewhat better, it displays both partition tables, and displays the correct size of the 40 GiB magnetic disk, but only shows a 123 MiB size, and gives warnings about the partitions that extend beyond 8 GiB until I use expert
mode to give it CHS counts that correspond to the actual size of the disk.

Hi!

If you say you have a 512 MB BIOS limit, your limit probably
is 512 * 63 * 16 * 1024 bytes, in other words a limit in the
number of "heads" (those do not relate to actual surfaces).

This is the manual configuration limit in BIOS for the machine.



Are you sure FreeDOS is affected when you use LBA? Note that
the limit is only 504 * 1024 * 1024 bytes, so depending on
how you count the 512 MB for the first partition, you might
already be beyond the limit.

Since my last writing, I actually had a look at the contents of the
partition again, and the DOS partition was actually significantly
bigger than 504 MiB (still well under a GiB), but even MS-DOS
hadn't been giving trouble on the original disk (both MS and
FreeDOS exist on that partition).



And of course you could consider updating your BIOS to fix
the "528 MB" problem, or install a MBR-installed workaround
such as ontrack / ezdrive :-) I wonder if UHDD could help
you, too, as long as the boot files are in the first 504 MB.

I know of one person that worked for the manufacturer that might
know where I could find a BIOS update for the machine, but I'm
not holding my breath (BIOS date is 1995, and the manufacturer
is defunct).

I have two theories about what's happening under Linux: either
the drive/SATA adapter is detecting that it's dealing with an old BIOS
and actively crippling itself to present the BIOS with a geometry it
can deal with, so that once Linux is booted on that machine the
drive is actively refusing reads/writes beyond the 123 MiB mark,
or else Linux is getting the drive size from BIOS (possibly via Grub)
at boot and is taking the BIOS value at face value and refusing to
touch any part of the disk beyond that.

In the first case, maybe there's something that can be done to make
the drive/adapter not cripple itself (hdparm -N looks promising if that's
the issue). In this case I might be able to get DOS / Win95 working on
the SSD (if the drive isn't reporting a ridiculously small capacity, then
the BIOS autodetect might give me a workably big space for my FAT
partitions, and Linux will get the full real size of the drive and have
the rest of the space to itself).

In the second, I imagine there has to be some kernel command line
switch that can be passed to tell Linux "BIOS is completely unreliable,
ask the drive directly how big it is". In this case I'm not so confident of
getting DOS and Win95 working without moving them over to what's
supposed to be the swap drive, but at least Linux will be able to use
the whole SSD once it starts questioning the BIOS value.

Any ideas?

Jon Brase



_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to