Cоздание своего дистрибутива Linux с помощью Remastersys

  • Автор темы aNim
  • Дата начала
  • Просмотров 4814 Просмотров
  • Теги
    linux

aNim

Продавец
289
274
19 Дек 2016
( спиженно, для ознакомления, стоит попробовать )
f0e6d7b752e51a0d01307.png

ВВЕДЕНИЕ


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

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

Теперь, когда всё настроено и установлено, будем создавать свою сборку. Для этого нам в первую очередь необходимо свободное место на разделе с папкой /home не менее 6 ГБ.

Для создания сборки есть несколько инструментов. Мы будем говорить о Remastersys, который позволяет создать полноценную сборку даже не очень продвинутому пользователю.

Все действия дальше описаны для Ubuntu, но подходят для всех Debian совместимых дистрибутивов.

1. УСТАНОВКА
Для Ubuntu 12.04 Precise и Ubuntu 14.04 Trusty Tahr установить Remastersys лучше через терминал. Открываем терминал и вводим по очереди следующие строки:

sudo apt-add-repository ppa:mutse-young/remastersys
sudo apt-get update
sudo apt-get install remastersys remastersys-gtk



Для Ubuntu 16.04 Xenial Xerus скачайте 2 пакета Для просмотра ссылки Войди или Зарегистрируйся и установите вручную 2 пакета: remastersys_3.0.x-2_all.deb и remastersys-gtk_3.0.x-2_all.deb

Для предыдущих версий Ubuntu придется скачать Для просмотра ссылки Войди или Зарегистрируйся.

2. ПЕРВЫЕ ШАГИ
Запускаем Система ⇒ Администрирование ⇒ Remastersys (Я использую Мате 1.6. С другими рабочими столами расположение может отличаться). Видим вот такое окно:



Коротко об основных кнопках:

Backup - полная резервная копия установленной системы, включая пользовательские данные и настройки. Сохраняется полностью все файлы в домашних каталогах пользователей системы.

Dist - резервная копия только установленной системы, БЕЗ пользовательских данных. Самый оптимальный вариант для создания сборки системы. Создается структура загрузочного диска и образ диска(iso).

Distcdfs - то же, что и Dist, но создается структура загрузочного диска без создания образа диска(iso).

Distiso - создает образ диска(iso), при условии готовой структуры загрузочного диска. Применяется только после Dist или Distcdfs.

Очистить - очистить временную папку программы. Используется для очищения папки перед созданием нового образа.

Переходим во вкладку Settings:

%D1%81%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-remastersys-1.png



Здесь мы видим параметры нашей будущей сборки. Рассмотрим самое необходимое.

Username - имя пользователя по-умолчанию при входе в систему LiveCD.

CD Label - метка диска. Высвечивается название при загрузке диска в CD-привод. Ограничение 32 символа, учитывая пробелы.

Filename - имя файла созданного образа.

Остальное пока трогать не будем.

Итак зададим:

- Имя пользователя в строке Username, скажем, alex;

- Придумаем название нашей сборки и запишем в CD Label, допустим, AlexBuntu;

- В строке Filename запишем имя файла сборки, AlexBuntu-12.04-x32.iso.

Должно получится следующее:

%D1%81%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-remastersys-1_1_.png



Галочка в строке Show install icon on Backup mode desktop создает иконку установки Вашей системы на рабочем столе. Опция работает на всех основных рабочих столах.

Теперь переходим на вкладку Actions:

%D1%81%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-remastersys.png



Нажимаем кнопку Dist. Появится окно:

0_81622_3d643481_orig.png



Жмем ОК. Появится окно:

0_81623_63beed63_orig.png



Всё, теперь можете спокойно и не торопясь попить чай или кофе. Минут через 15 - 60 (всё зависит от мощности ПК) появится сообщение:

0_81625_ca6be5f0_orig.png



Поздравляю Вас с первой Вашей сборкой!

Файл сборки находится по адресу /home/remastersys/remastersys и имеет то имя, которое Вы дали своей сборке. В моем случае это файл AlexBuntu-12.04-x32.iso. В этой же папке есть еще текстовый файл контрольной суммы образа с расширением md5, в моем случае файл AlexBuntu-12.04-x32.iso.md5.

Теперь Вы можете записать свою сборку на диск и насладиться своим творением. Возможно при входе в систему с LiveCD придется ввести имя пользователя, которое было выбрано при создании образа, в моем случае это alex. Пароль оставьте пустым.

3. РАСШИРЕННЫЕ ВОЗМОЖНОСТИ
Многих устроят выше описанные главы. Если Вы всё еще читаете, то Вы действительно хотите познать все тонкости создания сборки, приближенной к профессиональной.

В первую очередь коснемся вкладки Settings и рассмотрим остальные нужные строки.

Working directory - рабочая папка программы. Вы можете ее переназначить в любое место и на любой раздел.

Ну и самая важная строчка настроек Squashfs options.

Remastersys использует для создания дистрибутива возможности SquashFS. Чтобы понять весь смысл данной строки предлагаю Вам Для просмотра ссылки Войди или Зарегистрируйся, в котором прекрасно изложен весь смысл этого мощнейшего инструмента.

После изучения всех возможностей добавим в нашу строчку Squashfs options следующие опции: -comp xz.

Строчка должна иметь вид:

0_8162c_1d47973b_orig.png



Эта опция устанавливает алгоритм компрессии xz вместо gzip по-умолчанию, что сожмет нашу сборку примерно на 20-25% лучше.Эта опция доступна с версии squashfs 4.2 и, например, в Ubuntu 10.04 она не доступна. В версии Ubuntu 12.04 установлена нужная версия 4.2 squashfs.

Чтобы проверить, доступна ли эта опция, наберите в терминале mksquashfs. Если вы видите похожее на следующее:

mksquashfs

SYNTAX:mksquashfs source1 source2 … dest [options] [-e list of exclude dirs/files]

Filesystem build options:

-comp <comp> select <comp> compression

Compressors available:

gzip (default)

lzo

xz

то всё в порядке и использовать опцию -comp xz можно смело.

4. ЗАГРУЗОЧНОЕ МЕНЮ
По-умолчанию Remastersys создает загрузочное меню сборки довольно-таки скучное и однообразное. Одно только радует, что меню достаточно функциональное. Я долго искал простой способ включения своего меню без пересборки всего образа. Все дальнейшие действия не были задуманы авторами Remastersys и являются своего рода моими уловками и обходными способами, к которым я шел несколько месяцев различными экспериментами. Поэтому этот раздел не претендует на правильную инструкцию по Remastersys.

Итак. Вот такое загрузочное меню мы имеем в стандартной установке:

0_8178f_6f4606b6_orig.png



Вот такое меню можно получить после некоторых манипуляций:

0_81790_e2bbfccd_orig.png



Такое загрузочное меню используется в одной из моих сборок. Как видим, картинка изменена и меню русифицировано. Кроме всего прочего я убрал название дистрибутива из меню и написал его в GIMPe яркими красками. Сейчас мы с Вами и займемся заменой картинки и русификацией меню. Для этого нам потребуется обратить внимание на содержимое файлов в папке /home/remastersys/remastersys:

0_81794_1cc4fbb8_orig.png



Здесь нас интересует папка ISOTMP. В этой папке хранятся временные файлы программы Remastersys. Этим мы и воспользуемся. Переходим в эту папку:

0_81797_8218b941_orig.png



Структура данной папки очень похожа на структуру образа диска. Не хватает только папки .disk. В папке isolinux хранятся файлы загрузочного меню. Заходим в нее:

0_81798_ad8fc96c_orig.png



Рассмотрим файлы загрузочного меню:

splash.png - фоновое изображение. Размер изображения 640х480 точек на дюйм.

isolinux.cfg - конфигурационный файл загрузочного меню.

vesamenu.c32, isolinux.bin - системные файлы.

Смело меняем фон загрузочного меню на свой. Тип файла и название должно остаться таким же. Размер изображения обязательно 640х480 точек на дюйм.

Далее я выложил листинг отредактированного конфигурационного файла isolinux.cfg. За основу взят стандартный конфигурационный файл Remastersys. Я постарался максимально понятно написать комментарии к строкам. Почти вся информация в интернете на английском языке и очень краткая, поэтому много времени потратил на эксперименты, чтобы узнать, что и как работает.

default vesamenu.c32
prompt 0
timeout 100
font cyr_a8x16.psf
# Фон загрузочного меню
menu background splash.png

# Цвет имеет первые два регистра прозрачности значение от 0 (прозрачно) до 255 (непрозрачно) в HEX.
# Остальные 6 цифр цвет в режиме HEX (код цвета можно взять из GIMPa). Сначала пишется цвет букв, потом фона, потом 3 режима тени (none, std, all)

# Цвет заголовка
menu color title * #ff00923F #00000000 none
# Цвет оконтовки меню (бордюра)
menu color border * #00000000 #00000000 none
# Цвет выбранной строки меню
menu color sel * #7fffffff #00000000 none
# Цвет невыбранной строки меню
menu color unsel * #ffC4613B #00000000 none
# Цвет неактивной строки (отключенной но отображающейся на экране)
menu color disabled * #ffC4613B #00000000 none
# Цвет строки tabmsg расположенной под меню (с надписью Нажмите ENTER для загрузки или TAB для редактирования меню)
menu color tabmsg * #ffCC623E #00000000 none
# Цвет строки timeout (с надписью Автоматическая загрузка начнется через)
menu color timeout_msg * #ffCC623E #00000000 none
#Отступ с верху, строк
menu vshift 1

#Количество строк меню
menu rows 6

# Положение строки tabmsg
menu tabmsgrow 11
# Положение строки timeout
menu timeoutrow 12
menu AUTOBOOT Автоматическая загрузка начнется через # сек
menu tabmsg Нажмите ENTER для загрузки или TAB для редактирования меню
menu cmdlinerow 11

#Ширина меню, количество символов
menu width 80

#Отступ символов слева от края (как табуляция)
menu margin 12


#menu title Ubuntu 12.04 Desktop Mate 1.6
label live
# menu label live - boot the Live System
menu label Загрузить систему с LiveDVD диска
kernel /casper/vmlinuz
append file=/cdrom/preseed/custom.seed boot=casper initrd=/casper/initrd.gz quiet splash --

label install
menu label Установить Ubuntu 12.04 LTS Mate 1.6
kernel /casper/vmlinuz
append file=/cdrom/preseed/custom.seed boot=casper only-ubiquity initrd=/casper/initrd.gz quiet splash --
# Сделать строку меню не активной
# menu disable

label check
menu label Проверить диск на ошибки
kernel /casper/vmlinuz
append boot=casper integrity-check initrd=/casper/initrd.gz quiet splash --

label memtest
menu label Проверить память
kernel /install/memtest
append -

label hd
menu label Загрузиться с первого жесткого диска\\
localboot 0x80



Кодировка файла isolinux.cfg должна быть обязательно CP 866. Можно сохранять и редактировать в Cooledit (текстовый редактор Midnight Commandera), в OpenOffice и др. Взять мой отредактированный файл isolinux.cfg можно Для просмотра ссылки Войди или Зарегистрируйся.

Кроме этого нужно положить в папку isolinux шрифты поддерживающие русский язык. Взять можно Для просмотра ссылки Войди или Зарегистрируйся.

В папке должно получится следующее:

0_8179c_5f8d4ee3_orig.png



Проверьте права доступа файлов должно быть следующее для всех 5 файлов:

0_8179d_dc5794fd_orig.png



Теперь все приготовления закончены. Запускаем Remastersys:

%D1%81%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-remastersys.png



Нажимаем кнопку Distiso. Процесс пересборки образа пойдет намного быстрее, всего 1 - 5 минут, потому что основные файлы системы пересобираться не будут. На выходе будут те же файлы образа и контрольной суммы, но уже с Вашим неповторимым красивым меню.

5. ОЧИСТКА СБОРКИ ОТ "ЛИШНЕГО"
Прежде всего уточню, что речь пойдет не об удалении приложений из сборки, а об удалении временных файлов из кэша, коих великое множество на сотни мегабайт.

Перед очисткой системы установите пакет ubiquity-frontend-gtk.

В первую очередь воспользуемся стандартными инструментами очистки системы. Открываем терминал и пишем:

sudo apt-get autoremove
sudo apt-get clean



Первая команда автоматически удалит все неиспользуемые пакеты.

Вторая команда удалит скачанные файлы пакетов в архиве.

Теперь воспользуемся программой Synaptic и удалим все ненужные настройки, оставшиеся после удаленных пакетов. Открываем Synaptic. В открывшемся окне внизу выбираем группу фильтров «Состояние».

Выбираем фильтр «Не установленные (остались файлы настроек)», выделяем все пакеты, попавшие в этот фильтр. Правой клавишей мыши на выделенном выбираем в меню «отметить для полного удаления» и жмем «Применить».

%D1%81%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D0%BC%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2_synaptic_1_.png



Здесь же в этой группе фильтров удалите пакеты под фильтром «Установленные (авто удаляемые)«

Если фильтры «Не установленные (остались файлы настроек)» и «Установленные (авто удаляемые)» отсутствуют, значит система уже прошла чистку и под данные фильтры ничего не попадает.

Следующий инструмент очистки - программа BleachBit из стандартного репозитория. Интерфейс программы на русском языке, очень доступен для понятия, что Вы будете делать. Также перед очисткой есть кнопка «Предпросмотр», которая покажет, что будет удаляться, и позволяет сделать изменения до удаления. Программа очень эффективно чистит систему от ненужных файлов , а также умеет удалять неиспользуемые языковые файлы. В моей сборке программа удалила около 300 МБ.

%D1%81%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-bleachbit.png



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

Следующим этапом будет очистка кэша программ. В корне системы есть папка /var. В ней программы оставляют свои временные файлы, нужные до поры до времени. Дальше я перечислю папки, в которых можно удалить все файлы, не причинив вреда системе, и тем самым уменьшить размер сборки.

/var/backups

/var/cache/apt/ - не удалять папку archives

/var/cache/apt/archives - не удалять папку partial и файл lock

/var/cache/apt-xapian-index

/var/cache/flashplugin-installer

/var/crash

/var/lib/apt/lists - не удалять папку partial и файл lock

/var/lib/update-notifer/ - не удалять папки package-data-downloads и user.d

/var/lib/update-notifer/package-data-downloads - не удалять папку partial и файл lock

/var/lib/update-notifer/user.d - удалять все файлы обязательно, иначе выдает окно ошибки

/var/tmp



Remastersys в начале установки копирует содержимое папки /var в свою временную папку /home/remastersys/remastersys/dummysys/var, откуда потом и включает в сборку файлы. Учитывая, что после копирования Remastersys проводит еще подготовительные операции, у нас есть примерно 5 минут удалить лишнее из папки/home/remastersys/remastersys/dummysys/var. Тем более, что даже, если мы удалили из папки /var/cache/apt файлы, они всё-равно создаются и копируются в папку /home/remastersys/remastersys/dummysys/var/cache/apt , утяжеляя сборку.

В эти же 5 минут у Вас есть возможность почистить папку /root. В ней оставляйте только те файлы, которые есть в папке /etc/skel и папку Desktop.

6. СОВЕТЫ И РЕКОМЕНДАЦИИ
В этой главе описаны советы и рекомендации по созданию своей сборки, которые сложились у меня, как правила, после многочисленных опытов. Надеюсь, они Вам пригодятся в создании своих сборок.

  • Настройки новых пользователей хранятся в папке /etc/skel. Если Вы хотите, чтобы все пользователи имели какие-то одинаковые настройки отличные от по-умолчанию(дефолтных), то копируйте нужные файлы из своей папки /home/[ваш логин входа в систему] в эту папку, не забывая менять права со своих на права root. Всё подряд копировать туда не нужно, это может привести к определенным конфликтам. Обычно для каждой программы это 2-3 файла настроек. Помните, чем меньше вы туда скопируете, тем профессиональнее будет сборка и меньше проблем у пользователей.
  • Программы запуска для всех пользователей отредактировать, добавить, удалить лучше в папке /etc/xdg/autostart, не засоряя папку /etc/skel
  • Если Вы хотите сделать сборку с рабочим столом отличным от имеющегося в дистрибутиве, то лучше воспользоваться минимальной сборкой без графического окружения, включающей в себя ядро и самый минимум пакетов, который позволяет запускает систему в режиме консоли. И уже поверх этой системы доустанавить нужные пакеты и проводить нужные настройки. Такой метод имеет меньше ошибок, чем если брать готовую полную сборку и пытаться выпилить из нее ненужное.
  • Здесь все возможные mini.iso для Ubuntu от релиза 12.04 до 16.04 Для просмотра ссылки Войди или Зарегистрируйся
Удачи! И пусть мир узнает Ваши творения!



%D1%81%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-remastersys.png