SDカードのext4ファイルシステムに対するlazy_itable_init=1に関連するリスク

SDカードのext4ファイルシステムに対するlazy_itable_init=1に関連するリスク

私の設定は次のとおりです。

  • Linuxカーネル 2.6.28
  • e2fsprogs 1.42.7
  • 64GBクラス10 SDカード

カード全体をext4ファイルシステムにフォーマットするのにかかる時間を短縮しようとしています。私の研究では、mkfs.ext4のlazy_itable_init = 1オプションを指摘しました。私が正しく理解した場合、これらのオプションはSDカードのパーティションフォーマットの速度を大幅に向上させますが、これはファイルシステムが最初にマウントされるまでinodeの初期化を延期することによって達成されます。その後、カーネルはバックグラウンドでこの初期化を実行します(v2.6.27+のみ)。

マニュアルページには、このオプションに関する次の文があります。

この[フラグ]はファイルシステムの初期化速度を大幅に向上させますが、ファイルシステムが最初にマウントされたときにカーネルはバックグラウンドでファイルシステムの初期化を完了する必要があります。

私の質問は、カーネルがバックグラウンドでファイルシステムの初期化を完了しないとどうなりますか?

私はlazy_itable_init = 1オプションでフォーマットし、ファイルシステムをマウントした後、すぐにSDカードを取り外してそれをテストしました。カードを再接続すると、パーティションをマウントし、ゼロを含む複数の100 MBファイルを問題なく書き込むことができます。この内容をもう一度読んでみてください。

これはただ偶然ですか?一連のイベントの後、この動作は保証されますか?

答え1

inodeテーブルが0に初期化される理由は、以前に発生したゴミが有効なinodeとして誤って解釈されないようにするためですe2fsck。通常、違いはありませんが、e2fsckエラーが検出された場合は、ビットマップが使用中であることを示すかどうかにかかわらず、経験的にinodeを識別して回復を試みることができるため、削除する必要がある誤ったinodeを回復しようとすることができます。このinodeは/紛失+発見されました。

関連情報