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


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» нужна чтобы можно было скопировать переход на новую строку, иначе копируется только одна строка, сколько «» не ставь. Заливаю файл, на некий сайт по ссылке «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.

Комментарии (33)


  1. KorP
    09.04.2019 10:05

    А всего то надо просто иметь дома запасную клаву…


    1. Koneru
      09.04.2019 10:14

      Что-то мне подсказывает что у автора была клавиатура, возможно даже не одна.


      1. gendzo
        09.04.2019 10:29

        Знаю автора лично. Не было отдельной клавиатуры, у него дома лишь ноутбуки. Как-то вот незачем она ему, он привык обходиться без нее. И такое бывает, да.


        1. KorP
          09.04.2019 10:34

          Сервер есть, кабелей коробка есть, а клавы нет? Предлагаю скинуться.
          пс линуксойд привык обходиться без клавы? ужас!


    1. Magic_B Автор
      09.04.2019 10:32

      Ожидаемый комментарий...


  1. phrozen
    09.04.2019 10:34

    весь вопрос, зачем такой секс в гамаке???


    1. Magic_B Автор
      09.04.2019 10:34

      Развлечение такое, не более. Ну и задача есть, решить надо...


  1. bbasil
    09.04.2019 11:37

    На сервере нет COM порта?


    1. Magic_B Автор
      09.04.2019 11:45

      Вроде бы был… Я посмотрю. А к чему вопрос?


      1. bbasil
        09.04.2019 11:52

        можно было создать загрузочную флешку с переназначением консольного вывода в COM порт. Дальше цепляем ноут к консоли через usb2com переходник и вуаля работаем в консоли, даже телевизор не нужен :)


        1. Magic_B Автор
          09.04.2019 11:55

          Следующий уровень! :)


          1. bbasil
            09.04.2019 11:56

            Уверен, что все получится :)


        1. savenko_egor
          09.04.2019 15:25

  1. Nikmedbers
    09.04.2019 11:56

    Давно мечтаю о подобии программного ip kvm. Что бы грузилась базовая ос позволяющая установить и настроить драйвера в удаленном режиме. По теме ожидал что-то вроде создание дистрибутива для автоматической установки. И б/у клаву можно купить за 50 рублей, по крайней мере в Новосибирске, у меня бы просто столько нервов не хватило даже ради развлечения.


    1. Magic_B Автор
      09.04.2019 11:58

      Вы совершенно правы! Но где купить клаву в 9 вечера? Дистрибутив создать можно, это один из путей решения задачи установки ОС. Это будет загрузочная флешка, которая при загрузке запускает SSH-сервер.


    1. elve
      09.04.2019 13:41

      Почитайте про Intel vPro. При правильно подобранном железе вы получите эту возможность на домашнем ПК. Ну или у серверов IPMI, iLo, Intel BMC, IDRAC.


  1. trawl
    09.04.2019 15:56

    Gentoo загрузилась! Краски радуют глаз!

    Сначала прочитал: "Краснеет глаз". Перечитал, выдохнул.


  1. Mingun
    09.04.2019 18:16

    Только не пойму, зачем было веб-сервер запускать, странички делать… переносов же в любом текстовом конфиге навалом, копируй и вставляй!


    1. Magic_B Автор
      09.04.2019 18:49

      А Та китовый файл куда класть?


      1. Magic_B Автор
        09.04.2019 19:22

        T9. Куда класть файл-то?


        1. Mingun
          09.04.2019 23:58

          Не понял. Какой файл куда класть? Мы же проде говорим про ввод символа перевода строки в окно эмулятора консоли, его можно получить из любого текстового файла, где они есть. А таких файлов — куча, хотя бы те же конфиги или логи.


          Куда более интересная задача — как ввести имя файла в консоли, которое содержит символ перевода строки (команда ls показывает его, как ^M)?


          1. Magic_B Автор
            10.04.2019 05:34

            Ну если из любого файла скопировать команду с переводом строки, то эффект будет как и с HTML, но если скопировать просто перевод строки (я попробовал в Mousepad), то в терминал вставится ^M. В консоли вводить имя файла не нужно, я же в графическом окружении нахожусь, там есть редактор оконный. Другое дело, можно создать файл с нужными командами и положить на вторую флешку, но у меня только 2 USB, в одном из них мышь. Ну а LiveUSB, как известно, есть неизменяемый образ, там не сохранить. Ведь, нужно повторное использование этих команд, т.к. перезагружался я не раз...


          1. Gamliel_Fishkin
            10.04.2019 22:14

            как ввести имя файла в консоли, которое содержит символ перевода строки (команда ls показывает его, как ^M)?
            Попытался брать в кавычки:
            $ ls -lah
            итого 0
            drwxr-xr-x 2 gamliel gamliel   6 апр 10 22:03 .
            drwxr-xr-x 5 gamliel gamliel 314 апр 10 22:03 ..
            $ touch "a
            > b"
            $ ls -lah
            итого 0
            drwxr-xr-x 2 gamliel gamliel  17 апр 10 22:05  .
            drwxr-xr-x 5 gamliel gamliel 314 апр 10 22:03  ..
            -rw-rw-r-- 1 gamliel gamliel   0 апр 10 22:05 'a'$'\n''b'
            $ rm * -v
            удалён 'a'$'\n''b'
            $ ls -lah
            итого 0
            drwxr-xr-x 2 gamliel gamliel   6 апр 10 22:09 .
            drwxr-xr-x 5 gamliel gamliel 314 апр 10 22:03 ..


            1. Magic_B Автор
              11.04.2019 05:17

              Прикольно, только я не понял к чему это? Сделать из имени файла команду и вводом?


              1. Gamliel_Fishkin
                12.04.2019 00:07

                Практического применения пока не вижу. Не уверен, баг это или фича.


  1. Ad3pt
    10.04.2019 08:07

    У Debian в инсталлере есть ssh сервер, включается довольно просто. Возможно, было бы проще Debian installer + chroot для Gentoo


    1. Magic_B Автор
      10.04.2019 08:11

      Мышкой включается? :) Я не специалист, но не уверен, что окружение Debian подойдет для chroot Gentoo… Можно ради спортивного интереса попробовать, конечно, но неохота… Мне же еще CentOS ставить :)


      1. Ad3pt
        10.04.2019 08:18

        Мышкой включается?

        Не, подкладыванием preseed с нужными опциями в образ.

        не уверен, что окружение Debian подойдет для chroot Gentoo

        Мне кажется, должно, но я не пробовал — я не специалист в Gentoo :)


  1. elve
    10.04.2019 15:38

    Я так понимаю вариант с PXE-boot не рассматривался? =). Ваяем образ с нужными настройками, cpio-gzip-им его и наслаждаемся удобствами =).


    1. Magic_B Автор
      10.04.2019 15:41

      Ну я не видел PXE для Gentoo, может и есть. Для CentOS есть, с него ставить буду наверное… Да и ваял бы я дольше )))


      1. elve
        11.04.2019 09:38

        PXE-образа нету готового, но он ваяется минут за 20-30 из iso-шника. Это же Gentoo. Положение обязывает ;).


  1. klirichek
    10.04.2019 17:39

    А разных плюшек для людей с ограниченными возможностями там нет?
    Типа экранной клавиатуры?


    1. Magic_B Автор
      10.04.2019 18:29

      Нету, ага