: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 <[EMAIL PROTECTED]>