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