Pull to refresh

Дело было вечером, делать было нечего, или как установить Gentoo без клавиатуры

Reading time 5 min
Views 9.4K

Юмористический рассказ, основанный на реальных событиях.


Install Gentoo


Дело было одним скучным вечером. Жены дома нет, алкоголь закончился, дота не подключается. Что же делать в такой ситуации? Конечно же, собирать Gentoo!!!


Итак, начнём!


Дано: старенький сервер с 2Gb RAM, AMD Athlon Dual, два жёстких диска по 250Gb, на одном из них установлена система и нерабочая батарейка биоса. Так же Телевизор Sony Bravia с VGA-входом и мышка. А так же Wi-Fi роутер и рабочий ноутбук с Manjaro Arch Linux и окружением i3.


Требуется: установить Gentoo.


День 1


21:00 Достаю из шкафа старый пыльный сервачек. Оттуда же достаю коробку с проводами и прочим барахлом и старенький телик (шкаф-купе в прихожей большой, все поместилось именно там). Роюсь в коробке, распутываю провода, достаю патчкорд, VGA-кабель, мышку, кабель питания и набор отверток (вдруг понадобится).


21:15 Начинаю смотреть на все это и размышлять на вопросом «А как это сделать-то?». Ведь самого главного атрибута для установки Gentoo — клавиатуры-то у меня и не оказалось!


21:20 Думаю, «А что если вытащить из сервера винт, воткнуть его в usb-переноску и развернуть на нем систему? Не кошерно, надо же ядро собирать на том же железе...». Пока я размышлял над этим вариантом, успел вытащить винт и засунуть его в переноску, но когда закручивал последний болтик в коробочку, решил что так не пойдёт!


21:30 Раскручиваю болтики обратно, ставлю винт на место в сервер. Размышляю дальше: «Вариант остаётся только один — SSH-доступ. Может есть такой LiveUSB с уже запущенным sshd?»


21:35 Захожу на официальный сайт Gentoo. Качаю по привычке «Minimal Installation CD». Отменяю. Без клавиатуры — это дохлый номер! Ниже ссылка на «Hybrid ISO (LiveDVD)». Ага, думаю я, вот там-то все есть! Качаю и разворачиваю на флешку.


21:50 Несу сервер, телик, провода, мышь с кухни, где происходили мои размышления и приготовления, в дальнюю угловую комнату. Сервер шумит как промышленный пылесос, так что участковый бы точно зашёл в гости! Все подключил и запустил машину.


22:00 Грузится предыдущая ОС! Выключаю сервер и начинаю размышлять: «Батарейка сдохла, в биос не зайти (клавиатуры-то нет), а надо, во что бы то ни стало, загрузиться с флешки!». Разбираю сервер, отключаю один винт. Запускаю. Грузится предыдущая ОС! Включаю винт обратно, отключаю другой! Работает!


22:10 А вот и долгожданный экран выбора варианта загрузки с LiveUSB! Время оставшееся до автоматического выбора первого варианта загрузки бежит, «Сейчас все будет, надо лишь немного подождать», радуюсь я! Проходят заветные 30 секунд, экран гаснет, и ничего не происходит. «Ладно, пока грузится, пойду покурю...», решил сделать перерыв и отдохнуть от этого шума.


22:15 Возвращаюсь в «комнату шума». Экран чёрный и так же ничего не происходит! «Странно...», подумал я, «По-любому она бы уже загрузилась!». Кстати, все усугубляется еще и тем, что мой телик, не всегда показывает, что происходит на экране, какие-то режимы он не воспринимает и отказывается вещать картину происходящего… Перезагружаю сервер. Сижу, смотрю… Опять чёрный экран, все тоже самое. Ну я психанул, и начал тыкать по кнопкам мыши… И, о Боже, оно включилось и пошла загрузка. Позже я обнаружил, что загрузка продолжается только после нажатия маленькой кнопочки на этой чудо-мышке! Не будь этой кнопочки, Бог знает, чем бы этот вечер еще закончился!? Ведь, цель поставлена, и надо достичь её любым путём!

Фотография мышки
мышь

22:20 В ушах звенит, но я продолжаю идти к своей цели! Gentoo загрузилась! Краски радуют глаз! Мышка ходит по экрану! А внизу на писано «No password needed for login», это как-раз хорошо, ведь, у меня нет клавиатуры! На экране два поля: выбор рабочего окружения и пароль, ну и кнопка входа. LiveDVD Gentoo предлагает довольно обширный выбор окружений, среди них Fluxbox, Openbox, «крыса» (xfce), «плазма» (plasma) и т.п. Вариант с выбором «крысы», мне показался, отличным выбором! Захожу в рабочее окружение «крысы». Прекрасно! Есть терминал, но зачем он мне, у меня же нет клавиатуры!

Экран входа в систему
Экран входаВыбор окружения

22:25 Начинаю искать какую-нибудь экранную клавиатуру или типа того. Нашел только «Character Map». «Ну и отлично, вот он мой выход!», подумал я. Но не тут-то было! Текст натыкать можно, скопировать, вставить можно, но как нажать Enter!? Напомню, задача — запустить sshd, которая сводится к вводу в терминале «sudo /etc/init.d/sshd start», и нажатии на кнопку Enter, которой у меня нет! Что же делать? Но выход есть!


22:30 Время отдыха от шума. Иду на кухню и сажусь за ноутбук. Любые терминалы, если в них вставить скопированный текст с переводом строки, выполнят команду, т.к. воспринимают перевод строки как Enter. Итак, решение найдено! Нужно залить в интернет HTML-страничку с командой и переводом строки. Именно HTML, потому как, простой текстовый файл браузер откроет в одну строку «сожрав» все переходы на новую строку. Итак моя страничка выглядит так:

<html>sudo /etc/init.d/sshd start<br/>1</html>

«1» нужна чтобы можно было скопировать переход на новую строку, иначе копируется только одна строка, сколько «br» не ставь. Заливаю файл, на некий сайт по ссылке «mydomen.ru/1.htm».

22:40 Возвращаюсь в «комнату шума». Главное — успеть вернуться до включения скринсейвера, который при выходе из него говорит, что он старой версии и с пустым паролем не пустит обратно в систему! Открываю с предвкушением успеха браузер и таблицу символов! Набираю «mydomain». Ищу точку…


22:50 Нашёл точку! Надо выбрать режим просмотра «By Unicode Block». Набираю адрес дальше, благо «/» и цифры нашлись вместе с точкой! Копирую текст, вставляю в адресную строку, жму перейти. Время в системе из-за севшей батарейки биоса установлено как «01.01.2002», а при таких условиях SSL-сертификаты не работают!

Таблица символов
Меню режима просмотраТаблица символов

23:00 Я на кухне, отдыхаю от шума. Главное, долго не отдыхать, а то включится скринсейвер! Настраиваю NGINX для отдачи моего файла без HTTPS по адресу «mydomain.ru/2.htm», т.к. старый адрес был с редиректом и закешировался браузером.


23:05 Немного отдохнувший от шума и с предвкушением успеха, набиваю заново ссылку, ведь кнопку «Backspace» никак не эмулировать! Ну это для смеха, а на самом деле просто жму в таблице символов «2», выделяю, копирую и заменяю в адресной строке. «Перейти»! «Ну неужели!», подумал я. С чувством гордости копирую две строки со странички и выставляю в терминал. SSH-сервер запущен, пора пробовать подключаться, посмотрев IP-адрес в web-интерфейсе управления на Wi-Fi роутере! Вообще-то, нет, ещё рано! Жаль только, я сразу этого не понял…


23:15 Возвращаюсь к «мышке», добавив до этого строчку

sudo passwd<br/>123<br/>1

и обновив HTML-файл на сервере. Благо, больше вводить ничего не надо! Обновляю страницу. Ну и по старой схеме копирую строки в терминал для запуска «sudo passwd» и отдельно два раза для ввода и повторения пароля.

23:17 Подключился! Теперь мне не страшен скринсейвер и шум!


01:00 О процессе, который я проходил с момента установки ssh-соединения и до данного момента есть подробное описание в множестве источников, наиболее полное представлено в Gentoo Handbook. Собрал ядро, установил grub и в него собранное ядро. Настроил сеть и SSH на новой системе. Готово, «reboot»!


День 2 — выходной


10:00 Вернулся к своей задаче. Включил сервер. На экране ничего не происходит, сервера в сети нет! Подумал, проблемы с сетью. Загрузившись с LiveDVD понастраивал сеть, но не помогло…

При запуске сервера, на моем стареньком телевизоре
image

10:30 Решил, что неплохо было бы изучить логи загрузки. Логов нет! «Ага, значит до загрузки системы дело не дошло! Но что же там написано на экране?», подумал я. Немного подумав о причинах, почему телевизор ничего не показывает, выдвинул гипотезу, что он не может показать то разрешение в котором находится консольный вывод. На экране, вообще-то, так и написано…


11:00 Поменял настройки GRUB на вывод 640х480. Помогло. Написано «Loading Linux 4.19.27-gentoo-r1 ...». Оказалось, напортачил при сборке ядра.


11:30 Ставлю genkernel, с ручной настройкой ядра буду экспериментировать потом. Не ставится! Оказывается косяк с датой. Её лучше при каждом запуске актуализировать, много зависит от этой даты. Я бы её и выставил в биосе, но для этого нужна клавиатура… Меняю дату на актуальную.


14:00 Ура! Ядро скомпилировалось! Залил ядро в загрузчик, перезагрузился. Наконец-то все заработало!


Первая цель достигнута!


Дальше я собираюсь поставить на второй жёсткий диск CentOS так же без клавиатуры, но уже из дженты! Но об этом я напишу во второй части. В третьей части буду проводить нагрузочное тестирование веб-сервера с простеньким приложением на обеих этих системам и сравнивать RPS.

Tags:
Hubs:
+16
Comments 33
Comments Comments 33

Articles