From owner-freebsd-current@FreeBSD.ORG Tue Dec 22 13:42:16 2009 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 493041065670 for ; Tue, 22 Dec 2009 13:42:16 +0000 (UTC) (envelope-from james-freebsd-current@jrv.org) Received: from mail.jrv.org (rrcs-24-73-246-106.sw.biz.rr.com [24.73.246.106]) by mx1.freebsd.org (Postfix) with ESMTP id E69808FC15 for ; Tue, 22 Dec 2009 13:42:15 +0000 (UTC) Received: from kremvax.housenet.jrv (kremvax.housenet.jrv [192.168.3.124]) by mail.jrv.org (8.14.3/8.14.3) with ESMTP id nBMDgBrA060110; Tue, 22 Dec 2009 07:42:11 -0600 (CST) (envelope-from james-freebsd-current@jrv.org) Authentication-Results: mail.jrv.org; domainkeys=pass (testing) header.from=james-freebsd-current@jrv.org DomainKey-Signature: a=rsa-sha1; s=enigma; d=jrv.org; c=nofws; q=dns; h=message-id:date:from:user-agent:mime-version:to:cc:subject: references:in-reply-to:content-type:content-transfer-encoding; b=Wu4FF/9mpuyXUAj9dt8UIwOGWQ1k5UgA1eaPXsxvgmx52Qj3edB2EMsQVkU1gkCP1 zyHtPVKY+ptSxTzmG7xaoh0MKxdZDRvylqj1PrqSeYKrf3Axs3A29G7knJqstLjb4E/ OnEFi8feJOtB8fxUBP8G/339JyoQnX7dFyVmNBM= Message-ID: <4B30CCB3.1090401@jrv.org> Date: Tue, 22 Dec 2009 07:42:11 -0600 From: "James R. Van Artsdalen" User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812) MIME-Version: 1.0 To: =?UTF-8?B?RGFnLUVybGluZyBTbcO4cmdyYXY=?= References: <200912210600.46044.mel.flynn+fbsd.current@mailing.thruhere.net> <20091221150514.GB75616@roberto-al.eurocontrol.fr> <4B2F9877.70201@jrv.org> <867hsf6xhh.fsf@ds4.des.no> <45929E18-EA48-4340-9954-683FF06B180B@exscape.org> <86r5qn5gem.fsf@ds4.des.no> In-Reply-To: <86r5qn5gem.fsf@ds4.des.no> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: FreeBSD Current Subject: Re: Some notes on RootOnZFS article in wiki X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Dec 2009 13:42:16 -0000 Dag-Erling Sm=C3=B8rgrav wrote: > Both of these are arguably poor design and / or sloppy implementation, > but they are not bugs. The BIOS performed just like its authors > expected under the circumstances they had expected; they just hadn't > anticipated the circumstances under which their code failed. As a day job I wrote and architected PC-compatible BIOS for 15 years in the 80's and 90's so I have some idea what works and what will break things in a BIOS. It definitely breaks things *when booting* to depend in any way on a partition table since there may not be one. By the mid 90's nearly every OS was putting in at least dummy partition tables for the same reason GPT does - to lessen the risk of accidental clobbering of the disk - but that's just a convention. I'm sure there are still a few customized VAR-things out there that don't bother with a partition table.= A number of vendors have taken to putting "hidden" system partitions on the disk with various utilities that can be run via a hotkey press during POST. These schemes have to use MBR-like code from the BIOS ROM to boot their system partition and that pseudo-MBR must read and interpret the partition table to find the system partition. But during system boot itself the MBR sector is read and if the last word in that sector is 0xAA55 then the BIOS executes the MBR code blind as to what is on the disk. It's the MBR code that's read from the disk that scans the partition table, if there is one. There were attempts for a time to check for boot sector virii before booting but those were always so problematic that I never did that, and I don't the the other main BIOS teams did it either. Someone probably decided to save space and consolidate the two BIOS boot routines but forgot to bypass the partition table code in the INT 19 case= =2E