Как собрать свой дистрибутив linux

Linux Mint — эмблема некомпетентности

Пользователи Linux Mint выбрали свой дистрибутив за простоту. Но простота эта только кажущаяся — форум Mint кишит сообщениями о проблемах, сбоях и глюках. А так как на Mint редко задерживаются надолго, то и нет опытных пользователей, которые могли бы помочь нюбам. Вот и происходит то, что происходит: пользователь Windows хочет попробовать Linux, выбирает Linux Mint, получает простой интерфейс, но и кучу серьезных системных ошибок в качестве бонуса.

Лучше и не скажешь

Понятно, что новоиспеченный линуксоид бежит обратно на Windows и старается забыть свой опыт взаимодействия с Linux как кошмарный сон. Забавно, что сбежать удается далеко не всем.

Модуль 5. Использование систем управления ресурсами кластера

Лабораторные работы

Сценарий: отказоустойчивый www хостинг

  • Содержимое домашних каталогов мастер сервера периодически копируется на резервный.
  • В случае временной остановки или выхода из строя главного сервера автоматически становится доступным резервный.
  • Не преднамеренный запуск мастер сервера не должен менять ролей серверов.

5.1.1 Установка и запуск сервера Apache

node1# cat corpX.un
...
www     A       192.168.X.10
node1# csync2 -xv
  • На обоих узлах (можно через Ansible)
  • На обоих узлах создаем пользователя user1 с uid=10001 (Управление учетными записями в Linux) (можно через Ansible)
  • На обоих узлах включаем (можно через Ansible)
  • Сервис Ansible

  • Устанавливаем сервер ftp на node1 и запускаем его ()
  • Создаем тестовую www страницу для пользователя user1 используя протокол ftp на node1

5.1.2 Синхронизация пользовательских данных

  • Пакет RSYNC

  • Можно автоматизировать, (Планирование выполнения заданий в Linux), но, пока не нужно.

5.2 Автоматизация смены ролей узлов кластера

5.2.1 Установка и сервера FTP

  • Устанавливаем ftp сервис на node2 ()
  • На обоих узлах отключаем автоматический запуск ftp сервиса (Управление сервисами в Linux)
nodeN# service proftpd stop

nodeN# update-rc.d -f proftpd remove
или
nodeN# systemctl disable proftpd

Представим, что узлы соединены кросс кабелем через eth2 интерфейсы

nodeN# crontab -l
...
* * * * * ps ax | grep -v grep | grep -q 'proftpd: (accepting connections)' && /usr/bin/rsync -az --delete /home/ nodeM:/home/
  1. В чем преимущество использования rsync по сравнению с scp?
  2. Что определяют разделители : и :: в команде rsync?
  3. Реализацией какой части классического пакета heartbeat является пакет pacemaker?
  4. Какие задачи классического пакета heartbeat НЕ решает пакет corosync?
  5. В каком формате хранятся файлы конфигурации пакета corosync?
  6. В каком формате хранятся файлы конфигурации пакета pacemaker?
  7. По какой причине не следует редактировать файлы конфигурации пакета pacemaker в текстовом редакторе?
  8. Для чего используется утилита crm должна ли она быть установлена на все узлы кластера?
  9. Для чего используется утилита crm_mon и есть ли она на всех узлах кластера?
  10. Что надо настроить в пакете pacemaker, что бы все части, из которых состоит ресурс, запускались на одном узле кластера?
  11. Какой тип трафика может использоваться для связи узлов кластера corosync?
  12. Что нужно сделать для сервисов, управляемых менеджером кластера?

Зоопарк Linux дистрибутивов

Дистрибутивов Linux на самом деле тысячи. И возможно, в данную минуту, пока я пишу этот текст — появляется еще один. Ой… О_о Еще один! x_X

Достаточно взглянуть на вот эту картинку которая показывает развитие основных дистрибутивов Linux до 2010 года, как понимаешь, насколько многообразен и сложен мир Linux:

Развитие дистрибутивов Linux

Почему? Потому что можно. Потому что у людей есть такая возможность ,есть силы и просто хочется. Хочется свой дистрибутив. По разным причинам:

  • Не нравится с какой периодичностью обновляют их любимый дистрибутив — сделаем свой, будем выпускать чаще!
  • Не нравится как в любимом дистрибутиве относятся к безопасности — Доктор! Я нашел куда применить свою паранойю! Теперь у меня свой супер защищенный дистрибутив!!!
  • Не нравится система управления пакетами ПО — сделаем свой дистрибутив из тех же пакетов, но пакетный менеджер напишем свой!
  • Не нравится как сложно разбираться с установкой новичку — сделаем свой дистрибутив который ставится за 3 клика! пускай Windows утрется кровавыми слезами!
  • Не нравятся обои, оконная тема по умолчанию, и отсутствие кодеков — сделаем свой дистрибутив с преферансом и поэтессами!!

Я конечно утрирую. Бывает, что дистрибутив Linux появляется на свет потому что автора не устраивает ни один из имеющихся. К примеру — узкоспециализированный, сверх-стабильный, или без ПО содержащего закрытый код. Бывает конечно что человек просто хочет потешить своё самолюбие, и показать что он может, умеет и он простой, скромный БОГ со своим дистрибутивом Linux 🙂

В общем-то в этом и вся суть зоопарка дистрибутивов. Чем же они отличаются? Попробую дать некоторую классификацию, насколько хватит моих сил 🙂

Kali Linux

Операционная система, предназначенная для программистов в области кибербезопасности. Если вы видели сериал «Мистер Робот», то наверняка приметили там Kali Linux. Она основана на Debian и содержит множество инструментов для взлома и защиты системы. К примеру, «из коробки» поставляются John the Ripper — утилита для восстановления паролей из хэшей, Aircrack-ng — улавливатель беспроводных сетей и перехватчик трафика, а также сканер OWASP ZAP. Такой набор будет интересен каждому разработчику, и это только малая часть возможностей.

Ещё одна фича — возможность полноценно установить ОС на Raspberry Pi в качестве альтернативы Raspbian.

Создание дистрибутивов на базе Fedora Linux

Если вы живете в мире RPM и являетесь адептом Fedora, вы можете собрать собственный дистрибутив с помощью утилиты livecd-creator. Это набор скриптов, имеющийся в официальных репозиториях Fedora. В отличие от UCK, livecd-creator работает исключительно в командной строке, а все пакеты, необходимые для сборки дистрибутива, скачиваются из интернета.Скрипты используют для сборки файлы Kickstart. Если вы о них еще не слышали, Kickstart представляет собой простой текстовый файл, содержащий список инструкций, в соответствии с которыми livecd-creator компилирует ваш дистрибутив.Чтобы облегчить себе жизнь, вы можете скачать файлы Kickstart для нескольких разновидностей Fedora, установив из репозиториев пакет spin-kickstarts, после чего эти файлы будут лежать у вас в директории /usr/share/spin-kickstarts. Вы можете настраивать свой дистрибутив, просто редактируя один из этих файлов в текстовом редакторе. Изучить их синтаксис более подробно можно в Fedora wiki (http://fedoraproject.org/wiki/Anaconda/Kickstart).

Можно также сэкономить себе время, установив утилиту Kickstart Configurator.

$ yum install system-config-kickstart

Эта программа предлагает простой графический интерфейс для создания файла Kickstart.

Вы можете задать требуемые вам пакеты, перечисляя их в секции %packages. Вместо отдельных пакетов здесь также можно добавить определенные группы пакетов, например gnome-desktop. Вы также можете указывать здесь пакеты из других файлов Kickstart, задавая их имя и расположение с параметром %include:

%include /usr/share/spin-kickfedora-live-base.ks

Если вам нужно после загрузки дистрибутива запустить на выполнение какую-либо команду, например для настройки сети, необходимо задать ее в секции %post. Например, если вы хотите автоматически запускать Firefox, можете поместить его ярлык в папку ~/.config/autostart, добавив в секцию %post следующие строки:

%post

# autolaunch Firefoxmkdir -p /etc/skel/.config/autostartcp /usr/share/applications/firefox.desktop /etc/skel/.config/autostart/%end

Убедитесь, что конец секций %packages и %post обозначен с помощью %end. Если вы хотите запустить какую-либо команду за пределами своего live-окружения, например скопировать файлы хоста в свой дистрибутив, добавьте параметр -nochroot в секцию %post, как показано ниже:

%post --nochroot

#copy resolv.conf from host to the custom distrocp /etc/resolv.conf $LIVE_ROOT/etc/%end

Переменная $LIVE_ROOT указывает на live-окружение. Аналогичным способом вы можете копировать файлы с хоста в свое live-окружение, например:

$ cp -r /home/bodhi/Music $LIVE_ROOT/

Если вы используете графическую утилиту для задания репозиториев, вы должны вручную добавить в файл Kickstart одну важную строку. Она указывает на список зеркал для репозитория Fedora (а также содержит информацию о версии и архитектуре сборки), откуда будут скачиваться пакеты. Например, если вы хотите получать пакеты для 64-битной Fedora 21, эта строка будет иметь следующий вид:

repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-21&arch=x86_64

После того, как вы закончили с файлом Kickstart, откройте его с помощью livecd-creator для сборки дистрибутива. Предположим, файл сохранен в ~/custom-kickstarts/Custom-Fedora.ks, тогда команда будет иметь вид:

$ sudo livecd-creator

--config=/home/bodhi/custom-kickstarts/Custom-Fedora.ks--fslabel=FedoraUltimate--cache=/var/cache/live--verbose

Ключ -fslabel задает имя вашего дистрибутива. После выполнения всех инструкций в файле Kickstart утилита собирает ISO-образ вашего дистрибутива, который сохраняется в вашей домашней директории.

Game Drift Linux

Game Drift Linux оптимизирован, для предоставления наилучшего доступа к играм в Linux. Он обеспечивает поддержку вне коробки для Linux и популярные игры для Windows.

  • Базируется на: Ubuntu 
  • Окружение рабочего стола:  MATE 
  • Формат пакетов:  DEB

Game Drift имеет свой собственный магазин игр, наполненный различными играми с открытыми исходным кодом, в своем списке имеет как простые так и большое количество высококачественных Linux игр. Магазин игр пополняется регулярно новыми играми, простоя никогда нет. Игровой магазин в данном дистрибутиве поддерживает установку игр одним нажатием кнопки без дополнительной шелухи вида согласен и прочее.

Имеется встроенная поддержка технологии CrossOver для запуска Windows игр. Вы можете играть в более чем 1200 игр которые разработаны для Windows. Вы также будете иметь возможность запускать различное программное обеспечение для Windows с CrossOver.

Требования к аппаратным средствам (рекомендуется):

  • Процессор: 1-2 ГГц процессор (32 или 64 бит)
  • Память: 1-2 ГБ оперативной памяти
  • Жесткий диск: 4 Гб жесткий диск
  • Видеокарта: ATI, Nvidia или Intel
  • Дополнительно: LAN / Интернет

Минусы:

CrossOver не бесплатен так как вам нужно купить ключ для активации

Если вы хотите иметь поддержку Windows игр и может позволить себе тратить деньги на покупку лицензии CrossOver, Game Drift Linux является для вас хорошим выбором.

Nitrux

Nitrux — это самый свежий дистрибутив Linux в этом списке самых красивых операционных систем. Вы взгляните на этот дистрибутив и обнаружите, что он был создан с учетом дизайна. Стоит отметить, что Nitrux основан на нестабильной ветке разработчика Ubuntu. Nitrux поставляется с настольной средой Nomad, основанной на KDE Plasma.

Также важно упомянуть, что команда, которая стояла за текущим дистрибутивом Nitrux, ранее создала еще один дистрибутив с тем же именем. Этот классный дистрибутив поставляется с заказным программным обеспечением

Он основан на скользящей модели выпуска и доступен только для 64-битных систем.

Преимущества Nitrux:

  • собственные приложения на заказ
  • красивый рабочий стол
  • минималистский подход

Собираем дистрибутив в интерактивном режиме¶

Чтобы воспользоваться режимом интерактивной сборки, следует установить дистрибутив на жесткий диск с параметром —build либо выбрать режим загрузки Builder в загрузочном меню LiveCD. В этом случае файловая система после загрузки системы будет состоять из трех слоев aufs2 (Advanced Multi Layered Unification File System, представляет собой усовершенствованную реализацию файловой системы Unionfs 2):

  • calculate – первый слой, являющийся образом системы, загружаемой с носителя (livecd.squashfs), и смонтированный в режиме «только для чтения». Это основа будущего дистрибутива, которую можно менять;
  • delta – слой, в котором сохраняются все изменения, произведенные во время сборки;
  • workspace – рабочий слой, в котором производятся все манипуляции по изменению исходной системы.

Рисунок 1. В загрузочном меню Calculate Linux Scratch выбираем Build

Все указанные слои являются подкаталогами в /mnt/scratch и автоматически образуются после загрузки системы.

mount | grep /mnt/scratch

tmpfs on /mnt/scratch/delta type tmpfs (rw,relatime)
tmpfs on /mnt/scratch/workspace type tmpfs (rw,relatime)
/dev/loop0 on /mnt/scratch/calculate type squashfs (ro,relatime)

Собственно, по наличию каталога /mnt/scratch и определяется текущий режим работы системы (в нашем случае Builder).

Переходим в режим интерактивной сборки, введя в консоли cl-builder, после выполнения команды приглашение изменит цвет. Вся дальнейшая работа в текущей виртуальной консоли будет производиться в chroot-окружении /mnt/builder. Теперь можно работать как обычно в Gentoo – обновить портежи, устанавливать, обновлять программы

Здесь необходимо сделать важное замечание. В обычном режиме слои монтируются в таком порядке: calculate + delta + workspace, в интерактивном – calculate + delta

После установки каждого пакета (завершения выполнения emerge) скрипт cl-builder выполняет команду «mount -o remount», перемонтируя заново слой delta. В итоге все изменения в delta сразу же становятся доступными в основной системе (например, появляются ярлыки приложений) и их можно протестировать перед сборкой нового образа. Запуск приложения в chroot-окружении приводит к созданию нежелательных временных файлов, которые затем попадают в образ. Именно поэтому во избежание конфликтов в работе устанавливаемых программ установку и удаление пакетов следует производить только в chroot-окружении через cl-builder, а тестировать в обычном.

Рисунок 2. В Calculate 1.2.6 необходимо закомментировать строчку

Обновляем утилиту calculate.

layman -S; emerge calculate

Обновляем портежи (в принципе релизы CLS выходят раз в месяц и этот шаг можно пропустить):

eix-sync

И устанавливаем нужное приложение:

emerge weechat

По окончании сборки программа будет сразу же доступна в рабочей системе. В слое delta появятся новые файлы и библиотеки. Аналогичным образом добавляем и остальные приложения. По окончании работы выходим из режима сборки командой exit.

Теперь чтобы собрать загрузочный ISO-образ, достаточно смонтировать раздел жесткого диска (если объема ОЗУ достаточно, этот шаг можно пропустить):

mount /dev/sda3 /usr/calculate/share/linux

И затем собираем образ командой:

calculate —iso

Через некоторое время в каталоге /usr/calculate/share/linux появится ISO-образ с новой системой.

ls /usr/calculate/share/linux/

cls-9.9-i686.iso cls-9.9-i686.iso.DIGESTS

Еще важный момент. Если CLS для сборки установлен на флешку (calculate -d /dev/sdX), можно пересобрать оригинальный файл livecd.squashfs, в котором, собственно, и находится система, сохранив изменения. Для этого достаточно ввести команду:

calculate —rebuild

Новый файл будет иметь другой порядковый номер сборки. При следующей загрузке будет уже использован новый образ со всеми изменениями.

Следует заметить, что полученный в интерактивном режиме дистрибутив подходит для массового пользователя, но считается не совместимым с Calculate Directory Server (CDS). Чтобы собрать совместимый с CDS вариант, необходимо использовать обычный режим сборки.

Рисунок 3. Подготавливаем систему к сборке

MGAME

MGAME (ранее известный как Manjaro Gaming) является дистрибутивом который предназначен для геймеров и поклонников Manjaro. 

  • Базируется на: Manjaro 
  • Окружение рабочего стола: Xfce

MGAME автоматически устанавливает необходимые драйверы для популярных графических карт. Он также предоставляет различные твики для оптимального игрового процесса.

MGAME поставляется с различными дополнительными утилитами и исходниками которые часто необходимы геймерам, дополнительно поставляются предустановленными приложения для редактирования видео, записи видео и потокового вещания, приложения для создания качественных снимков экрана и т.д.

Имеется предустановленной поддержка огромного списка консольных эмуляторов. Так же предустановлены Wine и PlayOnLinux для запуска Windows игр. Если вы захотите играть в игры в Steam, вам придется вручную установить клиент Steam, что является подвигом в дистрибутивах на базе Arch Linux, так как Steam официально не поддерживается в Arch.

Минусы

Не подходит для хардкорных геймеров

MGAME является относительно новым дистрибутивом в категории игровых. Но если вы являетесь поклонником Manjaro, вы можете попробовать его.

Это весь список которым я хотел с вами поделиться, какой из дистрибутивов является лучшим для игр в Linux, выбирать вам. Если у вас кто-то спросит, можно ли играть в игры в Linux поделитесь с ним ссылкой на этот материал и будет больше на еще одного поклонника linux который будет популяризировать эту систему в массы.

Имели ли вы опыт использования одного или нескольких из этих дистрибутивов? Какой из них особенно лучший? Дайте нам знать!

Сборка дистрибутивов Linux для встраиваемых систем

Linux — это популярный выбор на рынке встраиваемых решений. Однако это поле занято различными специализированными встраиваемыми дистрибутивами Linux. Чтобы упорядочить этот рынок, Linux Foundation вместе с такими лидерами отрасли, как Intel, AMD, Freescale, Texas Instruments, Wind River и другими, создали проект Yocto.

Главной целью проекта является создание и распространение окружения и инструментов для создания и сборки встраиваемых дистрибутивов Linux. Проект поддерживает 32- и 64-битные встраиваемые архитектуры, такие как ARM, PPC и MIPS. С помощью этих инструментов разработчики могут собирать полнофункциональные системы Linux для встраиваемых устройств.

В помощь разработчикам проект предлагает программу Hob, которая представляет собой графический фронтенд к движку сборки проектов BitBake. Hob читает инструкции и, следуя им, скачивает пакеты, собирает их и компилирует результат в виде загрузочного образа. Вы можете установить его во всех популярных дистрибутивах, включая Fedora, Ubuntu, Debian, OpenSUSE и CentOS.

Для начала вы можете загрузить систему сборку с сайта проекта, используя git:

$ git clone -b daisy git://git.yoctoproject.org/poky.git

Debian — для домашнего сервера

Скриншот: Distrowatch

Домашний сервер может пригодиться для многих целей. Например, чтобы хранить данные и бэкапы, загружать торренты или устроить собственное безразмерное облачное хранилище.

Debian хорошо приживётся на вашем домашнем сервере. Это стабильный и консервативный дистрибутив, ставший основой для Ubuntu и множества других Linux‑систем. Он использует только самые проверенные пакеты, что делает его отличным выбором.

  • Плюсы: стабильность и большой набор приложений.
  • Минусы: необходимость вручную настраивать дистрибутив после установки.
  • Альтернативы: Ubuntu Server — стоит попробовать, если вам кажется, что Debian слишком уж неудобный или в его репозиториях отсутствует нужное вам ПО. CentOS — основан на Red Hat Enterprise Linux, отличается высокой стабильностью. Поэтому CentOS часто используют на серверах коммерческих организаций.

7 комментариев

11.06.2018 21:07:04
 Гость Федя

ДЕРЬМО ЭТО ПОЛНОЕ.Эта гаввно только получите неработоспособное.

19.01.2015 17:46:18
 Гость Михаил

Используйте remastersys-gui, он находится в том же репозитории. Порядок такой:
— Подготавливаете дистрибутив
— Заходите в ремастерсис-гуй
— Customize
— user settings выбираете пользователя под которым всё настроено (если дистр делается спецально под образ обычно он там будет один)
— После того как настройки пользователя скопируются нажимайте Backup
— Забираете iso образ в папке /home/remastersys/что-то_там_с_iso/

19.12.2014 07:14:50
 dima

Второй системой ставите? Возможно, не может найти достаточно свободного места на диске, или изменить NTFS-разделы. Освободите на компе достаточно места, отрежьте его и не форматируйте, чтобы на него встала Убунта.
 
А вобщем-то, работать с виртуалки — удобнее, чем как со второй системой.
 
С модемами есть проблема. Старый ZTE-шный у меня тоже не определяется. А от HUAWEI нормально работает.

18.12.2014 18:10:05
 Гость Игорь

Люди, кто может помочь?! Вообщем такая ситуация. Скачал образ Ubuntu 14.04 mini.iso запустил установку на виртуальной машине Virual Box установил графическое окружение kde-plasma-desktop. Потом туда же установил Remastersys и командой sudo remastersys dist создал образ установленной системы с минимальным набором программ. Этот образ установил на флэшку и пытался уставновить систему на свой компьютер но в процессе установки выскакивает сообщение ubi-console-setup failed with exit code 141
Можете подсказать как обойти эту ошибку? И есть ли еще какие-нибудь программы кроме Remastersys чтобы можно было создать образ установленной системы (со всеми установленными программами, но без пользовательских настроек) ?
Сразу mini cd.iso на компьютер установить не могу, так как для этого нужен хороший Интернет, а у меня из доступного только Билайн 3G модем. Вообщем, это mini.iso не определяет автоматически мой модем , а как подключить его вручную — я не знаю, т.к. пользуюсь Linux’ом недавно.

28.11.2014 04:44:55
 dima

Да, для Squeeze и Wheezy. Но вобщем-то проект Remastersys больше не поддерживается.

27.11.2014 14:35:39
 Гость

А с Дебианом он работает?

17.03.2014 09:12:33
 victor

Спасибо за статью! Очень нужная программа. Правда, похоже, в репозитории «Мяты» нет remastersys’а, так что придётся качать deb-пакет по указанной в статье ссылке.

Руководство. Часть 2 — Ubuntu Customization Kit

Теперь мы воспользуемся Ubuntu Customization Kit (UCK), он был установлен в Приложения/Стандартные.

Первым делом он спросит — какие языковые пакеты вам надо установить, выбирайте ru.

Потом он спросит — какой язык должен использоваться при инсталляции системы, выбирайте ru.

Затем он спросит — какое окружение рабочего стола используется, выбирайте gnome.

После этого откроется окно, в котором вы должны найти свой iso образ со своим дистрибутивом, который вы создали с помощью Reconstructor.

После этого он предложит возможность переименовать ваш дистрибутив, если вы не сделали этого в Reconstructor-e можете сделать это сейчас.

После этого он спросит вас: Не хотите ли ручками добавить/удалить пакеты, воспользоваться консолью и вообще проконтролировать процесс сборки?

Мы уже сделали это в Reconstructor-e, поэтому говорим — no.

Теперь он спросит — хотите удалить приложения для Windows с диска? Я сказал — yes. Это удалит win32 версию Mozill-ы, и еще кое-что, что нам не нужно. Зато размер iso уменьшится.

Всё! UCK готов к сборке, он откроет консоль и запросит административный пароль чтобы собрать уже окончательную версию вашего дистрибутива.

В процессе сборки (10-15 минут) он полезет в репозиторий, чтобы установить языковую локализацию для вашего Gnome и его программ, а так же уберет неиспользуемые языковые пакеты.

Собранный iso дистрибутива будет лежать здесь:

Shell

/home/ваша_домашняя_папка/tmp/remaster-new-files/

1 homeваша_домашняя_папкаtmpremaster-new-files

Я не стал дальше перебирать дистрибутив с помощью Customization Kit (UCK), мне достаточно было программки Reconstructor для создания своего дистрибутива на базе Ubuntu

Pop! _ os

Pop! _OS — самый молодой участник этой коллекции самых красивых дистрибутивов Linux. Эта операционная система возникла, когда Canonical отрекся от Unity. Pop! _OS появился для того, чтобы предоставить индивидуальный и свежий подход своим клиентам.

Несмотря на то, что его рабочий стол основан на GNOME, он имеет четкую привлекательность и минималистский подход. Если вам скучно с вашим текущим рабочим столом и вам нравится привлекательный дистрибутив Linux, вам следует его рассмотреть.

Преимущества Pop! _OS:

  • свежий взгляд, минималистский подход
  • оригинальные цветовые темы
  • предназначен для креативщиков в области компьютерных наук
Ссылка на основную публикацию