Daniel Malament wrote: > I'm trying to pull data off an old MFM HD, and I've gotten to the point > where the only obstacle is disk geometry. I have a P3 machine which > will disable the primary IDE controller in favor of the MFM controller, > but boot off of an OpenBSD disk on the secondary IDE. OpenBSD sees the > MFM disk just fine, but gives it the wrong CHS, which wouldn't matter > except that it's evidently too old to do LBA, since OpenBSD is using CHS > mode. I can pull the first few sectors off of the disk, but then I get > errors I'm guessing are because of the geometry mismatch. > > Is there any way at all to change the CHS values the kernel is using for > a disk? fdisk with -chs doesn't seem to produce a permanent change (I > guess the values are just used for calculating?), and the > machdep.bios.etc sysctls are read-only. Google and the archives haven't > turned up anything terribly useful, although it sounds like what I'm > trying to do may not be possible. If not, anyone have any alternate > suggestions? > > Incidentally, I have a bunch of other old crap around, but my efforts to > get everything working on a machine that will let me set the CHS in the > BIOS haven't gotten anywhere yet...
holy cow. of all the times NOT to post a dmesg! (and fdisk output). It probably wouldn't help diagnose the problem, but it would be cool to see. :) Obviously, you got a PIII machine with ISA slots, not the most common of beasts (though they certainly exist). (actually, the dmesg would probably just show "wdc0 at ... ", but it would be kinda cool to know that it was REALLY a wdc, not a low-end IDE interface pretending it was an AT controller). I think you need to go back to a P1 (or maybe some PII?) system before you will find one with manual drive parameter selections. That will lead to another problem, very, very very few of those will allow you to directly boot from the secondary controller. HOWEVER, you may be able to set the primary controller to the IDE, and put your MFM controller as secondary (many of the original ones had such a jumper) and be set, or install a SCSI controller and drive and use a boot floppy to boot from hd1a:/bsd... As you have probably (re)discovered, the OS takes its cues on the drive geometry from the BIOS. On modern IDE drives, it just doesn't matter, but on an MFM drive, head 3 was really head 3, cylinder 138 was really cylinder 138, and there were 17 sectors on each track, and where the OS requested is where the controller placed the drive and where the data came off, so yes, it really needs to be "right". Yes, source could probably be modified to hard-code this in the OS, but getting it right would be "interesting"...and very much in untested code paths, I suspect. good luck, I'm curious how it all works out... Nick.

