Здравствуйте, коллеги!
Пишу 2 скрипта для initrd (/init) и /sbin/init.
Не понимаю, что нужно сделать, что бы, например возпользоваться bash или sh в initrd? Вызываю /bin/bash (/bin/sh) и скрипт останавливается в ожидании ввода, вот только ввести ни чего не получается. Такое впечатление что отсутствует stdin.
Мучения с initrd заметно бы упростились, если бы я мог получить нормальный доступ к bash (он есть). Но справился и без bash, пусть и затратил много больше времени чем хотелось бы.
Система грузится так как мне нужно. Монтируется squashfs, на нее накладывается overlay rw слой и все работает как мне нужно. Ввод-вывод, соответственно, работает.
Теперь появилась идея грубо воздействовать на /sbin/init, что бы загрузить ТОЛЬКО то, что в дальнейшем будет нужно. А нужно будет что бы, в качестве демонов, болталось несколько процессов и жила сеть.
В данный момент только перешел к /sbin/init и воткнул вместо оригинального маленький скрипт на bash, который всего лишь, должен получить строку от пользователя и вывести ее на экран. Чем не функционал для /sbin/init? :)
Но не тут-то было. Ожидаемо, как и в initrd я не могу ни чего ввести. Нет ни какой реакции на клавиши.
Вроде нужно как-то связать свой терминал c tty, но тут я, мягко говоря, плаваю. Вообще тему с tty не понимаю.
Подскажите, пожалуйста, как это победить? Как получить нормальный input/output в initrd?
PS В своем замудреном скрипте вызываю who и… пустой вывод. Нужно как-то получить терминал, но как?
#tty
not a tty