When doing migration, it is very useful to construct a temporary 
dovecot-migration.conf which lacks *any* automatic mailbox creation and has 
only the bare minimum you need (sieve needs to be configured, and mailbox 
attributes). This means no autocreate/autosubscribe loaded, and no auto=create 
or auto=subscribe in namespace config. It is recommended not to have any 
mailbox Name entries in your namespace config.

You should use doveadm -c /path/to/dovecot-migration.conf backup command on 
initial sync.

The mailboxes must not exist before you do initial sync, if they do, you run 
into troubles.

I tried what you said, no autocreate/autosubscribe... etc., but none of my tests with minimal migration config changed anything in the GUID behavior.

No folders for the users existed before this command.

doveadm -D -v -c minimal-conf backup -R -u USER imapc: > output 2>&1

doveadm(USER): Debug: Effective uid=500, gid=500, home=/srv/mail/v/USER
doveadm(USER): Debug: Namespace : type=private, prefix=, sep=/, inbox=yes, 
hidden=no, list=yes, subscriptions=yes location=mdbox:/srv/mail/v/USER
doveadm(USER): Debug: fs: root=/srv/mail/v/USER, index=, indexpvt=, control=, 
inbox=, alt=
doveadm(USER): Debug: Namespace : Using permissions from /srv/mail/v/USER: 
mode=0700 gid=default
dsync(USER): Debug: Effective uid=500, gid=500, home=/srv/mail/v/USER
dsync(USER): Debug: Namespace : type=private, prefix=, sep=/, inbox=yes, 
hidden=no, list=yes, subscriptions=yes location=imapc:
dsync(USER): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Created new 
connection
dsync(USER): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Looking up IP 
address (reconnect_ok=true, last_connect=1610467047)
dsync(USER): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Connecting to 
137.250.1.99:143
dsync(USER): Info: imapc(zitrone.rz.uni-augsburg.de:143): Connected to 
137.250.1.99:143 (local 137.250.1.121:41094)
dsync(USER): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Server capabilities: 
IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN 
AUTH=LOGIN
dsync(USER): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Authenticating as 
admin for user USER
dsync(USER): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Server capabilities: 
IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY 
THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS 
LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN 
CONTEXT=SEARCH LIST-STATUS QUOTA
dsync(USER): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Authenticated 
successfully
dsync(USER): Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt=
dsync(USER): Debug: brain S: Local mailbox tree: Trash 
guid=7f5af7ba291b2df1a11d573bdb55d7e9 uid_validity=1598518510 uid_next=434 
subs=yes last_change=0 last_subs=0
dsync(USER): Debug: brain M: Remote mailbox tree: Trash 
guid=7f5af7ba291b2df1a11d573bdb55d7e9 uid_validity=1598518510 uid_next=434 
subs=yes last_change=0 last_subs=0
dsync(USER): Debug: brain S: Local mailbox tree: Sent 
guid=bfb2e03fdce327671e82bf173b1ccb8b uid_validity=1598518508 uid_next=220 
subs=yes last_change=0 last_subs=0
dsync(USER): Debug: brain M: Remote mailbox tree: Sent 
guid=bfb2e03fdce327671e82bf173b1ccb8b uid_validity=1598518508 uid_next=220 
subs=yes last_change=0 last_subs=0
dsync(USER): Debug: brain S: Local mailbox tree: Drafts 
guid=e0187b65e763143666d22094cedfe6a4 uid_validity=1598518507 uid_next=10 
subs=yes last_change=0 last_subs=0
dsync(USER): Debug: brain M: Remote mailbox tree: Drafts 
guid=e0187b65e763143666d22094cedfe6a4 uid_validity=1598518507 uid_next=10 
subs=yes last_change=0 last_subs=0
dsync(USER): Debug: brain S: Local mailbox tree: INBOX 
guid=c92f64f79f0d1ed01e6d5b314f04886c uid_validity=1598518506 uid_next=1049 
subs=no last_change=0 last_subs=0
dsync(USER): Debug: brain M: Remote mailbox tree: INBOX 
guid=c92f64f79f0d1ed01e6d5b314f04886c uid_validity=1598518506 uid_next=1049 
subs=no last_change=0 last_subs=0
...


for user in USER; do echo $user ; for mailbox in `ls /srv/mail/v/$user/mailboxes/`; do echo $mailbox; doveadm search -u $user mailbox $mailbox ALL | head -n 1; done ; done
USER
Drafts
INBOX
c92f64f79f0d1ed01e6d5b314f04886c 28
Junk
Sent
bfb2e03fdce327671e82bf173b1ccb8b 1
Trash
7f5af7ba291b2df1a11d573bdb55d7e9 1


doveadm -D -v -c minimal-conf backup -R -u USER2 imapc: > output 2>&1

doveadm(USER2): Debug: Effective uid=500, gid=500, home=/srv/mail/v/USER2
doveadm(USER2): Debug: Namespace : type=private, prefix=, sep=/, inbox=yes, 
hidden=no, list=yes, subscriptions=yes location=mdbox:/srv/mail/v/USER2
doveadm(USER2): Debug: fs: root=/srv/mail/v/USER2, index=, indexpvt=, control=, 
inbox=, alt=
doveadm(USER2): Debug: Namespace : Using permissions from /srv/mail/v/USER2: 
mode=0700 gid=default
dsync(USER2): Debug: Effective uid=500, gid=500, home=/srv/mail/v/USER2
dsync(USER2): Debug: Namespace : type=private, prefix=, sep=/, inbox=yes, 
hidden=no, list=yes, subscriptions=yes location=imapc:
dsync(USER2): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Created new 
connection
dsync(USER2): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Looking up IP 
address (reconnect_ok=true, last_connect=1610467389)
dsync(USER2): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Connecting to 
137.250.1.99:143
dsync(USER2): Info: imapc(zitrone.rz.uni-augsburg.de:143): Connected to 
137.250.1.99:143 (local 137.250.1.121:41100)
dsync(USER2): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Server 
capabilities: IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE 
STARTTLS AUTH=PLAIN AUTH=LOGIN
dsync(USER2): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Authenticating as 
admin for user USER2
dsync(USER2): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Server 
capabilities: IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT 
SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN 
NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT 
SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS QUOTA
dsync(USER2): Debug: imapc(zitrone.rz.uni-augsburg.de:143): Authenticated 
successfully
dsync(USER2): Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt=
dsync(USER2): Debug: brain S: Local mailbox tree: INBOX 
guid=c92f64f79f0d1ed01e6d5b314f04886c uid_validity=1600955712 uid_next=105 
subs=no last_change=0 last_subs=0
dsync(USER2): Debug: brain S: Local mailbox tree: Trash 
guid=7f5af7ba291b2df1a11d573bdb55d7e9 uid_validity=1600955716 uid_next=33 
subs=yes last_change=0 last_subs=0
dsync(USER2): Debug: brain M: Remote mailbox tree: INBOX 
guid=c92f64f79f0d1ed01e6d5b314f04886c uid_validity=1600955712 uid_next=105 
subs=no last_change=0 last_subs=0
dsync(USER2): Debug: brain M: Remote mailbox tree: Trash 
guid=7f5af7ba291b2df1a11d573bdb55d7e9 uid_validity=1600955716 uid_next=33 
subs=yes last_change=0 last_subs=0
dsync(USER2): Debug: brain S: Local mailbox tree: Sent 
guid=bfb2e03fdce327671e82bf173b1ccb8b uid_validity=1600955714 uid_next=9 
subs=yes last_change=0 last_subs=0
dsync(USER2): Debug: brain M: Remote mailbox tree: Sent 
guid=bfb2e03fdce327671e82bf173b1ccb8b uid_validity=1600955714 uid_next=9 
subs=yes last_change=0 last_subs=0
dsync(USER2): Debug: brain S: Local mailbox tree: Drafts 
guid=e0187b65e763143666d22094cedfe6a4 uid_validity=1600955713 uid_next=5 
subs=yes last_change=0 last_subs=0
dsync(USER2): Debug: brain M: Remote mailbox tree: Drafts 
guid=e0187b65e763143666d22094cedfe6a4 uid_validity=1600955713 uid_next=5 
subs=yes last_change=0 last_subs=0
dsync(USER2): Debug: brain S: Local mailbox tree: Junk 
guid=87680557f26fcb26843f739f7427e8c4 uid_validity=1600955715 uid_next=1 
subs=yes last_change=0 last_subs=0
dsync(USER2): Debug: brain M: Remote mailbox tree: Junk 
guid=87680557f26fcb26843f739f7427e8c4 uid_validity=1600955715 uid_next=1 
subs=yes last_change=0 last_subs=0
dsync(USER2): Debug: brain M: Mailbox Drafts: 
local=00000000000000000000000000000000/0/0, 
remote=e0187b65e763143666d22094cedfe6a4/0/1: mailbox not selectable yet
dsync(USER2): Debug: brain M: Mailbox INBOX: 
local=00000000000000000000000000000000/0/0, 
remote=c92f64f79f0d1ed01e6d5b314f04886c/0/1: mailbox not selectable yet
dsync(USER2): Debug: brain M: Mailbox Junk: 
local=00000000000000000000000000000000/0/0, 
remote=87680557f26fcb26843f739f7427e8c4/0/1: mailbox not selectable yet
dsync(USER2): Debug: brain M: Mailbox Sent: 
local=00000000000000000000000000000000/0/0, 
remote=bfb2e03fdce327671e82bf173b1ccb8b/0/1: mailbox not selectable yet
dsync(USER2): Debug: brain M: Mailbox Trash: 
local=00000000000000000000000000000000/0/0, 
remote=7f5af7ba291b2df1a11d573bdb55d7e9/0/1: mailbox not selectable yet
dsync(USER2): Debug: Namespace : /srv/mail/v/USER2/mailboxes/Drafts doesn't 
exist yet, using default permissions
dsync(USER2): Debug: Namespace : Using permissions from /srv/mail/v/USER2: 
mode=0700 gid=default
dsync(USER2): Debug: Namespace : /srv/mail/v/USER2/mailboxes/INBOX doesn't 
exist yet, using default permissions
dsync(USER2): Debug: Namespace : Using permissions from /srv/mail/v/USER2: 
mode=0700 gid=default
dsync(USER2): Debug: Namespace : /srv/mail/v/USER2/mailboxes/Junk doesn't exist 
yet, using default permissions
dsync(USER2): Debug: Namespace : Using permissions from /srv/mail/v/USER2: 
mode=0700 gid=default
dsync(USER2): Debug: INBOX: Mailbox opened because: copy caching decisions
dsync(USER2): Debug: Namespace : /srv/mail/v/USER2/mailboxes/Sent doesn't exist 
yet, using default permissions
dsync(USER2): Debug: Namespace : Using permissions from /srv/mail/v/USER2: 
mode=0700 gid=default
dsync(USER2): Debug: INBOX: Mailbox opened because: copy caching decisions
dsync(USER2): Debug: Namespace : /srv/mail/v/USER2/mailboxes/Trash doesn't 
exist yet, using default permissions
dsync(USER2): Debug: Namespace : Using permissions from /srv/mail/v/USER2: 
mode=0700 gid=default
dsync(USER2): Debug: INBOX: Mailbox opened because: copy caching decisions
...


for user in USER2; do echo $user ; for mailbox in `ls /srv/mail/v/$user/mailboxes/`; do echo $mailbox; doveadm search -u $user mailbox $mailbox ALL | head -n 1; done ; done
USER2
Drafts
INBOX
c92f64f79f0d1ed01e6d5b314f04886c 28
Junk
Sent
bfb2e03fdce327671e82bf173b1ccb8b 1
Trash
7f5af7ba291b2df1a11d573bdb55d7e9 1


which options in dovecot config specifically must be set so that imapc adopts the GUID it gets from the server its migrating from.


thanks
Thomas

Reply via email to