Сборка своей операционной системы linux
Собираем собственную ОС на базе Linux
Архив номеров / 2006 / Выпуск №3 (40) / Собираем собственную ОС на базе Linux
Илья Александров
Создаём собственную ОС на базе Linux
Дистрибутивов Linux существует сотни, и неизвестно, сколько появится еще. Десятки компаний и тысячи программистов соревнуются в создании лучшего Linux-проекта, а между тем любой опытный пользователь может стать автором системы для домашнего ПК, не уступающей продуктам гигантов IT-индустрии.
За долгие годы работы с Linux мною было использовано огромное количество различных дистрибутивов: Mandriva, Fedora, SlackWare, Debian, Ubuntu и многие другие. Какой-то проект нравился больше, какой-то – меньше. Но во всех дистрибутивах неминуемо приходилось сталкиваться с серьезными недостатками, которые сильно затрудняли работу. Один слишком требователен к ресурсам, в другом нет поддержки всего нужного оборудования, в третьем не хватает различного ПО. Вот тогда я вспомнил известную восточную мудрость: если нужно что-то сделать хорошо, сделай это сам.
Linux from Scratch
Я не единственный, кто решил заняться построением собственной версии Linux – ОС, в которой за основу будет взята базовая часть системы и ядро, но где не будет ни единого лишнего килобайта от разработчика, то есть от вас. Большое количество Linux-дистрибутивов, не соответствующих требованиям пользователей, подтолкнуло Герарда Бикменса (Gerard Beekmans) к созданию дистрибутива, который даст возможность каждому собрать систему, где будут только необходимые ему компоненты и функции.
Стремление талантливого программиста вылилось в проект Linux from Scratch (www.linuxfromscratch.org), сокращенно – LFS. Этот проект, позволяет сконструировать «с нуля», из исходных кодов, свою операционною систему на базе Linux. Компиляция LFS проходит на компьютере с уже установленной Linux-системой, впрочем, подойдет и «продвинутый» Live-CD, например, Knoppix [6].
При этом Linux-система, используемая для сборки, может быть любой – обязательно лишь наличие компилятора и системных библиотек. Linux From Scratch трудно назвать дистрибутивом в привычном смысле этого слова – это что-то вроде вспомогательного ПО, которое вкупе с базовой частью операционной системы позволит вам создать свою, уникальную версию ОС.
Как известно, Линус Торвальдс разрабатывал свою операционную систему под девизом «Just for fun!» – то есть только ради удовольствия. Нужно признать, что LFS действительно не часто можно встретить на серверах, используют эту систему, как правило, компьютерные энтузиасты. Установка и работа с Linux from Scratch поможет вам разобраться во взаимосвязи компонентов ОС, что пригодится при собственных разработках Linux-дистрибутива, причем не только на базе LFS. Поэтому LFS во многом рассчитан на тех людей, для которых процесс сборки собственного дистрибутива увлекателен и интересен – а таких людей, поверьте, немало.
Итак, если вы готовы потратить на конструирование системы целый день (а то и больше), то рекомендую скачать с сайта (2) LFS-packages-6.0, LFS-book, и продолжить читать эту статью.
Разбиение диска и создание дерева каталогов
Для лучшего понимания материала опишем весь ход процесса в общих чертах (см. рис. 1).
Рисунок 1. Схема сборки LFS
На первом этапе, с помощью уже инсталлированного дистрибутива или LiveCD, разбивается диск. На жестком диске выделяется раздел для новой системы. После чего на этом разделе нужно будет статически скомпилировать все необходимые программы и ядро системы. Далее происходит смена корневого каталога на раздел жесткого диска, отведенный под нашу новою ОС. Потребуется повторить компиляцию, но на этот раз ПО должно быть собрано динамически (отличие динамической компиляции от статической будет описано ниже). Последний этап включает в себя сборку важнейшей библиотеки glibc и конфигурацию установленной ОС. Как видите, ничего особенно сложного делать не придется.
На протяжении всего процесса ваш главный помощник – документация из пакета LFS-book, русский перевод которой можно взять тут: http://multilinux.sakh.com/download/lfsbook.tar.bz2. В книге подробно описан каждый шаг создания ОС, поэтому обязательно обращайтесь к этому руководству в случае возникновения проблем (данная статья не призвана заменить такую обширную документацию).
Создаем новый раздел – в моем случае это /dev/hda5, так как раздел /dev/hda1 уже занят установленным на жесткий диск Linux Slackware. Рекомендуется предварительно сделать бэкап системы, дабы можно было ее восстановить в случае повреждения, хотя вероятность подобного близка к нулю. И тут, думаю, все понятно: выделяем нужное количество (достаточно 23 Гб) под корневой каталог, пространство, равное удвоенному объему ОЗУ – под swap-раздел, по желанию можно создать отдельные разделы для домашнего каталога (/home) и для /boot. Впрочем, излюбленный многими вариант разбиения – отвести под корневой каталог все доступное пространство минус swap, и последующее создание собственно swap – также вполне допустимо при сборке LFS. На компьютере автора и Linux Slackware, являющийся родительской ОС, и LFS, используют один жесткий диск, впрочем, установить LFS на другой винчестер тоже труда не составит.
Файловую систему выбирайте на ваше усмотрение: и с Ext3, и с ReiserFS никаких проблем под LFS не было. А вот поклонников XFS придется огорчить – попытки заставить Linux From Scratch работать с этой ФС не увенчались успехом.
Теперь монтируем раздел, отведенный под новую ОС :
$ mount /dev/hda5 /mnt/mylin
Для удобства определим переменную MYLIN:
Отлично, для дальнейшей работы лучше создать отдельного пользователя mylin, которого и назначим владельцем смонтированного раздела.
$ chown –R mylin $MYLIN
Нужно создать дерево каталогов в корне нового раздела:
$ mkdir –p bin boot dev etc home lib mnt opt root sbin usr/
В каталогах usr, usr/X11R6, usr/local создаем необходимую структуру : подкаталоги bin, etc, include, lib, sbin, share, src.
Затем то же самое проделаем для каталогов /var и /opt будущей системы:
Не будем забывать, что существуют более глубокие иерархии, например, /usr/share/man/man1. Но объем статьи не позволяет привести здесь всю информацию о структуре файлового дерева, поэтому нужно либо воспользоваться документом Filesystem Hierarhy Standart (можно найти по адресу: http://linux-ve.net/MyLDP/file-sys/fhs-2.2-rus), либо внимательно изучить структуру уже установленной у вас ОС семейства Linux. После подготовки жесткого диска приступаем к статической сборке.
Зачем мы используем статическую сборку? При статической компиляции исходный код библиотеки присоединяется к коду приложения, что влечет за собой увеличение его размера, но при этом сохраняется целостность. При динамической же компиляции библиотека находится в отдельном файле, к которому по мере необходимости обращаются приложения. В итоге все программы работают с одной версией библиотеки
Но когда мы посредством команды chroot установим корневой каталог для вновь собираемой системы, библиотеки «родительской», установленной системы, находящиеся в /lib, /usr/lib, и прочих, станут уже недоступны, поэтому динамически скомпилированные программы работать откажутся, вдобавок совместимость версий никем не гарантирована.
Чтобы избежать этого, все необходимое программное обеспечение для нашей будущей системы мы для начала соберем статически. Начнем, пожалуй, с командного интерпретатора bash. (Поклонники ZSH или TCSH могут установить любимые интерпретаторы после установки системы, но на этапе сборки их использование не предусмотрено автором LFS). Следует проверить, есть ли у вас файл /usr/lib/libcurses.a и если его нет – установите пакет nсursesdev. Все пакеты надо собирать с флагами статической сборки: «—enable-static-link», «—disable-shared» или «—static». Какой именно подходит в каждом конкретном случае, можно узнать из документации к конкретному пакету или из вывода конфигурационного сценария, запущенного с параметром «—help».
Чтобы не спутать позже статически скомпилированные программы с «динамическими», создадим для них специальный каталог:
При сборке и установке пакетов не забываем добавлять параметр «—prefix=$MYLIN/stat» для перемещения файлов именно в этот каталог. И , наконец , ставим bash:
$ ./configure –-enable-static-link —prefix=$MYLIN/stat
По такой же схеме собираем остальные необходимые пакеты : binutils, bzip2, textutils, texinfo, tar, sh-utils, gcc, grep, gzip, gawk, diffutils, fileutils, make, patch, sed, и , собственно , linux-kernel.
Да, при компиляции ядра не забываем, что для старых версий ядер (2.2.x-2.4.x) нужно использовать gcc 2.95, а для текущей версии 2.6.x рекомендуется применить gcc 3.x, дабы не возникло проблем.
Не забываем заглядывать в соответствующие разделы LFS-book, там сказано об этом и многих других нюансах. В целом же компиляция ядра в LFS не отличается от подобной процедуры, проводимой при использовании установленного на HDD дистрибутива. Разархивируем исходники ядра в $MYLIN/usr/src/linux-2.6.xx, после чего конфигурируем, запуская:
Процесс настройки параметров ядра многократно описан в Интернете (6), вряд ли есть необходимость останавливаться на этом подробнее. Далее даем следующие команды в папке с исходными текстами Linux-kernel:
Все, по адресу $MYLIN/usr/src/linux-2.6.xx/arch/i386/boot/bzImage находится новое ядро.
Далее создаем файлы $MYLIN/etc/passwd и $MYLIN/etc/group. В первом прописываем пока единственного пользователя – root с любым паролем, а во втором группы пользователей (для начала одной группы root тоже будет достаточно).
На этом наши приготовления к следующему шагу закончились, и мы переходим уже к более тонкой динамической сборке.
Теперь нам нужно сменить корневой каталог на /mnt/mylin, где мы будем пользоваться только статически собранными утилитами – к помощи инструментов из «родительской» ОС мы уже прибегать не сможем. Даем команду в консоли:
$ chroot $MYLIN/usr/bin/env –i
>HOME=/root TERM=$TERM PS1=’u:w$’
>PATH=/bin: /usr/bin: /sbin: /usr/sbin: /stat/sbin
Этой командой мы указали пути к исполняемым файлам, тип терминала, интерпретатор и вид приглашения командной строки.
Для обеспечения работы некоторых программ, надо установить файловую систему proc в новой системе.
$ mount proc /proc -t proc
Наступил самый ответственный момент. Сборка библиотеки glibc. Самый ответственный он потому, что работать без нее большинство необходимых программ не будет, а в использовании Linux без основной библиотеки смысла нет. Сборка glibc же зачастую доставляет массу проблем.
При сборке мы указывали параметр «—prefix=$MYLIN/stat», поэтому при смене корня все статически собранные пакеты окажутся в каталоге /stat раздела новой ОС.
Итак, распаковываем архив glibc-2.x.x.tar.gz (например, в директорию /usr/src/) и переходим в каталог glibclinuxthreads. Придется немного подправить исходный код ввиду того, что на данном этапе в системе невозможна идентификация пользователя по имени (как раз из-за отсутствия glibc и других библиотек), и того, что для установки glibc нужен интерпретатор Perl, которого у нас нет.
Заменяем имя пользователя root в файле login/Makefile на его uid, то есть 0, а переменную $PERL в файле malloc/Makefile следует заменить на путь к интерпретатору – /usr/bin/perl – и при конфигурировании он просто будет проигнорирован.
$ /usr/src/glibc-2.x.x/configure —prefix=/usr —enable-add-ons —libexecdir=/usr/bin &&
Если вы все сделали правильно, glibc скомпилируется, в строке приглашения наконец-то появится «root», и можно будет динамически перекомпилировать все программы.
Завершим установку ядра :
Чтобы переместить новое ядро в каталог /boot, выполняем еще одну команду:
Собираем все установленные и некоторые новые программы, теперь уже без флагов статической компиляции. Нам потребуются (на данном этапе очень важно не забыть скомпилировать все нижеперечисленное) (см. таблицу 1).
Таблица 1. Необходимый набор пакетов для сборки
Сборка своей операционной системы linux
Сегодня давайте обсудим, как создать пользовательскую сборку live cd image (ISO). И есть много инструментов для этих целей, но все они давно уже не поддерживаются.
Когда-то был инструмент Remastersys, который отлично делал свою работу, но сейчас он уже долгое время не поддерживается и не развивается, хотя пользоваться им все еще можно(смотрите мою последнюю сборку, которая была создана этим инструментом).
Ему на смену пришел Pinguy Builder. Но, похоже, он тоже уже давно не обновлялся. Ведь я не вижу никаких обновлений в последнее время на официальном сайте Pinguy.
Есть еще инструмент для резервного копирования и создания собственных пользовательских образов – Systemback, но он тоже не поддерживается, и в Linux Mint работает через раз.
К счастью, я нашел альтернативный инструмент для создания пользовательских live cd-образов.
Встречайте – Cubic, который расшифровывается как C ustom U buntu I SO C reator, это GUI приложение для создания пользовательского загрузочного образа Ubuntu Live CD (ISO).
Cubic активно развивается и предлагает множество возможностей для создания индивидуального компакт-диска Ubuntu. Он имеет интегрированную среду chroot командной строки, где вы можете выполнять все настройки, такие как установка новых пакетов, ядра, добавление дополнительных фоновых обоев, добавление дополнительных файлов и папок.
Он имеет интуитивно понятный графический интерфейс, который позволяет легко перемещаться (с помощью мыши) во время процесса создания live-образа. Вы можете создать новый пользовательский образ или изменить существующие проекты. Поскольку он используется для создания live-образов Ubuntu, я считаю, что он может использоваться в других дистрибутивах основанных на Ubuntu, таких как Linux Mint.
Для кого это пригодится?
Это пригодится для тех людей, которые после установки новой системы, еще много чего до-устанавливают, или удаляют, и хотят при этом иметь актуальную систему.
Как установить Cubic
Существует официальный репозиторий для облегчения процесса установки. И чтобы установить Cubic в вашу систему Ubuntu, выполните следующие команды в терминале:
Как создать пользовательскую сборку linux с помощью Cubic
После установки найдите и запустите Cubic из меню приложений.
Создайте каталог для вашего нового проекта. Это будет каталог, в котором будут сохранены ваши файлы, а также образ новой системы.
Перед процессом создания, вы должны заранее скачать официальный образ Ubuntu, или другой системы которую вы хотите переделать. Например я скачал KDE NEON с официального сайта, и хочу сделать свою сборку на основе этой системы.
После нажатия “Next”, вы должны выбрать путь, по которому вы сохранили ISO-образа системы. Cubic автоматически заполнит все детали вашей пользовательской ОС. Вы можете изменить все это, если конечно хотите. Нажмите «Далее», чтобы продолжить.
Начнется распаковка iso-образа, и все файлы будут сохранены в вашу созданную директорию
Как только файловая система будет извлечена, вы автоматически попадете в среду chroot. Если вы не видите терминал, несколько раз нажмите клавишу ENTER.
И вот здесь начинается самое интересное. Вы можете установить любые дополнительные пакеты, добавить фоновые изображения, добавить новые репозитории, установить последнее ядро Linux и любую другую настройку. Настолько, насколько вы разбираетесь в GNU/Linux в целом.
Например, я хочу, чтобы google-chrome был установлен в моем live CD, я просто беру, и устанавливаю его как обычное приложение Ubuntu.
Нам не нужно вводить «sudo», потому что мы уже находимся в корневой среде.
Кроме того, вы можете обновить свою систему до актуального состояния введя команду “apt update && apt upgrade”
Но и это еще не все, вы можете просто копировать файлы и папки, а далее вставлять в это окно терминала.
Например я хочу скопировать несколько изображений для рабочего стола. Я создаю новую директорию
Открываю свой менеджер файлов, выделяю нужные мне файлы и просто перетаскиваю их
Внимание! У вас не должно быть кириллических символов в вашем пути. Например программа не распознает вот такой путь – /home/linuxthebest/Загрузки/, лучше просто скопируйте файлы в вашу домашнюю директорию(если название на латинице)
Примечание для пользователей Ubuntu 17.10:
В системе Ubuntu 17.10 поиск DNS может не работать в среде chroot. Если вы создаете пользовательский образ Ubuntu 17.10 в реальном времени, вам нужно указать правильный файл resol.conf:
Чтобы проверить работу разрешения DNS, выполните:
Когда вы внесете все изменения, нажмите «Далее»
В следующем разделе выберите версию ядра Linux, которая будет использоваться при загрузке новой версии ISO. Если вы установили какие-либо дополнительные ядра, они также будут перечислены в этом разделе. Просто выберите Ядро, которое вы хотите использовать в своем реальном компакт-диске.
В следующем разделе выберите пакеты, которые вы хотите удалить из своего live-образа. Выбранные пакеты будут автоматически удалены после установки операционной системы с использованием пользовательского образа в реальном времени. Будьте осторожны при выборе пакетов для удаления, возможно, вы случайно удалите пакет, который зависит от другого пакета.
Теперь начнется процесс создания live-образа. Это займет некоторое время в зависимости от характеристик вашей системы.
После завершения процесса создания образа, нажмите «Готово». Cubic отобразит только что созданные пользовательские детали образа.
Если вы хотите в дальнейшем изменить только что созданный образ, снимите галочку напротив «Удалить все файлы проекта, кроме генерируемого образа диска и соответствующей контрольной суммы MD5 файла». Cubic оставит пользовательский образ в рабочем каталоге проекта, вы можете вносить любые изменения в будущем.
Чтобы создать новую сборку, используйте другой каталог проекта.
Как изменить уже созданную сборку
Запустите Cubic из меню и выберите существующий каталог проекта. Нажмите кнопку «Далее», и вы увидите следующие три варианта:
- Создать образ диска из существующего проекта.
- Продолжить настройку существующего проекта.
- Удалить существующий проект.
Первый вариант позволит вам создать новый live образ ISO из существующего проекта, используя ту же настройку, что и ранее. Если вы потеряли образ ISO, вы можете использовать первый вариант для создания нового.
Второй вариант позволяет вам вносить какие-либо дополнительные изменения в ваш существующий проект. Если вы выберете эту опцию, вы снова попадете в среду chroot. Вы можете добавлять новые файлы или папки, устанавливать любые новые программные продукты, удалять любые программные продукты, добавлять другие ядра Linux, добавлять фоны рабочего стола и т. д.
Третий вариант удалит существующий проект, чтобы вы могли начать все сначала.
Я создал пользовательскую сборку на основе KDE NEON с помощью Cubic. Вот как выглядит система загруженная с флешки
Установка прошла успешно, и в целом система работает как будто я ее скачал с официального сайта.
А вы пробовали это программное обеспечение? Поделитесь своими сборками.
Топ 10 сборок Linux
Топ 10 сборок Linux.
Сегодня поговорим о Linux системах, большое сообщество пользователей Linux поддерживают и обновляют свои дистрибутивы бесплатно. Наверно вы могли слышать про Ubuntu или Mint, но существует достаточно других версий Linux.
Многие операционные системы Linux могут устанавливаться с Windows или еще проще запускаться с DVD диска или USB флешки. Программа, которая отлично справляется с данной задачей запись дистрибутива на DVD диск — ImgBurn.
1 место. Manjaro Linux
Manjaro Linux, подойдет для начинающих, так как очень проста в использовании.
Manjaro, не использует дополнительных инновационных функций для систем Linux, так как задача уделить вниманию проверенным функциям.
Скачать данные дистрибутивы бесплатно:
2 место. Linux Mint
Данный дистрибутив создан на базе известной операционной системе Linux Ubuntu. У Вас будет несколько сред для работы: Cinnamon, MATE, Xfce и KDE.
Красивый дизайн и простая настройка, подойдет для новичков.
Скачать данные дистрибутивы бесплатно:
Ubuntu, отличается простой системой и отлично справляется с мультимедийным контентом. Это базовый дистрибутив, который работает стабильно. Для начинающих будет полезный инструмент Software Center – который помогает установить бесплатные программы за несколько кликов и без терминала. Также существует выделенный серверный вариант, без графического интерфейса.
Скачать данный дистрибутив бесплатно:
Debian уже проверенная и протестированная годами система, которая считается самым популярным сервером в Германии. Debian можно адаптировать под любые нужды.
Скачать данный дистрибутив бесплатно:
5 место. Elementary OS
Elementary OS, похожа на операционную систему macOS. В системе есть необходимые программы для видео, аудио, фото и документов, браузер и мессенджеры. Можно устанавливать программы за несколько щелчков через Центр программного обеспечения.
Скачать данный дистрибутив:
Solus эта операционная система для всех. Программное обеспечение Gnome и основана на графическом наборе инструментов GTK + (GIMP Toolkit).
Скачать данный дистрибутив:
7 место. MX Linux
MX Linux данный дистрибутив основан на Debian и antiX. Вы можете легко установить на старые ПК, требования к системе очень низкие.
Скачать данные дистрибутивы:
8 место и 9 место. Fedora & Antergos
Свободное программное обеспечение с открытым исходным кодом. У Разработчиков Fedora есть цель поддерживать самые новые инновационные и интересные концепции.
Antergos есть 6 оболочек: Cinnamon, Gnome, KDE, Mate, Openbox и Xfce. Существует LiveISO который позволяет запустить без установки операционную систему. После установке вы можете сразу начать работу, так как нужные программы уже установлены.
Скачать данные дистрибутивы:
10 место. TrueOS
TrueOS дистрибутив основан на Unix (FreeBSD), которая понятна и проста в использовании. Имеет графический интерфейс Lumina.
linux с нуля (сборка)
Привет, линуксоиды! Недавно захотелось подробнее разобраться со строением линукс дистрибутивов. Вот, собственно, и спрашиваю опытных: как собрать свой дистрибутив линукс с нуля (скорее. мини дистрибутив)? Желательно поподробнее. Ссылки на статьи приветствуются 🙂
Лучший выбор — LFS. А вообще все Linux-дистрибутивы позволяют скомпилировать себя из исходного кода (SRPM и DEB-SRC).
я так убунту себе запорол
я так убунту себе запорол
Ещё один любитель пороть убунту. так и запишем: убунтофил
ну. это совсем не с нуля же
спасибо за ссылку. а кто нибудь из Вас собирал свои сборки? чисто с нуля
ТС с нуля ничего не осилит и бросит. А так может и поучится/втянется. Часто бывает, что не понимают, что с нуля — это LFS, а просто хотят набор программ умольчальных.
я собирал. в lfs всё немного избыточно, можно сделать проще, особенно если собираешь ради пробы
Ты понимаешь, для некоторых это занятие — есть больше потеря времени, чем прокачка скиллов. Лучше лишний раз покодить чё-нить. Хотя кому как. LFS были актуальны на заре линуксостроения, когда дистров было мало. Щас от этого толку мало, особенно когда надо денежку зарабатывать. Если ты школота и хорошо успеваешь по всем предметам, то можешь и заморочица, чё.
у меня так брат умер
Да какая тебе разница, собирал кто здесь или нет? Там же подробное руководство, любой соберет, если будет все внимательно и последовательно делать, даже без понимания сути. Вопрос в другом: зачем это тебе?
для саморазвития. спасибо за ответы, не ожидал, что так быстро среагируете 🙂
Чем LFS избыточна?
можно не собирать свой тулчейн
можно выкинуть кучу софтин, которые там предлагается собирать ради совместимости с lsb, а если пойти дальше — и заменить coreutils и co на busybox
я LFS не оценил. LFS превращает тебя в помесь обезьянки и баш-интерпретатора. Лучше самому покурить, как работает инит и прочее, и сделать
Текст между приведёнными командами читать пробовал?
воот. именно это и интересует
Текст между приведёнными командами читать пробовал?
По сути его там нет.
- запилить свой или (менее круто) взять готовый пакетный менеджер
- собрать базовый туллчейн
- тулчейном пересобрать тулчейн
- последним тулчейном собрать всю оставшуюся систему
- .
- PROFIT
Извини, не понял.
любой дистреб базируется на двух слонах: на пакетном менеджере и туллчейне.
заменить coreutils и co на busybox
Ну это уже для всяких там роутеров собирать если. А на десктопе нафига корутилс выкидвать?
можете разъяснить, как собрать свой линукс на busybox? LFS не заинтересовал(
не слушай этих клоунов. начинай с lfs, вдумчиво разбирая предложеные там команды; а потом у тебя таки вопросов не возникнет
А почему бы не попробовать Gentoo? Это дистрибутив, который полностью собирается из исходников, но при этом не требует рутинной ручной сборки всех пакетов, как в LFS, потому что скрипты для их сборки не надо руками вводить в консоль, а они уже написаны в виде ебилдов.
да, а виде расплаты — жёстко прописаные избыточные зависимости, при отсутствии в большинстве пакетов нормального набора юзов, плюс куча ненужностей притянутых профилем
я уж не говорю о том, что портеж делает всё автоматически, и никакого «своего» дистрибутива так не собрать. разве только переписать половину ебилдов системы под себя, но это сложнее lfs-а, тк потребует раскуривания ещё и генту девмануала
Интернет, компьютеры, софт и прочий Hi-Tech
Сервисы
Избранные доки
Метки (все метки)
Дополнительно
Собственная сборка Linux — это очень просто
Предположим, в вашей организации — пара сотен компьютеров, на которые требуется установить GNU/Linux и определённый комплект софта. Можно очень существенно сэкономить время, силы и электроэнергию, если создать собственную сборку с требуемыми программами «из коробки». Чтобы одним махом всё инсталлировать. Причём, изготовить собственную комплектацию дистрибутива действительно несложно.
Remastersys
Будем использовать известную (в узких кругах) программу Remastersys. В сети, конечно, имеются инструкции, но они сумбурные и путанные. Поэтому сведём подборку команд к необходимому минимуму.
Вообще-то разработчик Remastersys объявил, что он устал и прекращает развитие программы. Сообщил, что другие энтузиасты, возможно, сделают «форки» (свои варианты) и проект не заглохнет окончательно. Однако сайт remastersys.com ещё работает, и на нём по-прежнему доступны deb-пакеты для Ubuntu (пригодные как минимум для Ubuntu 12.04, 12.10 и 13.04). Вот здесь: http://www.remastersys.com/ubuntu/pool/main/r/remastersys/.
Ну а поскольку наиболее популярным выбором считается Linux Mint («Мята»), будем описывать создание *.iso именно на его основе. Обои оставим скучные.
Подготовка
- компьютер с эталонной системой;
- deb-пакет с Remastersys;
- чай, кофе (по желанию);
- вентилятор (тоже опционально).
Как понимать словосочетание «эталонная система»? В идеале: свежая установка GNU/Linux (в нашем случае — «Мяты»), ещё не захламлённая. Выпиливаем лишние программы, добавляем нужные, производим обновление браузера, почтового клиента, кодеков (вообще, обновлять в Linux Mint лучше не всё подряд, а выборочно).
Если же установка не свежая, то систему желательно слегка почистить с помощью утилиты BleachBit (есть в репозиториях Canonical).
Выкосить все лишние (неиспользуемые) пакеты и кэш их установщика можно (и нужно) командой
в эмуляторе терминала.
Но главное — безупречная работоспособность ОС, чтобы ничего сломано не было шаловливыми руками. Перезапустите сеанс — если всё по-прежнему работает, тогда движемся дальше.
Двойной клик на *deb с Remastersys — ожидаем загрузки трёх с половиной десятков зависимостей, инструментов для создания ISO-образа. Также нужен пакет ubiquity-frontend-gtk, однако таковой из репозитория Ubuntu для Linux Mint не подходит, поскольку у «Мяты» установщик немного иной. Но, как будет показано далее, это не наша забота.
Сборка
Первый этап. Готовим чай, ставим вентилятор поближе к компьютеру и запускаем в эмуляторе терминала команду:
Сначала Remastersys самостоятельно обратится к репозиторию Linux Mint и скачает модификацию пакета ubiquity-frontend-gtk, заточенную именно под «Мяту». После небольшой подготовки и демонстрации в окошке терминала некоторого количества неинтересного текста на английском, начнётся нешуточный разогрев процессора.
Вот тут-то и наступит время, когда неплохо бы включить вентилятор и направить его на внутренности компьютера, сняв крышку системного блока. (Если это ноутбук, то в холодное время года можно просто поместить его на сквозняке у открытого окна.) Потому что упаковка системного раздела в формат Squashfs, используемый для дистрибуции GNU/Linux, полностью загрузит все наличествующие ядра процессора.
В эмуляторе терминала отобразится примитивная (из псевдографики) строка прогресса, показывающая, что чай успеете выпить без спешки.
Второй этап. Remastersys создаст в домашней директории свою папку (словно считает себя ещё одним пользователем). Там будут лежать компоненты будущего LiveDVD. Но ещё нужно запаковать их в ISO-образ. По умолчанию предлагается таковой с наименованием «custom». Почему бы и не согласиться:
Если чай (или кофе) ещё не допили, на это есть несколько минут. Затем берём готовый файл custom.iso из папки Remastersys, то бишь копируем его в удобное место — и приступаем к тиражированию (прожигу) установочных болванок.
Этап третий. Пока болванки прожигаются, произведём уборку, ведь работоспособная эталонная система, конечно же, ещё пригодится. Можно так:
Впрочем, лучше вообще снести папку этого «нового пользователя», а то глаза мозолит. Простейший способ — запустить файловый менеджер с полновластными привилегиям («sudo название_менеджера») и произвести удаление тривиальным способом.
Запуск сборки
Старт новой сборки отличается от запуска стандартного LiveDVD с Linux Mint следующими моментами:
- к Live-меню прикручена иная картинка-заставка;
- для входа в Live-сессию нужно указать имя пользователя custom, а вместо ввода пароля следует просто нажать Enter (пустой пароль);
- работает звуковая индикация успешного входа, традиционно сломанная в оригинальной «Мяте».
Ярлык «Установить. » на рабочем столе есть. Настройки по умолчанию — как у оригинального дистрибутива, даже обои те же.
Заключение
Как видим, на данном историческом этапе для создания собственной сборки GNU/Linux на основе Ubuntu достаточно всего лишь несложной подготовки и пары-тройки команд в эмуляторе терминала. Зато экономится море времени — не доведётся устанавливать на множество машин одни и те же программы вручную, не нужно с обновлениями на каждом компьютере возиться.
Возможно, в будущем установочные образы дистрибутивов изменятся, появятся новые стандарты. Тогда Remastersys, вероятно, технически устареет. Однако есть надежда, что актуальные модификации, «форки» и аналоги такого удобного инструмента всё же будут развиваться.