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


23

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


1
カーネルはファイルシステムが現れるのを待っていると思います。問題は、ドライバがパーティションテーブルを読み取った後でも初期化に時間がかかるため、表示された直後にマウントできないことです。
ビクラマン

1
ルートbootargで明らかになるのはなぜですか?それ/dev/sda1がUSBデバイスであり、しばらく待っているか、/dev/sda1スキャンする必要のあるscsiシステム上にあることをどのように知っていますか?
ウルリッヒダンジェル

1
Raspberry Piでは、待たないとルートをマウントできない場合があります。これは、デバイスが遅いカードを時間内に初期化するのに十分なほど高速ではない可能性があるためです。
タマラWijsman

回答:


21

OSは、応答が遅い周辺機器と、存在しない周辺機器または完全に接続されていない周辺機器を区別できない場合があります。最も明白な例は、ネットワーク(TFTP、NFS)からのルートファイルシステムです。低速のネットワークリンクまたは過負荷のサーバーは、切断されたネットワークリンクまたはクラッシュしたサーバーと区別するのが困難です。タイムアウトは、カーネルにいつ放棄するかを指示します。

これは、スピンアップが遅いディスク、検証が必要なRAIDアレイなどでも発生する可能性があります。rootdelayデバイスが利用できない場合、すぐにgiveめないようにカーネルに指示します。カーネルは、SCSIドライブがローカルディスクまたはある種のRAIDベイであるかどうかを知ることができません。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.