web-dev-qa-db-ja.com

rootwait / rootdelayのポイントは何ですか?

rootwaitrootdelayは、ファイルシステムが非同期で検出されたり、USB経由でマウントされたりした場合など、ファイルシステムがすぐに利用できない場合に使用されます。実は、そうであるかどうかはroot bootargに基づいて明らかであるはずです。それで、ファイルシステムが表示されるのを待つ必要があることをカーネルが自動的に認識できないのはなぜですか。この自動化の実装を妨げる技術的な制約はありますか?

23
EpsilonVector

OSは、応答が遅いペリフェラルと、そこにない、または完全に接続されていないペリフェラルを区別できない場合があります。最も明白な例は、ネットワーク(TFTP、NFS)からのルートファイルシステムであり、遅いネットワークリンクや過負荷のサーバーを、切断されたネットワークリンクやクラッシュしたサーバーと区別するのが困難です。タイムアウトは、いつ中止するかをカーネルに通知します。

これは、起動が遅いディスク、検証が必要なRAIDアレイなどでも発生します。 rootdelayは、デバイスが利用できない場合にすぐにあきらめないようにカーネルに指示します。カーネルは、SCSIドライブがローカルディスクであるか、何らかのRAIDベイであるかを認識できません。

rootwaitは無期限に待機するために提供されています。たとえば、通常のシステムが応答に時間がかかりすぎる場合、システムが別のルートファイルシステムにフォールバックしたい場合があります。