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

Matthew Dillon dillon at apollo.backplane.com
Sat May 19 20:21:17 PDT 2007


: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

    No, the check is there as a safety.  You have to edit the filesystem
    type for all the CCD components (e.g. ad0s1g).  They aren't 4.2BSD
    filesystems, they are components for CCD.  Just disklabel -e ad0s1
    and modify the fs type for the ccd components, and same with
    ad1s1 (or whtever).

    e.g. disklabel -e ad0s1 and change the filesystem type from '4.2BSD'
    to 'ccd' for the ccd components in that label, and same for any other
    drives with ccd components.

    its ok, you can just leave the hack in for now and not worry about
    it, but it isn't a bug.

: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.

    Hmm.  It sounds like you never put a disklabel on ccd0s0.  This
    is ok, it will use a fake label, but it will complain whenever
    you mount it.  You should be able to install a disklabel like
    this but dd the first 32 sectors or so of ccd0s0 to a backup
    file in case it blows up.

    disklabel -r -w ccd0s0 auto
    disklabel -e ccd0s0
    (create an 'a' partition that is just a copy of the 'c' partition
    but marked 4.2BSD).

    I'll fix the kernel message (the device name is not being
    printed properly).

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Kernel mailing list