Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Aug 2006 16:06:11 -0600
From:      "Aaron Gifford" <astounding@gmail.com>
To:        freebsd-questions@freebsd.org
Subject:   Booting gvinum fails: missing /dev/gvinum/* device entries
Message-ID:  <e58000750608261506v10f512aco63e998676eb02a5f@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
I'm running 6.1R (amd64) on a system, and recently added more drives.  I
decided I would eventually migrate my root system off the existing drive
(/dev/ad0a) to use a gvinum root (/dev/gvinum/root) filesystem and
eventually remove the old hard drive altogether.

The two added drives (ad1 and ad2) are labeled (with bsdlabel) identically
like this:

#       size   offset    fstype
a:   4194039      281    4.2BSD
b:   4194394  4194320     vinum
c: 625142448        0    unused
d:   4194304       16     vinum
e: 616753824  8388624     vinum

The gvinum configuration looks like:

# Drives for the root gvinum RAID-1 volume:
drive a1 device /dev/ad1d
drive a2 device /dev/ad2d
#
# Drives for the swap gvinum RAID-1 volume:
drive b1 device /dev/ad1b
drive b2 device /dev/ad2b
#
# Drives for the usr gvinum RAID-1 volume:
drive c1 device /dev/ad1e
drive c2 device /dev/ad2e
#
# RAID-1 volume for root:
volume root
  plex org concat
    sd length 0 drive a1
  plex org concat
    sd length 0 drive a2
#
# RAID-1 volume for swap:
volume swap
  plex org concat
    sd length 0 drive b1
  plex org concat
    sd length 0 drive b2
#
# RAID-1 volume for usr:
volume usr
  plex org concat
    sd length 0 drive c1
    sd length 0 drive c2

Once the gvinum volumes were created, new filesystems created, and mounted
temporarily on /mnt and /mnt/usr, I added a line to loader.conf in the new
drives' future /boot directory containing 'geom_vinum_load="YES"'.  Oh, and
the new drives' future /etc/fstab contains:

# Device         Mountpoint FStype  Options Dump Pass#
/dev/gvinum/swap none       swap    sw      0    0
/dev/gvinum/root /          ufs     rw      1    1
/dev/gvinum/usr  /usr       ufs     rw      2    2

Oh, boot blocks were also written to both drives before the gvinum volumes
were set up using bsdlabel -b.

Now for the test.  I rebooted, changing the boot order in BIOS so the first
drive, ad1 (instead of ad0) was the boot source.

THE PROBLEM:

No matter what I tried, booting always failed at the point of mounting the
root filesystem.  I would be kicked to a "mountroot>" prompt.  Any attempts
at mounting root from ufs:/dev/gvinum/root failed.  Even if I loaded
geom_vinum.ko by hand during boot to be absolutely sure gvinum was loaded,
this failed.  At "mountroot>", the gvinum devices did not show up at all.

So I fell back and mounted /dev/ad0a (my old non-gvinum drive) as root.
That worked.  kldstat showed that indeed geom_vinum.ko WAS successfully
loaded.  But when I looked in /dev nothing for gvinum showed up there.  It
was empty.

The "gvinum list" command showed all my gvinum volumes working, but there
were NO entries in /dev.

No wonder I was unable to mount /dev/gvinum/root -- There was no device
entry.

So what's the deal?   Any suggestions?   Is there something I need to
compile in my kernel?

If I boot off my old drive and only load the geom_vinum.ko module by hand at
the command-line by using the gvinum command, the entries in /dev/ DO appear
normally.

Puzzled, frustrated,
Aaron out.



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