Содержание
Как-то раз возникла задача, не очень сложная, поднять временно ряд простых сервисов (DHCP+Masquerade) с возможностью блокировки по MAC-адресам. И как назло простого маршрутизатора для этих целей не оказалось под рукой, а нужно, как всегда – здесь и сейчас. И решено было развернуть простенькую виртуальную машинку на базе Linux-ядра, чтобы она потребляла минимум ресурсов и в то же время предоставляла нужные службы. Ну а после того, как это “временно” закончится – просто утилизировать.
Выбор дистрибутива
Если вы, как и я, достаточное время уже работаете с разными ОС, то наверняка выбрали себе дистрибутив по душе. Там и удобный менеджер пакетов и привычная среда и расположение конфигурационных и других файлов. В общем этакий “кошерный” вариант. Для меня таким вариантом стал CentOS. После – Debian… Но мне казалось не очень рациональным ставить такую ОС ради простой задачи (как если бы заказывать экскаватор расчистить место для машины во дворе), поэтому решил поискать что-нибудь пошустрее и поминиатюрнее.
И тут вспомнил, как однажды, когда строил сеть в GNS3 использовал вполне себе функциональный дистрибутив на базе TinyCore, который загружается за пару секунд. Решил проверить, как он там поживает и был приятно удивлён – проект живёт и здравствует.
Где качать и почитать про TinyCore Linux
- Сам дистрибутив – http://tinycorelinux.net/.
- Почитать Wiki.
- Список доступных пакетов.
Процедура установки TinyCore Linux
- Качаем дистрибутив по ссылке (выше), для использования в Live-режиме – подойдёт любой. Для того, чтобы произвести инсталляцию на диск – качаем самый полный.
- Монтируем ISO в привод, пишем образ на флешку или ещё каким-либо способом загружаемся с ISO.
- Первый запуск. Можете поэкспериментировать. Я выберу первый вариант.
- Грузится реально за секунды! И вот перед нами рабочий стол. Если не ставите цель работать в Live-режиме, то будем ставить на винт. В нижнем меню выбираем соответствующий пункт.
- Отмечаем “USB-HDD”, у нас появится список дисков – в моём случае один – sda. Выбираем его и жмём стрелку вправо.
- Выбираем файловую систему. Оставил ext4. Хотя, если журналирование и прочие фишки не нужны, можно и ext2 взять.
- Можно прописать дополнительные опции – они перечислены выше. Прописывать в текстовое поле внизу, затем нажать стрелку вправо. Я, кстати, ничего не прописывал.:) Оставим по умолчанию.
- Типы установки – графический или текстовый. Мне графика не нужна, т.к. будет пара служб крутиться, а я уже привык к консоли.
- Когда всё готово – жмём кнопку Proceed и, спустя секунд 10 система будет установлена.
- Перезагружаемся и практически моментально перед нами консоль готовой операционки. Невероятная скорость загрузки
Настройка TinyCore Linux
Поначалу для меня было много сюрпризов в работе данной ОС. Я, конечно, не наступил на все грабли, но некоторые собрать умудрился. Опишу некоторые особенности.
- Система практически голая – нет большинства утилит. Из текстовых редакторов – vi. Настройки интерфейса – ifconfig. Нет ни архиваторов, ни iptables… Вообще, большинство компонентов системы придётся доустанавливать. Но за счёт этого она такая шустрая – минимализм в чистом виде. После установки она ест у меня 37 Мб оперативки. После доустановки нужных служб – 101 Мб. При установке я дал ей 256 Мб – с головой, если не нагружать ресурсоёмкими сервисами – она не для этого.
- Установка пакетов происходит не из-под root. Выполняем команду:
$ tce-load -w [-o/-i] <имя пакета>
Например
$ tce-load -w -o nano
Как просмотреть список пакетов – я писал выше. Кстати, я сейчас не уточняю режимы установки – там есть OnDemand – по запросу, On Start – при включении. Почитайте в Wiki раздел установки приложений. Кратки – если ставите службу – пишите -i. Если утилиту – -o. - Startup Config – файл, который исполняется при загрузке – именно туда прописываются все команды, которые должны быть выполнены – аналог автозапуска. Например туда можно добавить установку статического ip-адреса, установку имени хоста, загрузку правил файрволла через iptables-restore и т.д. Это файл /opt/bootsync.sh (там же лежит bootlocal.sh, который вызывается из bootsync.sh, так что можно писать и в него).
- Изменения стираются при перезагрузке! Оппа, вот на этом я реально много сломал нервов, когда полностью настроенные скрипты обнулились после перезапуска. Что нужно сделать, чтобы это не похерилось? Первым делом ознакомиться с описанием этой фичи тут, разработчики пишут зачем они так сделали и как с этим жить дальше.
- При необходимости прописать каталог, который будет сохраняться в /opt/.filetool.lst
- После внесения нужных изменений в файловую систему выполнить команду:
$ filetool.sh -b
В результате чего файлы, перечисленные в списке /opt/.filetool.lst будут упакованы для последующей распаковке при запуске.
Ну всё остальное вроде привычно, нюансов конечно масса, но их все можно побороть. Достоинства этой ОС с лихвой компенсируют все неудобства. Она реально загружается секунд через 5 после включения. Даже не представляю, если её поставить на SSD.
Comments: