Was bringt rootwait / rootdelay?

23

rootwaitund rootdelaywerden in Situationen verwendet, in denen das Dateisystem nicht sofort verfügbar ist, z. B. wenn es asynchron erkannt oder über USB eingehängt wird. Die Sache ist, es sollte basierend auf dem rootBootarg offensichtlich sein, ob dies der Fall ist oder nicht. Warum kann der Kernel dann nicht automatisch erkennen, dass er warten muss, bis das Dateisystem erscheint? Gibt es einige technische Einschränkungen, die die Implementierung dieser Automatisierung verhindern?

EpsilonVector
quelle
1
Ich denke, der Kernel wartet darauf, dass das Dateisystem erscheint. Das Problem ist, dass es nicht bereitgestellt werden kann, sobald es angezeigt wird, da der Treiber auch nach dem Lesen der Partitionstabelle einige Zeit zum Initialisieren benötigt.
Vikraman
1
Warum ist es auf dem Root-Bootarg offensichtlich? Woher weißt du, dass /dev/sda1es sich um ein USB-Gerät handelt und dass du eine Weile gewartet hast oder dass /dev/sda1es sich um ein SCSI-System handelt, das gescannt werden muss?
Ulrich Dangel
1
Wenn Sie auf einem Raspberry Pi nicht warten, können Sie möglicherweise nicht root mounten. Dies liegt daran, dass das Gerät möglicherweise nicht schnell genug ist, um die langsame Karte rechtzeitig zu initialisieren.
Tamara Wijsman

Antworten:

21

Manchmal kann das Betriebssystem ein Peripheriegerät, das nur langsam reagiert, nicht von einem Peripheriegerät unterscheiden, das nicht vorhanden oder vollständig abgespritzt ist. Das offensichtlichste Beispiel ist ein Root-Dateisystem aus dem Netzwerk (TFTP, NFS), bei dem eine langsame Netzwerkverbindung oder ein überlasteter Server nur schwer von einer abgetrennten Netzwerkverbindung oder einem abgestürzten Server zu unterscheiden ist. Ein Timeout teilt dem Kernel mit, wann er aufgeben soll.

Dies kann auch bei Festplatten passieren, die sich nur langsam drehen, bei RAID-Arrays, die überprüft werden müssen usw. rootdelayweist den Kernel an, nicht sofort aufzugeben, wenn das Gerät nicht verfügbar ist. Der Kernel kann nicht wissen, ob es sich bei einem SCSI-Laufwerk um eine lokale Festplatte oder eine Art RAID-Schacht handelt.

rootwaitist vorgesehen, auf unbestimmte Zeit zu warten. Es ist nicht immer wünschenswert, zum Beispiel möchte ein System möglicherweise auf ein anderes Root-Dateisystem zurückgreifen, wenn das normale zu lange dauert, um zu antworten.

Gilles 'SO - hör auf böse zu sein'
quelle