科技 · 实用指南
Thunderbird 迁移后文件夹不见了?再次复制前先比对两棵数据树
再次复制 Thunderbird 配置前,先生成只读的逐字节清单,安全区分缺失的邮件数据、发生变化的文件和配置路径不一致。

迁移 Thunderbird 配置本应保留邮件、设置和文件夹,但有时复制看似成功,本地文件夹或邮件却消失了。在再次覆盖任何一份副本前,先固定证据:关闭 Thunderbird,保持原始数据树不变,再对原始树与目标树做逐字节比对。
Mozilla 的标准迁移流程仍是首选:关闭 Thunderbird、复制完整的 Thunderbird 数据文件夹、保持版本一致;若配置位于其他位置,则使用配置管理器或 `profiles.ini`。下面的审计不会取代这些步骤,它只回答一个更窄的问题:哪些文件完全相同、哪些已变化、哪些未复制到目标端,以及哪些只存在于目标端?
先保存两棵数据树
1. 关闭两台电脑上的 Thunderbird。不要在程序仍可能改写数据库、索引或锁文件时扫描配置。 2. 在尝试其他修复前,为原始数据单独制作备份。电脑上的 Thunderbird 配置本身不等于备份。 3. 确认正确的根目录。Windows 默认漫游数据树位于 `%APPDATA%\Thunderbird`;macOS 通常位于 `~/Library/Thunderbird`;Linux 通常位于 `~/.thunderbird`。若使用自定义路径,请在“故障排除信息”或配置管理器中核实,不要猜测。 4. 把 CSV 输出放在两棵数据树之外。工具会拒绝写入任一被扫描目录。
比对过程不会修改两棵数据树。它跳过符号链接和 Thunderbird 的临时锁文件,并以 1 MiB 分块计算普通文件的哈希。SHA-256 一致只说明该文件的字节一致,不能证明 Thunderbird 当前打开的就是所选配置。
运行经过测试的审计工具
把随稿 Python 脚本保存为 `thunderbird_profile_tree_audit.py`。使用 Python 3,并传入三个参数:原始根目录、复制后的目标根目录,以及位于两棵树之外的新 CSV 文件名。
```text python3 thunderbird_profile_tree_audit.py "/path/to/original/Thunderbird" "/path/to/copied/Thunderbird" "/path/to/reports/thunderbird-audit.csv" ```
在 Windows 上可用 `py -3` 代替 `python3`。若希望把 `profiles.ini` 与 `installs.ini` 一并纳入,请选择外层 Thunderbird 数据目录;只有在明确需要逐配置比对时,才选择两个准确的配置目录。不要拿一个外层目录与一个内层配置目录比较,因为相对路径代表的是不同结构。
脚本已用合成数据树测试四种主要状态:`same`、`changed`、`missing-from-destination` 和 `only-in-destination`。测试还验证了准确的 SHA-256、角色分类、跨平台路径处理,以及禁止把报告写进输入树。测试没有改动真实邮箱、服务器账户或 Thunderbird 界面。
按正确顺序读清单
先查看 `missing-from-destination`,再查看 `changed`,并按 `role` 列筛选:
- `profile-control` 包括 `profiles.ini` 与 `installs.ini`。不一致可能说明 Thunderbird 打开了另一个配置,但只有在遵循 Mozilla 配置管理器或 `profiles.ini` 指南后才应修改路径。 - `mail-data` 包括 `Mail` 或 `ImapMail` 下的文件。POP 与“本地文件夹”可能含有仅存在本机的数据。IMAP 树可能主要是可由服务器重建的缓存,因此不要把每个缺失的 IMAP 缓存文件都当成服务器邮件已丢失。 - `mail-index` 包括 `.msf` 文件。它们是索引,不能替代对应的邮箱数据。缺失或变化的索引不应被计作缺失的邮件存储。 - `address-book` 标记常见的通讯录 SQLite 文件;`other-profile-data` 包含无法安全归入以上类别的其他内容。
`same` 表示字节数与 SHA-256 都一致;`changed` 表示大小或哈希至少有一项不同。时间戳只作背景信息,不参与相等判断。`only-in-destination` 可能是合法的新状态,绝不能为了让两棵树看起来一致而直接删除。
在不破坏证据的前提下决定下一步
若 `profiles.ini` 或 `installs.ini` 指向的配置与复制的配置不同,请通过受支持的配置工具纠正选择。若目标端缺少 `mail-data` 文件,请使用保留下来的源数据和独立备份,重新按官方“关闭应用后复制完整数据树”的流程操作。若只有索引不同,先检查对应的邮件数据行,再考虑重建索引。
如果源数据本身不完整、无法确认 Thunderbird 曾使用哪个配置,或扫描期间文件仍在变化,请立即停止。清单不能恢复已删除数据、解密凭据、读取邮件内容、选择权威副本,也不能证明服务器上还保留哪些邮件。它只是为谨慎的下一步提供证据地图,不是自动修复器。
完成任何受支持的迁移后,打开 Thunderbird,核对预期账户与文件夹。在结果确认前保留原始备份和 CSV。若清单与界面显示不一致,请同时保存两者并寻求针对该配置的支持,不要反复覆盖仅存的副本。
