Автор Тема: Нужно грузиться в консоль с автологином.  (Прочитано 6417 раз)

Оффлайн XBM

  • Давно тут
  • **
  • Сообщений: 442
  • Бэкап - акт проявления трусости.
    • Email
Здравствуйте, форумчане!
Собрал небольшой проект состоящий из компа и ардуинки, связь по USB (ардуинка как устройство ввода, монитор как устройство вывода).
Есть какой-нибудь дистрибутив, который грузится без X-ов, но с автологином в tty ?
Или проще, например,  в SL что-то подкрутить чтобы не грузились X и осуществлялся автологин?

Оффлайн klark973

  • Давно тут
  • **
  • Сообщений: 497
  • Неспящий саппорт
ALT Rescue (LiveCD) с рутовым автологином. Или нужно не с рутовым?
To moan or to solve -- that is the question!

Оффлайн XBM

  • Давно тут
  • **
  • Сообщений: 442
  • Бэкап - акт проявления трусости.
    • Email
Можно и с рутовым, не принципиально.
Rescue LiveCD не ставится же на компьтер, да?
А требуется установить, добавить библиотеки питоновские и получить доступ по ssh или smb и при старте запускать скрипт.

Оффлайн klark973

  • Давно тут
  • **
  • Сообщений: 497
  • Неспящий саппорт
Rescue LiveCD не ставится же на компьтер, да?
Не ставится, но можно скопировать ISO-образ на /dev/sda, добавить ещё других необходимых разделов, если надо, и использовать в режиме сохранения сеанса. Пожалуй, тогда лучше взять минимальный сервер или JeOS.

А требуется установить, добавить библиотеки питоновские и получить доступ по ssh или smb и при старте запускать скрипт.
Если ставить с регулярки JeOS, можно получить всё необходимое. Там лишь два момента: загрузчик lilo и, соответственно, грузиться в UEFI он не умеет. Зато это самая минимальная система "без всего". И там SysV-init, т.е. добиться необходимого даже проще правкой одной строки в /etc/inittab. Но я предлагаю взглянуть ещё на пару пакетов: startup-rescue и rescue-launcher. Последний обеспечивает автозапуск скрипта на первой консоли в интерактивном режиме.
« Последнее редактирование: 05.09.2019 22:22:40 от klark973 »
To moan or to solve -- that is the question!

Оффлайн XBM

  • Давно тут
  • **
  • Сообщений: 442
  • Бэкап - акт проявления трусости.
    • Email
Понятно. Спасибо. Буду пробовать.
lilo не пугает, комп древний.
rescue-launcher, похоже, как раз то, что надо. :)

Оффлайн klark973

  • Давно тут
  • **
  • Сообщений: 497
  • Неспящий саппорт
rescue-launcher, похоже, как раз то, что надо. :)
Если не ошибаюсь, ему нужен startup-rescue. И ещё надо будет глянуть, куда он кладёт файл inittab.rescue и переименовать в /etc/inittab -- это то, что делается на обычных ALT Rescue. Но можно просто заменить в /etc/inittab строку для первого терминала на:
1:2345:respawn:/bin/openvt -elfw -c 1 -- /usr/bin/rescue-shell
To moan or to solve -- that is the question!

Оффлайн XBM

  • Давно тут
  • **
  • Сообщений: 442
  • Бэкап - акт проявления трусости.
    • Email
с JeOS не получилось - не понял как выключить скрипт запуска установки системы.
ALT Rescue (LiveCD) - установилась, автологин есть, сеть настроил, модули добавил.
В /etc/inittab для всех 6 терминалов изначально уже были строчки
1:2345:respawn:/bin/openvt -elfw -c 1 -- /usr/bin/rescue-shellт.е. консоль уже есть, можно запускать свою программу руками.
Не могу сообразить две вещи:
1. Где поменять меню grub(а) , чтобы по умолчанию выбирался пункт "с поддержкой сессии".
2. Куда, собственно, прописывать запуск своего скрипта. rc.local не срабатывает.
Подскажите, пожалуйста.

Оффлайн klark973

  • Давно тут
  • **
  • Сообщений: 497
  • Неспящий саппорт
с JeOS не получилось - не понял как выключить скрипт запуска установки системы.
Так её не на диск копировать надо, надо с неё грузиться и запускать установщик. После инсталляции на диск система будет относительно "голой". В неё можно до-установить startup-rescue, rescue-laucher и что ещё потребуется. Или ещё проще: поменять только одну строчку в /etc/inittab, указав там свой скрипт для первой консоли (см. ниже).

1. Где поменять меню grub(а) , чтобы по умолчанию выбирался пункт "с поддержкой сессии".
Боюсь, нигде. Там конгломерат загрузчиков refind+elilo+grub[32-bit] (UEFI) или isolinux (BIOS). Как я понял, образ опять же скопирован на диск. Так ведь он read-only! Но можно сделать следующее: вытащить файлы vmlinuz с full.cz из /syslinux/alt0, в /syslinux/isolinux.cfg подсмотреть нужные строчки по загрузке с live_rw, руками создать ext4-раздел "alt-live-storage", на первый ext4-раздел сложить "/rescue" (образ squashfs), в строке загрузки поменять automatic=method:cdrom на automatic=method:disk,uuid:<ID-первого-раздела>, делаете его загрузочным и ставите туда какой-нибудь syslinux. Я так делал, но это муторно. В вашем случае с JeOS проще и образ в разы меньше.

2. Куда, собственно, прописывать запуск своего скрипта. rc.local не срабатывает.
В /etc/inittab вместо /usr/bin/rescue-shell, например. Тогда в конце своего скрипта сделайте exec /usr/bin/rescue-shell. Если же использовать rescue-launcher, ничего это не требуется, достаточно к опциям загрузки добавить "autorun". А если с установленной на диск JeOS, указанная строка в /etc/inittab должна выглядеть как-то так:
1:2345:respawn:/bin/openvt -elfw -c 1 -- /ваш/скрипт
« Последнее редактирование: 08.09.2019 23:17:23 от klark973 »
To moan or to solve -- that is the question!

Оффлайн klark973

  • Давно тут
  • **
  • Сообщений: 497
  • Неспящий саппорт
Rescue LiveCD не ставится же на компьтер, да?
Не ставится, но можно скопировать ISO-образ на /dev/sda, добавить ещё других необходимых разделов, если надо, и использовать в режиме сохранения сеанса.
Похоже, я потерял нить и сбил Вас с толку. Попробую ещё раз...

Новые ALT Rescue уже имеют в своём составе startup-rescue и rescue-launcher. В числе прочего, startup-rescue обеспечивает беспарольный рутовый доступ к консолям, а rescue-laucher позволяет запускать некий произвольный скрипт на первой консоли до получения приглашения оболочки и после того, как запущены все фоновые процессы, при этом, не требуя пересборки загрузочного ISO-образа. По понятным причинам эта фича по дефолту не активирована и в загрузочном меню отдельного пункта для неё пока не предусмотрено. Но если при загрузке добавить в параметры опцию autorun, startup-rescue заработает согласно документации.

Соответственно, если использовать ALT Rescue, то только копировать ISO-образ на диск. Поскольку образ гибридный, есть возможность fdisk'ом добавить разделов в свободное место. Если отформатировать один такой раздел в ext2, дать ему метку "alt-autorun", сложить в корень Ваш скрипт под именем "autorun", а если нужно, и других файлов рядышком, то для автозапуска этого скрипта достаточно будет добавить слово "autorun" к опциям загрузки ядра.

Если бы загрузка была EFI'шной, то меню загрузчика можно попробовать исправить для гибридной разметки -- скрытому файлу /EFI/.efiboot.img соответствуют какие-то сектора на диске, они приходятся как раз на первый FAT32-раздел с ESP, и всё что там есть, отредактировать можно. Но я не уверен, что такой же трюк проскочит с редактированием /syslinux/isolinux.cfg прямо внутри образа ISO-9660, поэтому и говорил выше про установку extlinux. Это уже совсем другой способ загрузки, выше его описал -- делаем два раздела ext, на первый ставим extlinux, делаем его загрузочным и копируем в корень сквош /rescue. Делаем свой extlinux.cfg по образу и подобию /syslinux/isolinux.cfg, но с нужными опциями. А второй ext раздел делаете либо ext2 с меткой "alt-autorun", либо ext4 с меткой "alt-live-sorage", в зависимости от того, будете использовать autorun или live_rw в опциях загрузки.

Но это просто для информации. Потому что самый простой способ -- поставить на диск инсталлятором JeOS и поправить руками одну строку в /etc/inittab.
To moan or to solve -- that is the question!

Оффлайн XBM

  • Давно тут
  • **
  • Сообщений: 442
  • Бэкап - акт проявления трусости.
    • Email
Спасибо ещё раз. Действительно, оказалось всё просто.
Установил, строчку поменял, всё работает.
Только квадратики вместо русских букв. Надеюсь, на вики есть статья как русифицировать консоль. :)

Оффлайн klark973

  • Давно тут
  • **
  • Сообщений: 497
  • Неспящий саппорт
Только квадратики вместо русских букв. Надеюсь, на вики есть статья как русифицировать консоль. :)
Думаю, как-то так, но точно не скажу:
apt-get install console-scripts
echo 'KEYTABLE=ruwin_ct_sh-UTF-8' > /etc/sysconfig/keyboard
chkconfig keytable on
echo 'SYSFONT=UniCyr_8x16' > /etc/sysconfig/consolefont
chkconfig consolesaver on
To moan or to solve -- that is the question!

Оффлайн XBM

  • Давно тут
  • **
  • Сообщений: 442
  • Бэкап - акт проявления трусости.
    • Email
Русские буквы появились.
Раскладка не меняется.
service keytable start завершается с ошибкой. Но это не критично, проект можно запускать в дело.
Спасибо за помощь! :)