Thunderbird profile fails on changed profile folder mount path

Veracrypt 1.26.24 changed the default mount prefix from /mnt/veracrypt to /run/media/veracrypt within the recent Manjaro Stable update (appending X = number of the slot, 1..64).

For the Thunderbird profile folder I have a symbolic link /home/{user}/.thunderbird/{profilefolder} to /mnt/veracryptX/{path}/{profilefolder} for convenience.
~/.thunderbird/installs.ini and profiles.ini point just locally to {profilefolder}.
After TB first complained about missing profile I replaced the symbolic link by a new one to /run/media/veracryptX/{path}/{profilefolder} and hoped that would fix everything.

But TB, while still showing all accounts, only for a few of them shows the mail folders (two last of my ‘old’ POP3 accounts and two last of a bunch created later plus the Local folders). It seemed the profile was broken and all old mails lost…

   Accounts
  {user1}@{host1}       # no folderlist to open! #
  {user2}@{host2}
  {user3}@{host3}
  {user4}@{host4}
> {user5}@{host5} (nnn) # folders accessible, unread count shown #
> {user6}@{host6}   (n)
  ...

After I manually created the folder /mnt/veracryptX and had veracrypt mounting the container there, Thunderbird came back with all mail folders in place. (No additional mount options, just defaults.)

   Accounts
> {user1}@{host1} (nnn)
> {user2}@{host2} (nnn)
> {user3}@{host3} (nnn)
> {user4}@{host4}  (nn)
> {user5}@{host5} (nnn)
> {user6}@{host6}   (n)
> ...

Now I wonder what I am missing. In the shell the path traversal seems transparent:

$ cd {profilefolder}
$ pwd
/home/{user}/.thunderbird/{profilefolder}
$ ls
...                       # profile folder contents #
$ cd ..
$ pwd
/home/{user}/.thunderbird

I tried a different way using a bind-mount, but the effects are the same as with the symbolic link:

$ mkdir {profilefolder}
$ sudo mount -o bind /run/media/veracryptX/{path}/{profilefolder} /home/{user}/.thunderbird/{profilefolder}

- missing the same mail folders (i.e. most of them).

but

$ sudo mount -o bind /mnt/veracryptX/{path}/{profilefolder} /home/{user}/.thunderbird/{profilefolder}

- all in place.

Finally I used thunderbird --ProfileManager to create a ‘new’ profile and assigned directly the path to /run/media/veracryptX/{path}/{profilefolder} - these mail folders were missing again. But I had been convinced this should be the way for continued use of such a profile folder in a new installed system.

I did not yet try what happens if I physically copy the whole profile folder to ~/.thunderbird/, but my main question is what may cause thunderbird behave so differently depending on where the veracrypt container is mounted. The only differences I could spot are that the absolute path names are 6 characters longer, and Thunar (on XFCE) shows another device for the filesystem in the mounted container. All file systems are btrfs - I’d really be surprised if any of the files involved woud end up with a too long name including the absolute path.

Does Thunderbird read where the symbolic link points to and use behind the scenes the physical path, which it stores somewhere so that the path cannot be changed later? (And equally for the bind-mount?)
Or does possibly the pathname of my external storage (which carries the veracrypt container) somehow add to the length of the pathnames, leaving some files inaccessible? (It used to mount by GUID name as /dev/sdX1 on /run/media/{user}/{nnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnn}. But I just put a label on the file system, now it mounts on /run/media/{user}/{Lbl} - much shorter. TB behaves the same.)

All I’m worried about is that I break either my thunderbird profile or access to it because some parameter becomes essential that seemed easily changeable.

Any ideas much welcome, thanks!
Dirk

Do you have a reference for that?

It should be easy to alter / adapt the default if it changed.

Mount points under /mnt are persistent.
Mount points under /run/media are not.

Could be a permission problem due to that difference.

But I have no idea how you use veracrypt and don’t use veracrypt volumes myself (and never have).

The issue appears to be with thunderbird. I had the same issue when I changed just one character: I mounted my veracrypt volume to /mnt/veracryptY instead of /mnt/veracryptX and created a new symbolic link /home/{user}/.thunderbird/{profilefolder} to /mnt/veracryptY/{path}/{profilefolder} - again most mail folders were missing in TB. Somehow it seems to insist on the profile folder being accessible in /mnt/veracryptX/{path}/{profilefolder} which I’ve been using for a long time now.

Where can thunderbird have stored a reference to this veracrypt profile folder path that was always accessed through the symbolic link in /home/{user}/.thunderbird/{profilefolder}? It’s not in installs.ini or profiles.ini.

There it is: Settings - Change configuration - Search for: directory …

e.g.

mail.server.server1.directory       /mnt/veracryptX/{path}/{profilefolder}/Mail/{servername}
mail.server.server1.directory-rel   [ProfD]../../../../mnt/veracryptX/{path}/{profilefolder}/Mail/{servername}
mail.server.server2.directory       /home/{olduser}/.thunderbird/{profilefolder}/Mail/Local Folders
mail.server.server2.directory-rel   [ProfD]Mail/Local Folders

There are even entries with /home/{olduser} from ancient times before I moved to Manjaro when I was working with a different username.

So I’ll try to clean this up and hope that “directory” is the only key to these entries - “folder” or “path” did not find anything, and the search is only for config items, not for values.

Edit: After I changed all these “directory” entries to my actual profile folder under /home/{user}/.thunderbird/{profilefolder} and “directory-rel” to [ProfD]Mail/… or [ProfD]ImapMail/… the accounts with all mail folders are accessible without requiring anything to be present in /mnt/veracryptX. For some reason TB did not re-use the locally cached imap folder contents (for the imap accounts) but sync-ed everything from scratch.

+ Found this (and also corrected accordingly to /home/{user}/.thunderbird/):

mail.root.imap	    /home/{olduser}/.icedove/{profilefolder}/ImapMail	
mail.root.imap-rel	[ProfD]ImapMail
mail.root.none	    /home/{olduser}/.icedove/{profilefolder}/Mail	
mail.root.none-rel	[ProfD]Mail	
mail.root.pop3	    /home/{olduser}/.icedove/{profilefolder}/Mail	
mail.root.pop3-rel	[ProfD]Mail

+ In each account settings for Server - Local folder - TB still shows the actual now full path /run/media/veracryptX… - this may be the place from where the absolute paths came upon account creation (in the ‘full configuration’ are only the paths to /home/{user}/.thunderbird).

+ After creating now a folder /home/{user}/.thunderbird/{profilefolder} and sudo mount -o bind /run/media/veracryptX/{path}/{profilefolder} /home/{user}/.thunderbird/{profilefolder} I see in the account settings for Server - Local folder - finally the /home/… path. There is the difference between a symbolic link and a bind-mount from TB’s perspective; the bind-mount requires admin privileges, though.

So from this exercise I learned that there are quite some quirks if moving or sharing a thunderbird profile folder…

For excluding veracrypt as a cause I had veracrypt mounting my container on /run/media/veracryptY and created another symbolic link /mnt/veracryptX/{path}/{profilefolder} to /run/media/veracryptY/{path}/{profilefolder} - TB does work normally this way (through two symbolic links), and shows all mail folders; equally so with the link under .thunderbird altered to point to /run/media/… as long as /mnt/veracryptX/{path}/{profilefolder} is in place.
(It works as well with the container mounted to /mnt/veracryptY and sudo mount -o bind /mnt/veracryptY/{path}/{profilefolder} /mnt/veracryptX/{path}/{profilefolder} after manually creating the folders under veracryptX.)

Regarding your question about a reference for the changed default - in first place it is just my observation (in Manjaro stable XFCE) that - visibly in the GUI - without specifying a target any container was mounted previously to /mnt/veracryptX, now to /run/media/veracryptX and the “veracryptX” folder automatically created/deleted.

https://veracrypt.jp/en/Release Notes.html (https://veracrypt.io/en/Release Notes.html) states under “1.26.24 (May 30th, 2025)”:

Linux

  • Add support for /run/media/veracrypt as default mount prefix when /media is not available(GH #1524).

The built-in help (veracrypt -h) cites “/media” only in two examples (I did not find it elsewhere in the documentation):

Mount a volume:
veracrypt volume.hc /media/veracrypt1
...
Mount a volume prompting only for its password:
veracrypt -t -k "" --pim=0 --protect-hidden=no volume.hc /media/veracrypt1

The veracrypt GUI saves some settings in /home/{user}/.config/VeraCrypt/Configuration.xml, but there is no option for the default prefix.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.