Subject: port-i386/6887: fdisk -i makes disk unbootable
To: None <gnats-bugs@gnats.netbsd.org>
From: Wolfgang Helbig <helbig@Informatik.BA-Stuttgart.DE>
List: netbsd-bugs
Date: 01/27/1999 10:52:28
>Number:         6887
>Category:       port-i386
>Synopsis:       fdisk -i makes disk unbootable
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    port-i386-maintainer (NetBSD/i386 Portmaster)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jan 27 02:05:01 1999
>Last-Modified:
>Originator:     Wolfgang Helbig
>Organization:
	
>Release:        NetBSD-current Jan 23 1999
>Environment:
NetBSD 1.3I (RVC1) #1: Sun Jan 24 19:01:26 CET 1999
    helbig@rvc1:/usr/src/sys/arch/i386/compile/RVC1
cpu0: family 6 model 5 step 2
cpu0: Intel Pentium II (686-class)
real mem  = 133824512
avail mem = 123015168
using 1659 buffers containing 6795264 bytes of memory
pcib0 at pci0 dev 7 function 0
pcib0: vendor 0x1106 product 0x0586 (rev. 0x41)
pciide0 at pci0 dev 7 function 1: VIA Technologies VT82C586A IDE Controller
pciide0: bus-master DMA support present
pciide0: primary channel configured to compatibility mode
wd0 at pciide0 channel 0 drive 0: <WDC AC310100B>
wd0: drive supports 16-sector pio transfers, lba addressing
wd0: 9671MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 19807200 sectors
wd0: 32-bits data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2

System: NetBSD rvc1 1.3I NetBSD 1.3I (RVC1) #1: Sun Jan 24 19:01:26 CET 1999 helbig@rvc1:/usr/src/sys/arch/i386/compile/RVC1 i386


>Description:
	After doing an fdisk -i, the system doesn't boot. After started
	by the BIOS, the mbr-code either hangs w/o any messages or
	on a machine with a i486/100MHz the mbr prints the message
		Error loading operating system.
	To recover, I did an fdisk -i from a NetBSD-1.3.2-boot floppy. This
	gives you a bootable disk again.
>How-To-Repeat:
	See above
>Fix:
	I tried to fix the code in mbr.S, but to no avail. I found out,
	that the 32-bit address prefix ("addr32") seems to confuse the
	Pentium II. It hangs after the first such instruction in boot: 
	Removing those prefixes leads to a "Error loading operation system"
	message. The mbr used the int13-extension branch. I forced it
	to jump to the noext: branch. Removing the addr32-prefixes
	again gives
		"Error loading operation system"
	I don't know of any way to fix the mbr-code and strongly suggest
	to use the NetBSD-1.3.2 mbr, which works flawlessly on both
	the Pentium II with 10 GB-disk and on the i486 with 800 MB-disk.
	Both disks have one used DOS-partition, homing the NetBSD-system.
>Audit-Trail:
>Unformatted: