> >> Moving the /var/spool/imap directories, and /var/lib/user/{}.seen >> files to the new server and reconstructing works fine except that all >> the >> mail shows up as "not read" on the new sever. > > The seen state is keyed on the mailbox "uniqueid", so if that changes, the > seen state becomes invalid. > > The mailbox uniqueid is based on the mailbox name + the uidvalidity value, > which is itself based on the time the mailbox is created, or recreated due > to a reconstruct. > > Now I thought reconstruct should preserve the mailbox uniqueid in most > cases, but it's possible it's not if you're not copying all the data > correctly. > > 1. Why are you reconstructing the mailboxes. If you copy all the right > data, > it should be fine without a reconstruct > 2. How are you copying the data? Recommend using rsync -az which will > preserve all the attributes + timestamps I recommend adding -H here when using single instance store. > 3. Are you using split data/meta data? If so, are you copying the metadata > as well? > 4. What flags are you passing to reconstruct? I can only second what Rob says. I have migrated several servers ranging from RedHat 7.2 to RHEL5 and doing constant Cyrus-IMAPd updates on them since the 2.1 days and never lost seen. Looks like copying only part of metadata is going to get you in trouble. A word about database rebuilds the Cyrus-IMAPd starts. There are two things: 1) Skiplist DB's are recovered whenever a DB is opened the first time after Cyrus-IMAPd was started. 2) My RPM's (Invoca) care to convert all DB's to the correct version on startup and also convert all BDB's to Skiplist on shutdown to prevent problems when migrating to a server with other BDB version. You seem to use the cyrus-imapd RPMs shipped with RHEL5 which are based on a old version of the Invoca RPMs. Simon ---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html