Не показывается текст, который вводишь в rdshell, если был запущен plymouth. После того, как нажмёшь Enter, результат команды отображается (так как ничего не видно, то это ругань на ошибочную команду). Скорее всего виден только stderr.
какие cmdline параметры были переданы при загрузке ?
Created attachment 15594 [details] Пример того, как это выглядит (Ответ для Alexey Gladkov на комментарий #1) > какие cmdline параметры были переданы при загрузке ? Достаточно initrd собрать с фичей plymouth и не прописать nosplash. Затем нужно каким бы то ни было способом добиться выпадания в rdshell (указать неправильный uuid для корня, прописать stop=<шаг> или просто указать параметр загрузки rdshell.
(In reply to Антон Мидюков from comment #2) > Достаточно initrd собрать с фичей plymouth и не прописать nosplash. Затем > нужно каким бы то ни было способом добиться выпадания в rdshell (указать > неправильный uuid для корня, прописать stop=<шаг> или просто указать > параметр загрузки rdshell. Мне как раз и было интересно был ли указан nosplash. Я думаю, что вот это условие вообще лишнее: https://github.com/osboot/make-initrd/blob/master/features/plymouth/data/lib/shell/plymouth-hide#L5 Если вызывается shell, то plymouth нужно выключить в любом случае. Даже если этот хук зафейлится, то ничего страшного не будет.
(Ответ для Alexey Gladkov на комментарий #3) > (In reply to Антон Мидюков from comment #2) > > Достаточно initrd собрать с фичей plymouth и не прописать nosplash. Затем > > нужно каким бы то ни было способом добиться выпадания в rdshell (указать > > неправильный uuid для корня, прописать stop=<шаг> или просто указать > > параметр загрузки rdshell. > > Мне как раз и было интересно был ли указан nosplash. > > Я думаю, что вот это условие вообще лишнее: > > https://github.com/osboot/make-initrd/blob/master/features/plymouth/data/lib/ > shell/plymouth-hide#L5 > > Если вызывается shell, то plymouth нужно выключить в любом случае. Даже если > этот хук зафейлится, то ничего страшного не будет. Убрал условие, сделал make-initrd и ничего не изменилось.
(In reply to Антон Мидюков from comment #4) > Убрал условие, сделал make-initrd и ничего не изменилось. Хм. А если сделать --quit вместо --hide-splash ?
(Ответ для Alexey Gladkov на комментарий #5) > (In reply to Антон Мидюков from comment #4) > > Убрал условие, сделал make-initrd и ничего не изменилось. > > Хм. А если сделать --quit вместо --hide-splash ? Да. Так работает. Даже если прописан splash. Но это только для кейса "не найден корень, выдали rdshell". А есть ещё два кейса: 1. Загрузка с параметром rdshell. В этом случае: - если указан splash, то ничего не видно, plymouth крутится - если не указан, то та же самая проблема Видимо, plymouth запускается чуть позже rdshell, поэтому он и не завершается. Тогда его не стоит запускать, если указан rdshell. 2. Загрузка с параметром stop=runinit (или другого шага, который после запуска plymouth). В этом случае: - если указан splash, то ничего не видно, plymouth крутится - если не указан, то вопрос. Но то, что вводишь не видно. После того, как запустится rdshell, видно. То есть та же проблема, но уже не для rdshell, а для вопроса, что делать дальше.
(In reply to Антон Мидюков from comment #6) > > Хм. А если сделать --quit вместо --hide-splash ? > > Да. Так работает. Даже если прописан splash. Я не очень понял, что ты имеешь в виду, когда говоришь: прописан splash. > Но это только для кейса "не найден корень, выдали rdshell". Да. > А есть ещё два кейса: > 1. Загрузка с параметром rdshell. В этом случае: > - если указан splash, то ничего не видно, plymouth крутится > - если не указан, то та же самая проблема > Видимо, plymouth запускается чуть позже rdshell, поэтому он и не > завершается. Тогда его не стоит запускать, если указан rdshell. Да, plymouth запускается сильно позже rdshell. > 2. Загрузка с параметром stop=runinit (или другого шага, который после > запуска plymouth). В этом случае: > - если указан splash, то ничего не видно, plymouth крутится > - если не указан, то вопрос. Но то, что вводишь не видно. После того, как > запустится rdshell, видно. То есть та же проблема, но уже не для rdshell, а > для вопроса, что делать дальше. Это интересный вопрос. Я бы оставил это на совесть пользователя, который указывает stop=. Если используется plymouth, то в дополнение к stop= нужно указывать nosplash. Можно конечно напридумывать ещё хуков, но в конечном счёте нам нужно просто выключить plymouth, потому что он мешает. Уже сейчас такой рубильник есть - параметр nosplash.
(Ответ для Alexey Gladkov на комментарий #7) > (In reply to Антон Мидюков from comment #6) > > > Хм. А если сделать --quit вместо --hide-splash ? > > > > Да. Так работает. Даже если прописан splash. > > Я не очень понял, что ты имеешь в виду, когда говоришь: прописан splash. > параметр splash /proc/cmdline До этого была с ним та же проблема, что plymouth крутится и ничего не показывается. > > Но это только для кейса "не найден корень, выдали rdshell". > > Да. > > > А есть ещё два кейса: > > 1. Загрузка с параметром rdshell. В этом случае: > > - если указан splash, то ничего не видно, plymouth крутится > > - если не указан, то та же самая проблема > > Видимо, plymouth запускается чуть позже rdshell, поэтому он и не > > завершается. Тогда его не стоит запускать, если указан rdshell. > > Да, plymouth запускается сильно позже rdshell. > > > 2. Загрузка с параметром stop=runinit (или другого шага, который после > > запуска plymouth). В этом случае: > > - если указан splash, то ничего не видно, plymouth крутится > > - если не указан, то вопрос. Но то, что вводишь не видно. После того, как > > запустится rdshell, видно. То есть та же проблема, но уже не для rdshell, а > > для вопроса, что делать дальше. > > Это интересный вопрос. Я бы оставил это на совесть пользователя, который > указывает stop=. Если используется plymouth, то в дополнение к stop= нужно > указывать nosplash. > > Можно конечно напридумывать ещё хуков, но в конечном счёте нам нужно просто > выключить plymouth, потому что он мешает. Уже сейчас такой рубильник есть - > параметр nosplash. Хорошо. Тогда не будем рассматривать эти кейсы. В конце концов можно вывести последовательную консоль.
(In reply to Антон Мидюков from comment #8) > (Ответ для Alexey Gladkov на комментарий #7) > > (In reply to Антон Мидюков from comment #6) > > > > Хм. А если сделать --quit вместо --hide-splash ? > > > > > > Да. Так работает. Даже если прописан splash. > > > > Я не очень понял, что ты имеешь в виду, когда говоришь: прописан splash. > > > > параметр splash /proc/cmdline > До этого была с ним та же проблема, что plymouth крутится и ничего не > показывается. А, ок. Тогда убираем условие и делаем --quit. > Хорошо. Тогда не будем рассматривать эти кейсы. В конце концов можно вывести > последовательную консоль. Собственно первый кейс не сложно учесть. В сервисе и так есть проверка nosplash. Добавить наличие rdshell не проблема.
make-initrd-2.44.0-alt1 -> sisyphus: Mon Feb 26 2024 Alexey Gladkov <legion@altlinux.ru> 2.44.0-alt1 - New version (2.44.0). - Feature plymouth: + Stop plymouth before running rdshell (ALT#49492). + Do not start plymouth if using rdshell. - Runtime: + Try to load efivarfs before mount (ALT#49491). - Misc: + Improve bug-report generation. + Rewrite mi-bug-report.