На основе ядра Ubuntu 12.04 я подготовил загрузочный DVD. После загрузки (только для консоли) я могу войти в систему как пользователь и запустить скрипт для установки встроенного устройства:
sudo install_script
Чтобы выполнить этот сценарий уже при запуске, я добавил следующее в /etc/rc.local
в образе корневой файловой системы на DVD:
/bin/bash -ic install_script
Поскольку этот скрипт выполняется безоговорочно, я хотел бы дать пользователю возможность обойти установку и перейти к приглашению входа в систему. Для этого я хотел бы использовать read
в install_script. К сожалению, скрипт не реагирует на ввод с клавиатуры при запуске из /etc/rc.local
. (Нет проблем с тем же сценарием, запущенным из оболочки после входа в систему).
Как я могу получить пользовательский ввод при запуске?
(Некоторые мысли:
- Может быть, я могу как-то обнаружить и подключить tty для
read
или к сценарию? Я попытался/bin/bash -ic install_script </dev/console
но безрезультатно. - Может быть, есть более подходящие варианты для
/bin/bash
или дляread
? - Может быть, я мог бы загрузиться в одну оболочку определенного пользователя (может быть,
root
, без входа в систему?) с.bashrc
вызывающимsudo install_script
(избегая проверки пароля для sudo?)? - Может быть, существует лучшее место для вызова сценария?
- Я не хотел бы разделять взаимодействие (чтобы оно происходило раньше) и сценарий install_script (например, путем предоставления различных параметров загрузки через isolinux и изучения
/proc/cmdline
в сценарии) по следующей причине: перед тем, как спросить пользователя, я бы хотел изучить систему и дать обзор того, что именно произойдет во время установки. На более ранних этапах процесса загрузки необходимая информация для проверки системы может быть недоступна.
)