On Friday, February 24, 2012 9:05:54 am rank1see...@gmail.com wrote:
> ----- Original Message -----
> From: John Baldwin <j...@freebsd.org>
> To: freebsd-hackers@freebsd.org
> Cc: rank1see...@gmail.com, Roman Divacky <rdiva...@freebsd.org>
> Date: Thu, 23 Feb 2012 08:02:04 -0500
> Subject: Re: BUG: 9.0 stage 2 boot (/boot/boot)
> 
> > On Friday, February 17, 2012 2:43:55 am rank1see...@gmail.com wrote:
> > > Anyway, after upgrading to 9.0, my USB stick, when created, started to 
hang 
> > at stage 2 boot.
> > > I have a custom setup, where BSD label 'a', has a content of /boot/*
> > > So when 'a' is being hit by stage 2 boot, there is boot.config waiting 
for 
> > it.
> > > After it reads it and displays it's content, it echos 'No' and hangs.
> > > 
> > > I stare at it and can't believe as boot.config's information is correct!
> > > I hit '?' and it list all files in 'a'.
> > > Then I simply RE-type what is displayed on screen (content of 
boot.config -> 
> > path to loader)
> > > And loader kicks in!
> > > 
> > > I do this a few times more and EACH time I have to RE-type correct info!
> > > Tested on other machine, same thing.
> > > 
> > > However, this same custom layout works for HDD's, but NOT for USB stick.
> > > 
> > > I've extracted binary installs of 8.2 and 9.0 R:
> > > MD5 (8_boot) = adb1e84e96bd434e51cafaaa0ef22584
> > > MD5 (9_boot) = 40f3f6403ebd5e131259d1336b4b50ad
> > > 
> > > Then:
> > > # gpart bootcode -b 8_boot da0s2
> > > And sudenly that USB stick boots, without ANY other change!
> > > Just an "old" stage 2 boot code, from R8 was enough.
> > 
> > Looks like it is thinking that 'kname' is empty.  Ah, I think Roman broke 
this
> > in 219186:
> > 
> >  @@ -474,11 +461,7 @@ parse()
> >                          ? DRV_HARD : 0) + drv;
> >             dsk_meta = 0;
> >         }
> > -       if ((i = ep - arg)) {
> > -           if ((size_t)i >= sizeof(kname))
> > -               return -1;
> > -           memcpy(kname, arg, i + 1);
> > -       }
> > +            kname = arg;
> >     }
> >     arg = p;
> >      }
> > 
> > Before it only set kname if it wasn't an empty string.  Now it always sets
> > kname.  Try this change:
> > 
> > Index: boot2.c
> > ===================================================================
> > --- boot2.c (revision 231983)
> > +++ boot2.c (working copy)
> > @@ -457,7 +457,8 @@ parse()
> >                          ? DRV_HARD : 0) + drv;
> >             dsk_meta = 0;
> >         }
> > -            kname = arg;
> > +       if (*arg != '\0')
> > +               kname = arg;
> >     }
> >     arg = p;
> >      }
> > 
> > -- 
> > John Baldwin
> > 
> 
> 
> It still doesn't work!
> 
> And please, next time attach patch in a file (unified format), so I would  
have a less hassle (to avoid manuall patch application)

Do you still get 'No ' with no other message before it breaks?

Can you show me the contents of your /boot.config file via hd?

-- 
John Baldwin
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to