sysinstall and bsdlabel/boot

Nerius Landys nlandys at gmail.com
Tue Jan 15 08:52:28 PST 2008


>
> > I was trying to install 7.0RC1 (hope it's OK to post this here,
> > because I believe that older versions of FreeBSD have this same
> > limitation) and came across a gotcha.  I had an MBR on disk that I
> > wanted to keep.  It was Lilo and all it did was boot a selected
> > slice, it was configured to function the same as FreeBSD's `boot0'.
> > So, the install of FreeBSD came to the area where it asks what to do
> > with the MBR.  There are three choices: 1) boot manager, 2) simple
> > MBR, and 3) do nothing.  I chose to do nothing because I wanted to
> > keep Lilo in the MBR.  But, by choosing this option, I expected
> > sysinstall to install the /boot/boot code to the beginning of the
> > FreeBSD slice.  Well, no such boot code was installed, apparently,
> > unless I totally missed something.  Basically, after the install,
> > when I delegated Lilo to boot the chosen [FreeBSD] slice, it did not
> > find any boot code on that slice.
>
> Have you configured lilo properly? In the past, I used to use something
> like this:
>
> other=/dev/hda2
>        table=/dev/hda
>        loader=/boot/chain.b
>        label=FreeBSD
>

My complete lilo.conf was this:

=====
 boot=/dev/hda
prompt
timeout=50

other=/dev/hda1
        table=/dev/hda
        label=Ubuntu

other=/dev/hda2
        table=/dev/hda
        label=FreeBSD
=====

I have Grub installed at the beginning of /dev/hda1, and Lilo [when I had it
installed before changing it to `boot0'] passed control to Grub just fine
when booting ``Ubuntu''.  You can see that the logic for ``FreeBSD'' is
identical except for the slice it uses.  When choosing ``FreeBSD'' from the
boot menu, nothing happened.  This led me to conclude that /boot/boot as not
installed at the beginning of /dev/hda2.

>
> (Actually, you can delete "loader=/boot/chain.b" since FreeBSD and
> Linux share the same disk in your case -- and I assume you use lilo to
> dual-boot Linux and FreeBSD.)
>
> > My workaround for this was to choose option 1) boot manager.  I ended
> > up using boot0 (the boot manager) which I feel is superior to Lilo
> > because it is more modular, simpler.  However, some users may not
> > want this.  I didn't find any option in sysinstall to install just
> > the /boot/boot code to the beginning of the FreeBSD slice.  Am I
> > missing something?
>
> You don't have to go through sysinstall. Just for the case, reinstall
> bootstrap code of your FreeBSD slice (say, ad0s1):
>
>  # bsdlabel -B /dev/ad0s1
>
> (the code will come from /boot/boot by default), and then reinstall
> lilo from Linux, with the aforementioned configuration.
>

Yes, I figured using  `bsdlabel' would install /boot/boot to the beginning
of the slice.  However, I cannot [easily] run `bsdlabel' without being
booted into the FreeBSD OS.  I can't run the OS without /boot/boot being
installed to the beginning of the FreeBSD slice.  Chicken and egg problem.
Actually, I could probably run `bsdlabel' from the live disc, but a newbie
[like myself] would probably have a hard time figuring this out.

P.S.  I hope I'm doing the quoting thing ``properly'', not "incorrectly".


More information about the freebsd-questions mailing list