Как позволить Новомодную задачу начальной загрузке блокировки?

Я пишу Новомодную задачу, которая работает в runlevel 1.

Это для ecrypted системы, и задание задачи состоит в том, чтобы проверить целостность начальной загрузки / и MBR. По сути, важно, чтобы эта задача работала как можно раньше во время начальной загрузки системы (таким образом, я выбрал runlevel 1).

99% времени, из которого эта задача просто выйдет тихо, но если она обнаруживает какую-либо проблему, ей нужен способ сообщить пользователю и идеально приостановить начальную загрузку системы, пока пользователь не подтверждает.

Я попробовал следующее как тест, но я не могу прервать начальную загрузку системы. Какие-либо предложения?

запустите на исполнительном runlevel [1]-n эха "Предупреждение: MBR и/или начальная загрузка / изменяются. Нажмите любую клавишу для продолжения". должностное лицо считало консольный вывод

Заранее спасибо!

1
задан 14 May 2011 в 16:02

1 ответ

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

Если вы хотите запустить как можно скорее, есть два варианта.

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

start on mounting MOUNTPOINT=/

Событие монтирования - это «зацепка», поэтому mountall будет ждать чего-либо, что использует его для разблокировки. Вы определенно должны использовать ключевое слово 'task', чтобы ваши проверки могли выполняться полностью до разблокирования mountall.

На этом этапе загрузки корневая файловая система по-прежнему доступна только для чтения, но должна быть доступна. Другие файловые системы могут быть недоступны, поэтому имейте в виду (в частности, / var / run может быть сложным в этом смысле). Не не используйте «И» с другим событием монтирования, поскольку это заблокирует загрузку.

Если вам нужно выполнить запись в корневую ФС, вы можете использовать

start on mounted MOUNTPOINT=/

. Это снова заблокирует монтирование, но после / перемонтируется чтение-запись. Это должно предотвратить возникновение сигналов, которые запускают другие части ботинка.

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

Обратите внимание, что в кулинарной книге Upstart много хороших идей

http://upstart.ubuntu.com/cookbook/

Удачи!

0
ответ дан 14 May 2011 в 16:02

Другие вопросы по тегам:

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