From: Bjoern F. <li...@fe...> - 2004-06-24 13:42:41
|
> > The uniconv utility does that (bin/uniconv subdir). It also=20 > converts NSL > > encodings (iso8859-1.adapted) to UTF8 (or any other volume=20 > encoding). It > > doesn't care a bit about "windows style", though :-) >=20 > Hi, i'm one of the admins Michael mentioned. I've tested a=20 > bit around with=20 > uniconv and have some questions about it: >=20 > what is the purpose of specifying the cnid backend for=20 > uniconv? what changes=20 > will be done in the dbs and what will happen, if i specify=20 > the wrong backend? The CNID backend maintains name to id mappings. If you change a filename outside afpd (shell, samba), the CNID db, i.e. the DIDNAME index, gets inconsistent. Netatalk tries to recover from such inconsistencies as gracefully as possible. The mechanisms to resolve such inconsistencies = may fail sometimes, though, as this is not an easy task to accomplish for = apfd. I.e. if several names in the path to the file/dir have changed, thing = may go wrong. So, if you change a lot of filenames at once, chances are higher = that the afpds fallback mechanisms fail, i.e. files will be assigned new Ids, even though the file hasn't changed. Uniconv therefore updates the CNID entry for each file/dir directly after it changes the name to avoid inconsistencies. What happens if you choose the wrong backend? Depends on the backend ;-) The two supported backends for volumes, dbd and cdb, use the same CNID = db format. Therefore, you _could_ use uniconv with cdb and afpd with dbd = later. Warning: There must not be two process opening the CNID database using different backends at once! I.e. if a volume is still opened with dbd (cnid_metad/cnid_dbd) and you start uniconv with cdb, the result will be = a corrupted CNID database, as the two backends use different locking = schemes. You might run into additional problems, e.g. if dbd is compiled with transaction - cdb will not update the transaction logs. In general, it is recommended to use the same backend for uniconv you = are using with afpd.=20 Regards, Bjoern |