Как я могу закончить здесь-документ, который начинается с << \\ $ fff?

Предполагая, что у вас есть набор сценариев, которые могут быть выполнены для настройки машины нужным вам образом, вы можете, как предложил ebal, запустить их в конце /etc/rc.local (или эквивалент вашего дистрибутива). Этот сценарий выполняется в конце процесса загрузки, непосредственно перед тем, как getty будет порожден init.

Я предлагаю добавить в конец /etc/rc.local что-то вроде:

test -x /sbin/system-setup-step1.sh && /sbin/system-setup-step1.sh && reboot
test -x /sbin/system-setup-step2.sh && /sbin/system-setup-step2.sh && reboot
test -x /sbin/system-setup-step3.sh && /sbin/system-setup-step3.sh && reboot
# ... for however many steps are needed for your use case

Затем, в конце каждого из этих скриптов, удалите бит execute как признак того, что его больше не нужно выполнять (но оставьте скрипт на диске на случай, если пользователь захочет посмотреть, что он сделал), и сохраните где-нибудь имя скрипта, затем проверьте ранее выполненный скрипт в начале следующего скрипта в последовательности. Например, вот как может выглядеть system-setup-step2.sh:

#!/bin/bash

test $(cat /var/tmp/last-system-setup-step) = "system-setup-step1.sh" || exit 1

# ... do stuff ...

# indicate that this doesn't need to run again
/bin/chmod -x "$0"
printf '%s' $(basename "$0") > /var/tmp/last-system-setup-step
# finished successfully
exit 0

Настройте условие проверки сверху для каждого сценария.

Таким образом, система перезагрузится столько раз, сколько потребуется, и в конце пройдет через все эти тестовые условия и достигнет приглашения входа (или чего-либо еще, что вы могли настроить), потому что ни один из скриптов не будет иметь установленный бит execute. Если что-то пойдет не так, процесс настройки и перезагрузки просто остановится.

В исходном образе убедитесь, что папка /var/tmp/last-system-setup-step существует и пуста, чтобы избежать раздражающих ошибок.

Обратите внимание, что все вышесказанное не проверено (написано в браузере), но должно передать суть.

6
22.05.2015, 01:59
0 ответов

Теги

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