From owner-freebsd-bugs@FreeBSD.ORG Fri Aug 10 22:30:02 2007 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3225316A417 for ; Fri, 10 Aug 2007 22:30:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 1251713C45D for ; Fri, 10 Aug 2007 22:30:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l7AMU1Jq046231 for ; Fri, 10 Aug 2007 22:30:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l7AMU1Gs046230; Fri, 10 Aug 2007 22:30:01 GMT (envelope-from gnats) Resent-Date: Fri, 10 Aug 2007 22:30:01 GMT Resent-Message-Id: <200708102230.l7AMU1Gs046230@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Kent Hauser Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3574E16A418 for ; Fri, 10 Aug 2007 22:24:42 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id 0B6D313C481 for ; Fri, 10 Aug 2007 22:24:42 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.1/8.14.1) with ESMTP id l7AMOfXX009708 for ; Fri, 10 Aug 2007 22:24:41 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.1/8.14.1/Submit) id l7AMOffq009707; Fri, 10 Aug 2007 22:24:41 GMT (envelope-from nobody) Message-Id: <200708102224.l7AMOffq009707@www.freebsd.org> Date: Fri, 10 Aug 2007 22:24:41 GMT From: Kent Hauser To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: misc/115406: GPT MBR hangs award BIOS on boot X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Aug 2007 22:30:02 -0000 >Number: 115406 >Category: misc >Synopsis: GPT MBR hangs award BIOS on boot >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Aug 10 22:30:01 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Kent Hauser >Release: 6.2-STABLE >Organization: >Environment: FreeBSD hnl.tfd.com 6.2-STABLE FreeBSD 6.2-STABLE #1: Sat Aug 4 22:50:46 HST 2007 kent@hnl.tfd.com:/usr/obj/usr/src/sys/GENERIC i386 >Description: When a disk is configured for GPT, a machine with AWARD BIOS hangs in boot. Disk must be detached before BIOS will respond. Can not boot from CD with disk attached. Machine locked up good. The solution is to patch the "compatiblity" MBR generated by GPT. Since the MBR is only a indicator to non-gpt aware systems that the disk is in use, it probably makes sense to generate an MBR entry which is "standard" in every way except filesystem type. Note: my award bios hangs if if the "head" field in the MBR is set to 255. Obviously a bug in BIOS, but also head=255 is never used in MBR applications. The following patch set start & end cyl/head/sector to more standard values: >How-To-Repeat: On a system with AWARD BIOS (eg eMACHINES T3410) dd if=/dev/zero of=/dev/ad1 copy=100 gpt create -f /dev/ad1 reboot to recover system: remove disk drive power boot system, pausing boot loader reattach disk drive power continue boot fdisk -I /dev/ad1 (and hope you don't fry the drive). >Fix: Index: create.c =================================================================== RCS file: /home/ncvs/src/sbin/gpt/create.c,v retrieving revision 1.10.2.1 diff -u -r1.10.2.1 create.c --- create.c 6 Sep 2005 23:59:01 -0000 1.10.2.1 +++ create.c 10 Aug 2007 22:08:14 -0000 @@ -93,11 +93,11 @@ mbr = gpt_read(fd, 0LL, 1); bzero(mbr, sizeof(*mbr)); mbr->mbr_sig = htole16(MBR_SIG); - mbr->mbr_part[0].part_shd = 0xff; - mbr->mbr_part[0].part_ssect = 0xff; - mbr->mbr_part[0].part_scyl = 0xff; + mbr->mbr_part[0].part_shd = 1; + mbr->mbr_part[0].part_ssect = 1; + mbr->mbr_part[0].part_scyl = 0; mbr->mbr_part[0].part_typ = 0xee; - mbr->mbr_part[0].part_ehd = 0xff; + mbr->mbr_part[0].part_ehd = 0xfe; mbr->mbr_part[0].part_esect = 0xff; mbr->mbr_part[0].part_ecyl = 0xff; mbr->mbr_part[0].part_start_lo = htole16(1); >Release-Note: >Audit-Trail: >Unformatted: