rootwait
und rootdelay
werden 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 root
Bootarg 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?
23
/dev/sda1
es sich um ein USB-Gerät handelt und dass du eine Weile gewartet hast oder dass/dev/sda1
es sich um ein SCSI-System handelt, das gescannt werden muss?Antworten:
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.
rootdelay
weist 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.rootwait
ist 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.quelle