科技 · 實用指南
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。若清單與使用者介面顯示不一致,請同時保存兩者並尋求針對該設定檔的支援,不要反覆覆寫僅存的副本。
