rootwait
i rootdelay
są używane w sytuacjach, gdy system plików nie jest natychmiast dostępny, na przykład, jeśli został wykryty asynchronicznie lub zamontowany przez USB. Chodzi o to, że jeśli tak jest, to powinno być oczywiste na podstawie root
bootarg, więc dlaczego jądro nie może automatycznie zrozumieć, że musi czekać na pojawienie się systemu plików? Czy istnieją jakieś ograniczenia techniczne uniemożliwiające wdrożenie tej automatyzacji?
23
/dev/sda1
jest to urządzenie USB i czekasz chwilę lub/dev/sda1
jest w systemie SCSI, który musi skanować?Odpowiedzi:
Czasami system operacyjny nie potrafi odróżnić urządzenia peryferyjnego, które reaguje wolno, od urządzenia peryferyjnego, którego nie ma lub jest całkowicie zamknięte. Najbardziej oczywistym przykładem jest główny system plików pochodzący z sieci (TFTP, NFS), w którym powolne łącze sieciowe lub przeciążony serwer są trudne do odróżnienia od odciętego łącza sieciowego lub awarii serwera. Limit czasu informuje jądro, kiedy należy się poddać.
Może się tak również zdarzyć w przypadku dysków, które wolno się rozpędzają, macierzy RAID, które należy zweryfikować i tak dalej.
rootdelay
instruuje jądro, aby nie poddawało się natychmiast, jeśli urządzenie nie jest dostępne. Jądro nie może wiedzieć, czy dysk SCSI jest dyskiem lokalnym, czy jakąś wnęką RAID.rootwait
jest przewidziane, aby czekać bez końca. Nie zawsze jest to pożądane, na przykład system może chcieć wrócić do innego głównego systemu plików, jeśli normalny trwa zbyt długo, aby odpowiedzieć.źródło