Bug 13847

Summary: missing support for INT 0x13 extensions in /boot/loader
Product: Base System Reporter: Tor Egge <Tor.Egge>
Component: i386Assignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 3.3-STABLE   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff none

Description Tor Egge 1999-09-20 05:20:01 UTC
At a first glance, booting from the end of a large disk seems simple:

	boot0cfg -B -v -o packet wd0

But this only enables the BIOS Int 0x13 disk packet interface in boot0,
and he machine hung during boot with the message "Read error".

I then adjusted B1FLAGS in /usr/src/sys/boot/i386/boot2/Makefile and
recompiled and reinstalled the boot blocks.

Now the machine hung during boot with the message "Boot error".

boot1 seems to depend upon the content of the word at offset 0x1f6 in the
first sector of the FreeBSD slice being 0 in order to be able read the MBR.

After performing

	dd if=/dev/zero of=/dev/rwd0s4 bs=512 count=1
	disklabel -B wd0s4

I got one step further.  /boot/loader now started.  But it did not find
any valid kernels.

I then took a look at /usr/src/sys/boot/i386/libi386/biosdisk.c and
applied the suggested fix below.

Finally, a successful boot.

How-To-Repeat: 
See above.
Comment 1 John Baldwin freebsd_committer freebsd_triage 2000-06-19 18:44:54 UTC
State Changed
From-To: open->closed

Committed a modified version of this, thanks.