Какой смысл rootwait/rootdelay?

От простой точки я использовал бы awk

column -t filename | awk '{for (i=0; i<NF; i++){l=index($0, $i)+1;printf "%*s ", index($0, $(i+1))-l, $i}printf "%*s\n", index($0, $NF)-l, $NF}'

Это делает для немного шире

23
29.04.2014, 01:40
2 ответа

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

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

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

21
27.01.2020, 19:42

Извините за повторное открытие такого старого вопроса, но недавно я сам изучал этот вопрос и наткнулся на этот пост.

Из , что я смог найти , что rootdelayдействительно делает, так это задерживает запуск ядра на указанное время, чтобы позволить ядру найти rootfs на более медленных устройствах. Поэтому, если вы, например, установите rootdelay=10, ваша система будет ждать 10 секунд, прежде чем пытаться запустить ядро, независимо от того, была ли найдена rootfs или нет.

С другой стороны, rootwait(, как указал @Gilles ), просто бесконечно долго ждет, пока ваши rootfs станут доступны, а затем запускает ядро.

В общем, если у вас есть система, которой требуется 5 секунд, чтобы найти rootfs, и вы настроили ее как rootdelay=10 rootwait, она подождет 10 секунд, а затем немедленно запустится. Если системе потребуется 15 секунд, чтобы найти rootfs, тогда rootdelay=10заставит ждать первые 10 секунд, а затем rootwaitпозаботится о последних необходимых 5 секундах. Наконец, в этом последнем случае, если вы не установили rootwait, система не сможет загрузиться через 10 секунд, так как не сможет найти rootfs.

0
26.02.2021, 08:45

Теги

Похожие вопросы