FIXING VN AND CCD DEVICES ON HEAD! Re: HEADS up on HEAD

YONETANI Tomokazu qhwt+dfly at les.ath.cx
Sat May 19 19:56:30 PDT 2007


On Sun, May 20, 2007 at 10:16:15AM +0900, YONETANI Tomokazu wrote:
> OK, I fixed ccd.conf and issued ccdconfig commands above, and I got
>   # ccdconfig -U
>   ccdconfig: ioctl (CCDIOCCLR): /dev/ccd0: Device not configured
>   ccdconfig: ioctl (CCDIOCCLR): /dev/ccd1: Device not configured
>   # ccdconfig -C
>   ad1s1: type 0xa5, start 63, end = 117226304, size 117226242 : OK
>   ccd0: /dev/ad0s1e: filesystem type must be 'ccd'

Hmm, I think that the following check in ccdinit() is bogus in that it
expects the *component* to have fstype=FS_CCD, but actually it's
fstype=FS_BSDFFS and fstypestr="".  I see there's no chance to write
that information to underlying components without successful ccdinit.

                if (dpart.fstype != FS_CCD &&
                           strcmp(dpart.fstypestr, "ccd") != 0) {
                        kprintf("ccd%d: %s: filesystem type must be 'ccd'\n",
                                ccd->ccd_unit, ci->ci_path);
                        error = EFTYPE;
                        goto fail;
                }

After removing this check, ccdconfig succeeds and I can read from
/dev/ccd0.  The first block of /dev/ccd0 is already zero, but
I get a kernel message when I mount it:
  # mount /dev/ccd0s0a /mnt
  ccd0t127: invalid primary partition table: no magic

I tried cpdup'ing an obj tree that was remaining in this partition
without a problem.





More information about the Kernel mailing list