More gmirror problems (Re: "gmirror load" broken in 8.1 memstick)

perryh at pluto.rain.com perryh at pluto.rain.com
Mon Sep 6 11:12:50 UTC 2010


I wrote:

> The good news is ...
>
> Fixit# ln -s /dist/boot/kernel /boot
>
> after which "gmirror load" works, creating /dev/mirror/gm0{,a,b}.

and the bad news is that it still doesn't work:

* "gmirror load" did create /dev/mirror/gm0{,a,b}, and it produced
  no output on stdout or stderr, but it appended a couple of lines
  to dmesg and the second does not look at all promising:

  GEOM_MIRROR: Device mirror/gm0 launched (1/1).
  GEOM_MIRROR: Cannot add disk ad0s2a to gm0 (error=17).

  17 is defined in sys/errno.h as EEXIST /* File exists */

  What can this mean?  Of course ad0s2a and gm0 exist:  ad0s2a is
  the (so far only) provider for gm0, which was just instantiated.

  By a different test, that error message may be bogus (long lines
  reformatted):

  Fixit# ls -la /dev/mirror
  total 1
  dr-xr-xr-x  2 root  0              512 Sep  6 08:18 ./
  dr-xr-xr-x  8 root  0              512 Sep  6 08:08 ../
  crw-r-----  1 root  operator    0,  78 Sep  6 08:15 gm0
  crw-r-----  1 root  operator    0,  79 Sep  6 08:15 gm0a
  crw-r-----  1 root  operator    0,  80 Sep  6 08:15 gm0b

  Fixit# file -s /dev/mirror/* /dev/ad0s2a

  /dev/mirror/gm0:  Unix Fast File system [v2] (little-endian) last
  mounted on /mnt/z, last written at Sun Sep  5 03:24:40 2010, clean
  flag 1, readonly flag 0, number of blocks 154976879, number of
  data blocks 150098746, number of cylinder groups 1648, block size
  16384, fragment size 2048, average file size 16384, average number
  of files in dir 64, pending blocks to free 0, pending inodes to
  free 0, system-wide uuid 0, minimum percentage of free blocks 8,
  TIME optimization

  /dev/mirror/gm0a: Unix Fast File system [v2] (little-endian) last
  mounted on /mnt/z, last written at Sun Sep  5 03:24:40 2010, clean
  flag 1, readonly flag 0, number of blocks 154976879, number of
  data blocks 150098746, number of cylinder groups 1648, block size
  16384, fragment size 2048, average file size 16384, average number
  of files in dir 64, pending blocks to free 0, pending inodes to
  free 0, system-wide uuid 0, minimum percentage of free blocks 8,
  TIME optimization

  /dev/mirror/gm0b: ERROR: cannot read `/dev/mirror/gm0b'
  (Input/Output error)

  /dev/ad0s2a:      Unix Fast File system [v2] (little-endian) last
  mounted on /mnt/z, last written at Sun Sep  5 03:24:40 2010, clean
  flag 1, readonly flag 0, number of blocks 154976879, number of
  data blocks 150098746, number of cylinder groups 1648, block size
  16384, fragment size 2048, average file size 16384, average number
  of files in dir 64, pending blocks to free 0, pending inodes to
  free 0, system-wide uuid 0, minimum percentage of free blocks 8,
  TIME optimization

  This sure _looks_ as if mirror/gm0 and mirror/gm0a are seeing the
  data on ad0s2a, so maybe it's working after all.  But:

* After exiting from Fixit, and having sysinstall rescan devices so
  as to become aware of /dev/mirror/gm0*, gm0 is not in the disk
  list for either Partition (slice) or Label.  I even tried:

  Fixit# ( cd /dev && ln -s mirror/* . && ll gm* )
  lrwxr-xr-x  1 root  0  10 Sep  6 10:48 gm0@ -> mirror/gm0
  lrwxr-xr-x  1 root  0  10 Sep  6 10:48 gm0a@ -> mirror/gm0a
  lrwxr-xr-x  1 root  0  10 Sep  6 10:48 gm0b@ -> mirror/gm0b

  in case sysinstall looks only in /dev itself and not in any
  subdirectories, and gm0 is *still* not in either list.  How
  do I get sysinstall to see it?


More information about the freebsd-questions mailing list