В чем смысл rootwait / rootdelay?

23

rootwaitи rootdelayиспользуются в ситуациях, когда файловая система недоступна сразу, например, если она обнаружена асинхронно или смонтирована через usb. Дело в том, что это должно быть очевидно на основе rootбутарга, если это так или нет, так почему же ядро ​​не может автоматически понять, что ему нужно ждать появления файловой системы? Существуют ли какие-то технические ограничения, препятствующие внедрению этой автоматизации?

EpsilonVector
источник
1
Я думаю, что ядро ​​действительно ожидает появления файловой системы. Проблема заключается в том, что его нельзя смонтировать сразу же после его появления, поскольку драйверу требуется некоторое время для инициализации даже после чтения таблицы разделов.
Викраман
1
Почему на руте bootarg это очевидно? Откуда вы знаете, что /dev/sda1это USB-устройство, и вам нужно подождать какое-то время или это /dev/sda1происходит в системе SCSI, которая должна сканировать?
Ульрих Дангел
1
На Raspberry Pi, если вы не будете ждать, вы не сможете смонтировать root; Это связано с тем, что устройство может быть недостаточно быстрым для своевременной инициализации медленной карты.
Тамара Вийсман

Ответы:

21

Иногда ОС не может отличить периферийное устройство, которое медленно реагирует, от периферийного устройства, которое отсутствует или полностью подключено. Наиболее очевидным примером является корневая файловая система, поступающая из сети (TFTP, NFS), где медленное сетевое соединение или перегруженный сервер трудно отличить от разорванного сетевого соединения или сбойного сервера. Тайм-аут сообщает ядру, когда следует сдаться.

Это также может произойти с дисками, которые медленно вращаются, массивами RAID, которые необходимо проверить, и так далее. rootdelayуказывает ядру не сдаваться немедленно, если устройство недоступно. Ядро не может знать, является ли диск SCSI локальным диском или чем-то вроде отсека RAID.

rootwaitпредоставляется ждать бесконечно. Это не всегда желательно, например, система может захотеть использовать другую корневую файловую систему, если обычная система требует слишком много времени для ответа.

Жиль "ТАК - перестань быть злым"
источник