次のエラー メッセージが表示されました/var/mail/mail.err
:
Jun 14 00:03:42 max dovecot: IMAP(bernhard):
Corrupted index cache file /home/bernhard/Mail/.indexes/.imap/INBOX/dovecot.index.cache:
Broken virtual size for mail UID 5618
インデックスを復元するための推奨される方法は何ですか?
答え1
このスレッドによると:IMAP Dovecot エラー - インデックス キャッシュが破損しています 10.6.4以下のことを行うだけでよいようです:
スクライブ
Re: IMAP Dovecot エラー - インデックス キャッシュが破損しています 10.6.4
2010 年 11 月 30 日 午前 11:10 (Scribit への返信)
これが最善の手順であるかどうかはわかりませんし、意図しない結果が生じる可能性もありますが、問題を解決するために私が行ったのはこれです。
メールサービスを停止しました。
シェルから、問題が報告された各ディレクトリに移動しました。
これらのディレクトリで、次のファイルの名前を先頭に「old」を付けて変更しました。
dovecot.index dovecot.index.cache dovecot.index.log
例:
mv dovecot.index old.dovecot.index
その後、メール サービスを再起動しました。クライアント アクセスの各 IMAP フォルダーに対して、これらの 3 つのファイルが再作成されました。
答え2
インデックス ファイルを復元する最も簡単な方法は次のようになります。
Dovecotを停止する
sudo systemctl stop dovecot
影響を受けるユーザーの .imap フォルダ全体を名前変更または削除します (削除をお勧めしますが、慎重な人はそう思わないかもしれません)
sudo rm -R /home/bernhard/Mail/.indexes/.imap/
Dovecotを起動する
sudo systemctl start dovecot
メールボックスがチェックされると、Dovecot は、以前に見たことのない新しいメールボックスであるかのように、何の遅れもなくインデックスを再作成します。
答え3
私も同じ問題を抱えていました。削除してdovecot.index
も機能しません。一部の破損した電子メール ファイルによって dovecot.index が再び破損したためです。
例:
Error: Corrupted record in index cache file /home/user/mail/domain/username/.INBOX/dovecot.index.cache: UID 1227: Broken virtual size in mailbox INBOX: read(/home/user/mail/domain/username/.INBOX/cur/1600772501.M603394P22807.paxaa.host.com,S=9099624,W=9217854:2,S): FETCH BODY[] got too little data: 2846393 vs 9217854
最終的に、dovecot.index を破損したメールのバックアップからメールを削除/復元することができました。