Как запустить легковесный Linux-сервер

Как-то раз возникла задача, не очень сложная, поднять временно ряд простых сервисов (DHCP+Masquerade) с возможностью блокировки по MAC-адресам. И как назло простого маршрутизатора для этих целей не оказалось под рукой, а нужно, как всегда – здесь и сейчас. И решено было развернуть простенькую виртуальную машинку на базе Linux-ядра, чтобы она потребляла минимум ресурсов и в то же время предоставляла нужные службы. Ну а после того, как это “временно” закончится – просто утилизировать.

Выбор дистрибутива

Если вы, как и я, достаточное время уже работаете с разными ОС, то наверняка выбрали себе дистрибутив по душе. Там и удобный менеджер пакетов и привычная среда и расположение конфигурационных и других файлов. В общем этакий “кошерный” вариант. Для меня таким вариантом стал CentOS. После – Debian… Но мне казалось не очень рациональным ставить такую ОС ради простой задачи (как если бы заказывать экскаватор расчистить место для машины во дворе), поэтому решил поискать что-нибудь пошустрее и поминиатюрнее.

И тут вспомнил, как однажды, когда строил сеть в GNS3 использовал вполне себе функциональный дистрибутив на базе TinyCore, который загружается за пару секунд. Решил проверить, как он там поживает и был приятно удивлён – проект живёт и здравствует.

Где качать и почитать про TinyCore Linux

  1. Сам дистрибутив – http://tinycorelinux.net/.
  2. Почитать Wiki.
  3. Список доступных пакетов.

Процедура установки TinyCore Linux

  1. Качаем дистрибутив по ссылке (выше), для использования в Live-режиме – подойдёт любой. Для того, чтобы произвести инсталляцию на диск – качаем самый полный.
  2. Монтируем ISO в привод, пишем образ на флешку или ещё каким-либо способом загружаемся с ISO.
  3. Первый запуск. Можете поэкспериментировать. Я выберу первый вариант.
  4. Грузится реально за секунды! И вот перед нами рабочий стол. Если не ставите цель работать в Live-режиме, то будем ставить на винт. В нижнем меню выбираем соответствующий пункт.
  5. Отмечаем “USB-HDD”, у нас появится список дисков – в моём случае один – sda. Выбираем его и жмём стрелку вправо.
  6. Выбираем файловую систему. Оставил ext4. Хотя, если журналирование и прочие фишки не нужны, можно и ext2 взять.
  7. Можно прописать дополнительные опции – они перечислены выше. Прописывать в текстовое поле внизу, затем нажать стрелку вправо. Я, кстати, ничего не прописывал.:) Оставим по умолчанию.
  8. Типы установки – графический или текстовый. Мне графика не нужна, т.к. будет пара служб крутиться, а я уже привык к консоли.
  9. Когда всё готово – жмём кнопку Proceed и, спустя секунд 10 система будет установлена.
  10. Перезагружаемся и практически моментально перед нами консоль готовой операционки. Невероятная скорость загрузки :)

Настройка TinyCore Linux

Поначалу для меня было много сюрпризов в работе данной ОС. Я, конечно, не наступил на все грабли, но некоторые собрать умудрился. Опишу некоторые особенности.

  1. Система практически голая – нет большинства утилит. Из текстовых редакторов – vi. Настройки интерфейса – ifconfig. Нет ни архиваторов, ни iptables… Вообще, большинство компонентов системы придётся доустанавливать. Но за счёт этого она такая шустрая – минимализм в чистом виде. После установки она ест у меня 37 Мб оперативки. После доустановки нужных служб – 101 Мб. При установке я дал ей 256 Мб – с головой, если не нагружать ресурсоёмкими сервисами – она не для этого.
  2. Установка пакетов происходит не из-под root. Выполняем команду:
    $ tce-load -w [-o/-i] <имя пакета>
    Например
    $ tce-load -w -o nano
    Как просмотреть список пакетов – я писал выше. Кстати, я сейчас не уточняю режимы установки – там есть OnDemand – по запросу, On Start – при включении. Почитайте в Wiki раздел установки приложений. Кратки – если ставите службу – пишите -i. Если утилиту – -o.
  3. Startup Config – файл, который исполняется при загрузке – именно туда прописываются все команды, которые должны быть выполнены – аналог автозапуска. Например туда можно добавить установку статического ip-адреса, установку имени хоста, загрузку правил файрволла через iptables-restore и т.д. Это файл /opt/bootsync.sh (там же лежит bootlocal.sh, который вызывается из bootsync.sh, так что можно писать и в него).
  4. Изменения стираются при перезагрузке! Оппа, вот на этом я реально много сломал нервов, когда полностью настроенные скрипты обнулились после перезапуска. Что нужно сделать, чтобы это не похерилось? Первым делом ознакомиться с описанием этой фичи тут, разработчики пишут зачем они так сделали и как с этим жить дальше.
    • При необходимости прописать каталог, который будет сохраняться в /opt/.filetool.lst
    • После внесения нужных изменений в файловую систему выполнить команду:
      $ filetool.sh -b
      В результате чего файлы, перечисленные в списке /opt/.filetool.lst будут упакованы для последующей распаковке при запуске.

Ну всё остальное вроде привычно, нюансов конечно масса, но их все можно побороть. Достоинства этой ОС с лихвой компенсируют все неудобства. Она реально загружается секунд через 5 после включения. Даже не представляю, если её поставить на SSD.

Like this post? Please share to your friends:
Litl-Admin.ru

Comments:

Leave a Reply