FreeBSD boot menu is missing

Mike Meyer mwm-keyword-freebsdhackers2.e313df at
Wed Nov 26 16:05:52 PST 2008

On Wed, 26 Nov 2008 14:46:44 -0800
"Peter Steele" <psteele at> wrote:

> >The phrase "and copy the file systems over to the mirror" worries
> >me. Do you actually copy the file systems, or do you let the mirror
> >system do it for you? In particular, are you mirroring file systems or
> >the entire disk? Because the boot blocks aren't part of any file
> >system, so you won't have copied them over, hence you'll be getting
> >whatever boot software the second drive has installed.
> I'm more or less using the approach described here:
> This assumes you have an existing OS installed on one drive of a
> multi-drive system. You then use gmirror to create mirror devices on a
> second drive to match the partitions of the boot drive, transfer the
> data to the newly established mirror, adjust /etc/fstab on the mirrored
> root partition to mount the appropriate mirrored devices, then reboot,
> telling the boot loader to boot from the mirrored drive instead of the
> original boot drive (via an entry in boot.config). After it comes up,
> you can then add the original boot drive to the mirror (and any other
> drive if there are more than two drives that you want to mirror) using
> gmirror insert. This all works fine, except I'm not getting the boot
> menu. I know this isn't part of the mirroring, but it is a step I need
> to perform as part of the whole process. The question is what do I need
> to do to make sure the appropriate boot loader is setup?

He had you install a stock MBR on the second disk. You never copied
the boot loader from the first disk, so that's what you're going to
use when you boot from the second disk. You need to install the boot
block you want on the second disk. Which probably means
boot0. boot0cfg will do that for you. You probably want
       boot0cfg -B -s 1 <diskdevice> 	# The device - ad1, not the slice!

> >My recommendation for gmirror is to set up one drive to boot from,
> >then us gmirror label to create a gmirror device on each partition
> >(excluding swap). Edit /etc/fstab to use the gmirror devices thus
> >created, and reboot to make sure it's working properly. It will
> >initially boot from the disk device (pretty much required until
> >gmirror is started), then switch to the mirrored root partition.  Now
> >use gmirror insert to add the matching partitions on the second disk,
> >and let gmirror update the bits on the second drive. You'll need to
> >copy the boot blocks from the first drive to the second drive by hand
> >if you want to boot off the second drive.
> I think you are describing more or less the same process here.

Um, no. He reduced the size of one partition because he's overly
paranoid about gmirror failing to recognize the providers properly,
which forces him to dump and restore one partition - which leads to
doing them all to get them on one disk. If you don't need to resize
the partitions, you can just labelling the disk you're already using.
Once you've done that, you can gmirror insert the second drive into
the mirror, and it will resilver the second drive while providing full
access to the first one. No need to copy any data at all.

His analysis of the choices is pretty shallow as well. He lets wanting
to use different-sized disks dominate the analysis, which is great if
you're building your mirror with disks from the parts bin. I tend to
by drives to pairs if I want to mirror them, so that's
immaterial. Once that's gone, mirroring a full disk slice just doesn't
make sense at all - either mirror the entire disk (to get the MBR), or
mirror the partitions in the slice (for extra flexibility and less
painful resilvering).

Better instructions for getting a full-disk mirror can be found here:

Mike Meyer <mwm at>
Independent Network/Unix/Perforce consultant, email for more information.

O< ascii ribbon campaign - stop html mail -

More information about the freebsd-hackers mailing list