Thunderbird プロファイルの修復


最初に書いておくと、これは原因となったファイルが特定できて、それを修復したという話。厳密にはデータを完全に回復できたわけではない。原因の部分はこのページに赤字で書いておくので、クドクドとした前置きが不要なら、その辺まで読み飛ばしてね。

※究極的な原因はHDDのセクタ不良。→HDD換装 改訂版

<症状と原因の模索>

とある日、メールをチェックしていると、Thunderbirdが急に重くなってきた。
再起動しても固まってしまう。

そこで、「ファイル名を指定して実行」から、[thunderbird.exe -p]と、プロファイルマネージャーを起動、別プロファイルで起動してみると、問題がない。
つまり、これまで使用してきたプロファイルのどこかが壊れ、起動しなくなったようだと推測出来る。

<対処法の模索1…前置き>

問題は、どうやってこれまでの環境を修復するか。
新しく作成したプロファイルにこれまでのデーターを手動で一つ一つ移動させ、メールの振り分けなどの設定を全て一からやりおす、というのは面倒なので、壊れたプロファイルの原因を特定して、必要最小限の修正ですましたい

ネットで解法を探ると、「(Thunderbirdで作成したバックアップからの復元」などというものが、「修復」と銘打って紹介されているが、そんなものは本来の「修復」とは言えない。それは単なる「置き換え」。そんなものをわざわざ取っていないから困っている。
また別のサイトでは、Vista以降のWindowsで採用された、「シャドーコピー」でフォルダごと復旧させるという手が紹介されていた。
これは確かに盲点的なものではあるものの、そんな機能は当然無効にしている。大量のディスク容量が必要になる機能だからである。
さらに、Tunderbirdのオンラインヘルプには、グローバル検索データベースの再構築という項目がある。これは検索用のdbファイルであるから、起動しない症状とは一致しないようだが、一応やってみる、がやはり改善しない。

<対処法の模索2>

ところで、Thunderbirdメールデータは.msfという(生のメールデータとは別の)ファイルで管理されている。これはメールデータのファイル内の検索などを容易にする「インデックスファイル」と呼ばれるものの一種。
メールのデータそのものは含んでおらず、実は消してしまってもかまわない。
ただ、これが原因となって動作パフォーマンスが落ちるということはある。仮にパフォーマンスの低下の究極の形が「固まる」症状だとすれば、今回のトラブルの原因がこの.msfファイル破損の可能性もある。
そこで、固まったThunderbirdを終了し、該当プロファイル以下の、.msfファイルを全てプロファイル内から削除(別フォルダに移動)してみる。が、やはり症状は改善しない
原因は.msfファイルにはないということ。

<解決に至った対処>

今更ながら、その症状が現れ始めたタイミングを思い起こしてみると、とあるアカウントのメールを弄ったところから、Thunderbirdの反応がおかしくなったことを思い出した。
障害が発生した当初の状況を確認することは、常に問題の切り分けにとって有用だ

そして、このThunderbirdの起動不能の症状が現れはじめ、それを調べていた最中、同じディスクにアクセスする他のソフト(Explorerを含め)も著しくパフォーマンスが低下することにも気づいた。
(追記 TaskmanからCPU使用率、メモリ使用率、ディスクアクセスなど、PCの負荷状態も確認すること。原因の特定の助けになる)
「原因はディスク自体に不良セクタのようだ」と半ば確信し、固まったThunderbirdを終了して、プロファイルフォルダの見直しをした。

原因が不良セクタであれば、特定のファイルへのアクセスに問題を生じているはずなので、該当ファイルを探し出さねばならない。
症状の発生するタイミングから、当たりをつけてゆく

問題発生場所特定

当初の症状の発生状況からして、メールデータそのものが怪しかったので確認する

メールデータは、以下のように配置されている
 プロファイル以下[Mail]フォルダ>アカウントのサーバー名に関連した名前のフォォルダ
    >mboxの拡張形式のファイル=Thunderbird上で作成したフォルダ毎に一つのファイル

症状の発生当時にいじっていたアカウントのinboxに該当するファイルをチェックしてみると、推測通り、該当アカウントのメールデーターファイル「Inbox」が読み込みにくい状態にあることが発覚した。ファイルのコピーも取れない状態になっている。
原因はこのinboxのデータファイルで確定だ
Thunderbirdのメールデータはテキストデータなので、テキストエディタで読み込める。
読み込んでみると、「一部だけ」読み込む事ができたものの、ファイルの後半は失われている不完全な状態になっていた
今回はそのInboxメールデータ自体は、サーバに残っているデータである程度回復可能
そして、他アカウントを含めて、Thunderbirdの利用をすぐにでも回復したい事情から
このinboxファイルは破棄して新たに作成することとした

根本的な原因とその対処

ファイルが読み取りにくくなっている原因は、「不良セクタ」と推定される
であるとするなら、そのまま消すだけでは、他に問題が派生しかねない。
すなわち、このファイルを消すと、そのファイルがディスク上で使用していた物理的な場所が解放されてしまい、その後何か別のファイルの書き込みが行われれば、解放された物理領域が再利用されかねない
そこでこのファイルは「消去」はせず、代わりに普段アクセスしない別の場所に「移動」させることにした。
chkdiskをかけてファイルシステムの不具合を修復するのは、すべてが終わったあと
 ※chkdskは不良領域を使用しないようファイルシステムを調整してくれる

  • 新たなinboxファイルを、元ファイルの読み取り可能な部分だけコピペして生成し、プロファイルの該当フォルダに配置した。
 問題のあるinboxファイルの読み込めなかった部分は、データ自体が壊れてて回復しようもない

ただ、原因が不良セクタである可能性が高いので、こちらには早いうちに対応する必要があるだろう。HDDのS.M.A.R.T情報を確認し、末期症状であればHDDを交換することになる

※不良セクタを含むHDDからのデータ救出は →HDD換装 改訂版
 上記方法でコピーした後、windows上で新しいディスクにchkdskをかければ、物理的に壊れた部分のまさにそこに記録されていたファイルでもlost+foundフォルダに現れるかもしれない
 どうしても失いたくない情報がある場合は、ファイナルデータEsusのソフトのようなファイル復活ソフトに頼るしかないだろうが、メールデータ1ファイルだけのためにというのも何か納得はいかない

<解決>

そして、inboxファイルの読める分だけコピーしたファイルを新たにプロファイル内に配置し、Thunderbirdを起動してみると…起動成功。

<後処理>

しかしあわててはいけない
一旦終了して、意味なくいじりまわした部分は戻しておかなければならない。
先ほど.msfファイルを削除したが、これはどうせ勝手に生成されるのでかまわない。
ただ、該当アカウントのInboxの.msfについては原因と「無関係」だと判明した。
これは面倒でなければ元に戻しておくことにする。
原因となったInboxの.msfだけは、inboxを新しくしたので、とりあえずinboxとセットで待避・確保しておく。
該当のアカウントのInboxから消えた後半(最新)部分のメールは、サーバーに残っている分だけは受信し直せばいい。

そして修復終了。

今回の自分の場合は、これで回復することが出来た。

追記…やっぱり原因は「不良セクタ」だった
WDのGreenの3TBを3年ほどほぼ常時起動で運用してきたので、仕様からして仕方ないといったところ。
むしろ、まったく読めなくなったわけではなく、ほんの一部分の不具合で済んだことに感謝すべきかもしれない。

途中にもリンクしたが、不良セクタの出たHDDからのデータ救出については →HDD換装 改訂版



何かの縁でこの駄文を読んでくれた人、おそらくメールに関する何らかのトラブルにあってたどり着いたことかと。この走り書きがそのトラブル解決の一助となれば。
最終更新:2020年03月18日 04:59