Return to BSD News archive
Newsgroups: comp.os.386bsd.questions Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!destroyer!cs.ubc.ca!van-bc!inde!newshost!gday From: gday@ignatz.inde.bc.ca (Gordon Day) Subject: Re: Ack! Ick! Ook! Argh! (IDE disklabel problems revisited) In-Reply-To: jdg00@ccc.amdahl.com's message of 17 Mar 93 22:08:21 GMT Message-ID: <GDAY.93Mar19161328@ignatz.inde.bc.ca> Sender: news@inde.bc.ca Organization: INDE Electronics, Inc. References: <fcpA02Mq3aKZ01@JUTS.ccc.amdahl.com> Date: Sat, 20 Mar 1993 00:13:28 GMT Lines: 64 Josh> Using disklabel from the fixit diskette, I am able to determine that a Josh> label sort-of-exists using "disklabel -r /dev/rwd0", with plenty of Josh> incorrect entries. The entries seemed just fine with the entire-disk Josh> instead of the partitioned method. My disk is a PC/AT "Type 37" 120MB Josh> drive. The problem is that your disk drive is pretending to be something that it isn't. As MS-DOG can't access more than 1024 cylinders, drives will pretend to have more heads and fewer cylinders than they really do to allow MS-DOG to access them. For example (on a 100M IDE drive I use): Translated values (for MS-DOG): 732 cyl, 8 heads Untranslated (real) values: 1464 cyl, 4 heads Josh> Looking at the label under "entire-disk" format, I see that it's an Josh> ESDI/IDE drive. It has 3 "partitions" defined, the first is a 4.2BSD, Josh> the others are unused. And, it boots fine. Looking at the label Josh> when I'm running partitioned, I see that the number of cylinders is Josh> incorrect, rpm and interleave are 0, and there is one partition unused. What happens is that the boot blocks you install on the hard disk load properly (via the program in the Master Boot Record loaded by BIOS) using translated parms) but when they look for the 386BSD disklabel on the disk, they can't find it (using untranslated parms). The thing to do is to look at those "incorrect" number of cylinders and heads in the disklabel from the correct install of 386BSD on the whole disk, and use those to set you CMOS disk values (any reasonable CMOS lets you use type 47 to set the disk parms to anything you want). Once you have done this, set up the partition tables again. Don't worry if the program you use to set the table up won't let you use > 1024 cylinders -- you just have to make sure that the MS-DOG partition is with the first 1024 cyl (I started mine at 0) and that the start of the 386BSD partition is within that range as well (so any DOS program you use to set the boot partition can "see" the start of the BSD partition). Reinstall MS-DOG, and 386BSD (using _untranslated_ parms in the disklabel), and you're away! Having read all this, I believe that a set of boot/fixit disks do exist with a new set of boot blocks (written by Julian E.) which use the regular old translated parms all the way through (so you don't have to fiddle with the CMOS settings). I no do not know where these may exist. Ta, Gordon. P.S.: Remember to set your partition c to the entire 386BSD portion of the disk and partition d to the entire disk in the disklabel. . . . :pc#163520:oc#41160: \ :pd#204680:od#0: \ . . _______________________________________________________________________________ gordon day, inde electronics, +1-604-430-1446.