Subject: Re: port-vax/28724: during install, installboot does not place boot code on hard disk
To: None <kirk@ba23.org>
From: Greg A. Woods <woods@weird.com>
List: netbsd-bugs
Date: 12/20/2004 15:23:47
[ On Monday, December 20, 2004 at 15:57:00 (+0000), kirk@ba23.org wrote: ]
> Subject: port-vax/28724: during install, installboot does not place boot code on hard disk
>
>     installboot: Set bootstrap operation failed
> After the install, you cannot boot of that drive.

Hmmm...

My knowledge of NetBSD/vax booting is minimal, so I need to ask if
installboot writes block numbers into the boot sector -- i.e. does it
need to access the on-disk inode for /boot just as is done on i386?

If so, and since as far as I can tell the fixes to fsync() metadata have
not yet been pulled up into 2.0, and so there's a kernel bug that'll
cause installboot to often fail from sysinst, or whenever the target
filesystem is mounted '-o async', just as it does on i386.

The problem is that all too often the inode for /boot has not been
written to disk when installboot goes to find out what data blocks the
/boot file occupies.  As a result no block numbers, or possibly the
wrong block numbers, are written to the boot sector (PBR on i386).

My solution for now is to simply remove the '-o async' from sysinst and
then add in some "mount -u -o async" invocations just before the
extraction phase starts (because otherwise it takes forever on anything
but the fastest storage systems!)

The better fix is to pull up rev. 1.61 of src/sys/ufs/ffs/ffs_vnops.c
(along with any other related changes).

I posted about this in tech-kern a while back but I had not yet filed a
PR.  Of course this pullup needs to be done for netbsd-1-6 too!  ;-)

-- 
						Greg A. Woods

+1 416 218-0098                  VE3TCP            RoboHack <woods@robohack.ca>
Planix, Inc. <woods@planix.com>          Secrets of the Weird <woods@weird.com>