From owner-freebsd-current Sun May 21 17:32:51 1995 Return-Path: current-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id RAA02401 for current-outgoing; Sun, 21 May 1995 17:32:51 -0700 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id RAA02389 for ; Sun, 21 May 1995 17:32:40 -0700 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id KAA18598; Mon, 22 May 1995 10:31:08 +1000 Date: Mon, 22 May 1995 10:31:08 +1000 From: Bruce Evans Message-Id: <199505220031.KAA18598@godzilla.zeta.org.au> To: iain@nwpeople.demon.co.uk Subject: Re: 2.0-950412-SNAP install problem Cc: current@FreeBSD.org Sender: current-owner@FreeBSD.org Precedence: bulk >I have encountered a problem trying to install 2.0-950412-SNAP. >... > WD Caviare 540MB IDE disk (1048 cyls) >... >The IDE disk (wd0) has DOS and FreeBSD 1.1 slices. The FreeBSD 1.1 >slice starts below cylinder 1024. BIOS LBA translation is disabled; >I lied to the BIOS and told it the disk has 1024 cylinders. >I am attempting to install FreeBSD 2.0 on the entire SCSI disk (sd0). >I have reached the point where I can boot from the hard disk (sd0, using >hd(1,a)/kernel at boot prompt). The kernel boots successfully, and finds >all expected devices, but the message > wd0: can't handle 32 heads from partition table... Yes, it can't handle 32 heads. 32 heads are another form of BIOS translation. For the 950412 SNAP, you need to use a more reasonable translation (try telling the BIOS that the disk has 16 cylinders, or the actual number) and remove all stale partitions tables and labels that depend on the old number. > wd0e: hard error reading fsbn 296033 of 296033-296040 (wd0 bn 296096; > cn 146 tn 27 sn 59): status 51 error 54 abort> Head numbers between 16 and 31 corrupt the unit number that i/o is done on tn = correct_tn % 16, unit = correct_unit | 1, so if you have wd1 then i/o is done on it and if you don't have it then you get an error. Such head numbers occur because the driver "fixes" the number of heads in the label to be <= 16, but it doesn't fix derived quantities in the label, and it uses the derived quantities and not the number of heads to compute the head number. Bruce