From owner-freebsd-hackers Tue Aug 22 19:37:29 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.FreeBSD.org (8.6.11/8.6.6) id TAA02022 for hackers-outgoing; Tue, 22 Aug 1995 19:37:29 -0700 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.FreeBSD.org (8.6.11/8.6.6) with ESMTP id TAA02011 for ; Tue, 22 Aug 1995 19:37:17 -0700 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id MAA31690; Wed, 23 Aug 1995 12:34:27 +1000 Date: Wed, 23 Aug 1995 12:34:27 +1000 From: Bruce Evans Message-Id: <199508230234.MAA31690@godzilla.zeta.org.au> To: bde@zeta.org.au, terry@cs.weber.edu Subject: Re: Install issues (was: State of the union speech Cc: freebsd-hackers@freebsd.org, imb@scgt.oz.au, msmith@atrad.adelaide.edu.au, roberto@keltia.frmug.fr.net Sender: hackers-owner@freebsd.org Precedence: bulk >THe second translation is sector sparing. Sector sparing is a non-linear >translation mechanism. >Say that I have s=36; now say I have sparing enabled, which steals the >36th and leaves me with an equivalent of s=35 + 1 spare. >The problem in this scenario is that the drive geometry query is going >to return 36, but the hardware will enforce 35. >But the actual will be 36. Physically it is 36 but the controller should report 35...unless this form of translation is regarded as a bug fix for the option base 1 sector numbers :-). What happens if translation is enabled and the set parameters command tells the drive that there are 36 sectors/ track? Translation has to slip a sector for each track if translation is to work. I guess the spare sectors should be inaccessible in translated mode (you could specify sector 0, but the accumulated slippages stops that from being related to a physical sector 0). >The sparing doesn't actually go off unless you also disable translation. Yes it does. Of course you have to add 1 to the number of sectors in the BIOS geometry and in disk labels to use the extra sectors. >The AT&T SVR4.0.2 wd driver understands ESDI and sector sparing, so it >will work; however, because of the non-linear translation, you can not >install both the AT&T UNIX and DOS on the same drive unless translation >is off because of the way the sparing causes a loss of one sector in 36, >so for n sectors, n> 36, you mistake the partition start by n/36 in the >boot code. This can be handled by using adjusting the geometry in the smart driver. Use a drive table entry with 35 sectors since 35 is all the BIOS can normally see. Use 36 sectors in the smart driver. Other OS's will have problems reading file systems written by the smart driver. >In theory, if the sector offsets were translated using the disklabel >C/H/S vs the hardware C/H/S, and you set the disklabel values to >skip sector 36, well then, everything would work -- this is the NetBSD >0.x bogosity that allowed it to operate. I think all the BSDs used the disklabel values until I "improved" the FreeBSD driver in 2.0.5. This is what the disklabel was for - for specifying the final values to be used in case the hardware or BIOS values are unavailable or wrong. Bruce