Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 May 2009 10:08:18 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-embedded@freebsd.org
Subject:   Re: nanobsd boot slice selection does not work
Message-ID:  <200905121008.19196.jhb@freebsd.org>
In-Reply-To: <20090512075254.GA88230@psconsult.nl>
References:  <200904201535.21191.nick@van-laarhoven.org> <200905110940.31187.jhb@freebsd.org> <20090512075254.GA88230@psconsult.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 12 May 2009 3:52:54 am Paul Schenkeveld wrote:
> On Mon, May 11, 2009 at 09:40:31AM -0400, John Baldwin wrote:
> > On Tuesday 05 May 2009 10:49:38 am Paul Schenkeveld wrote:
> > > On Mon, Apr 20, 2009 at 03:55:23PM +0200, Matthias Teege wrote:
> > > > Moin,
> > > > 
> > > > > I've seen this problem as well, but can't for the life of me 
remember 
> > what I 
> > > > 
> > > > I'm relieved to hear that.
> > > 
> > > Ok, a bit late (interrupt storm generated by device $WORK) but I just
> > > tested with a clean 7.2-RELEASE source tree.  I too can report this
> > > regression in boot0 which now looks at the active flag in a MBR table
> > > entry instead of its own default partition byte when not choosing the
> > > partition by pressing 1 or 2 at the prompt.  This is a regression.
> > > 
> > > The boot0 source code appears to have had a complete overhaul between
> > > 7.1 and 7.2.
> > > 
> > > As a workaround, use the 7.1 boot0 source (or even use 7.1 completely
> > > if you care about the anticipated eol of the release).
> > > 
> > > I hope Luigi will have some time to look at the default drive delection
> > > algorithm again zome time soon.
> > 
> > I think you can simply re-enable the 'update' flag using boot0cfg in 7.2 
to 
> > fix this?
> 
> The update flag is on, besides it controls whether the first sector is
> written back or not after selecting another slice than the default using
> the keyboard.  The problem above shows that the 'default' slice variable
> in sector 0 is not read anymore but the MBR records are searched for
> an active flag.  Using the (M$DOS-compatible) active flag only slices
> 1-4 can be set as default, the boot0 default variable also allows for
> selection 5 (next disk) and probably also 6 (pxe boot) to be saved as
> default.

Err, so one of the things you need to keep in mind, is that boot1 re-reads the 
MBR and uses the "active" flag to determine where to load boot2 from (and 
where boot2 loads /boot/loader from and /boot/loader loads the kernel 
and /etc/fstab from).  boot1 prefers an active slice to a non-active slice, 
so if boot0 doesn't write back an updated MBR with the active slice changed, 
then even if you load the boot1 from slice 2, it will still boot slice 1 if 
the active flag is set on slice 1.  Note that this is not in boot0, but in 
boot1.  However, having 'update' enabled should fix this.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905121008.19196.jhb>