Автор Тема: Cоздание своего дистрибутива Linux с помощью Remastersys  (Прочитано 173728 раз)

Оффлайн BaaTLT

  • Постоялец
  • ***
  • Сообщений: 190
  • Выключи компьютер и живи!
ВВЕДЕНИЕ
Прежде чем делать свою сборку, Вы должны определить цель и задачи своего творения. Иначе сборка может не получить своё предназначение в этом мире и остаться малоизвестной.Итак, цели и задачи определены и Вы решились сделать сборку своей системы.
Для начала Вы должны либо в Virtualbox (или в другой виртуальной машине), либо у себя на компьютере установить операционную систему со всеми настройками, со всеми программами, которые считаете нужными иметь в Вашей сборке.
Теперь, когда всё настроено и установлено, будем создавать свою сборку. Для этого нам в первую очередь необходимо свободное место на разделе с папкой /home не менее 6 ГБ.
Для создания сборки есть несколько инструментов. Мы будем говорить о Remastersys, который позволяет создать полноценную сборку даже не очень продвинутому пользователю.
Все действия дальше описаны для Ubuntu, но подходят для всех Debian совместимых дистрибутивов.

1. УСТАНОВКА
Для установки Remastersys необходимо скачать и установить вручную , например, через программу gdebi, 2 пакета: remastersys_3.x-_all.deb и remastersys-gtk_3.x_all.deb
Актуальные ссылки на скачивание здесь

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

Коротко об основных кнопках:
Backup - полная резервная копия установленной системы, включая пользовательские данные и настройки. Сохраняется полностью все файлы в домашних каталогах пользователей системы.
Dist - резервная копия только установленной системы, БЕЗ пользовательских данных. Самый оптимальный вариант для создания сборки системы. Создается структура загрузочного диска и образ диска(iso).
Distcdfs - то же, что и Dist, но создается структура загрузочного диска без создания образа диска(iso).
Distiso - создает образ диска(iso), при условии готовой структуры загрузочного диска. Применяется только после Dist или Distcdfs.
Очистить - очистить временную папку программы. Используется для очищения папки перед созданием нового образа.

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

Здесь мы видим параметры нашей будущей сборки. Рассмотрим самое необходимое.
Username - имя пользователя по-умолчанию при входе в систему LiveCD.
CD Label - метка диска. Высвечивается название при загрузке диска в CD-привод. Ограничение 32 символа, учитывая пробелы.
Filename - имя файла созданного образа.
Остальное пока трогать не будем.
Итак зададим:
- Имя пользователя в строке Username, скажем, alex;
- Придумаем название нашей сборки и запишем в CD Label, допустим, AlexBuntu;
- В строке Filename запишем имя файла сборки, AlexBuntu-12.04-x32.iso.
Должно получится следующее:
следующее

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

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

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

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

Поздравляю Вас с первой Вашей сборкой!
         Файл сборки находится по адресу /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
Строчка должна иметь вид:
вид

Эта опция устанавливает алгоритм компрессии xz вместо gzip по-умолчанию, что сожмет нашу сборку примерно на 20-25% лучше.Эта опция доступна с версии squashfs 4.2 и, например, в Ubuntu 10.04 она не доступна. В версии Ubuntu 12.04 установлена нужная версия 4.2 squashfs.
         Чтобы проверить, доступна ли эта опция, наберите в терминале mksquashfs. Если вы видите  похожее на следующее:
Цитировать
mksquashfs
SYNTAX:mksquashfs source1 source2 ... dest  [-e list of exclude
dirs/files]

Filesystem build options:
-comp <comp> select <comp> compression
Compressors available:
gzip (default)
lzo
xz
то всё в порядке и использовать опцию можно смело.

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

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

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

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

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

Рассмотрим файлы загрузочного меню
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
append -
Кодировка файла isolinux.cfg должна быть обязательно CP 866. Можно сохранять и редактировать в Cooledit (текстовый редактор Midnight Commandera), в OpenOffice и др. Взять мой отредактированный файл isolinux.cfg можно здесь.
Кроме этого нужно положить в папку isolinux шрифты поддерживающие русский язык. Взять можно отсюда.
В папке должно получиться следующее:
должно получиться

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

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

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

5. ОЧИСТКА СБОРКИ ОТ "ЛИШНЕГО"
      Прежде всего уточню, что речь пойдет не об удалении приложений из сборки, а об удалении временных файлов из кэша, коих великое множество на сотни мегабайт.
     Перед очисткой системы установите пакет ubiquity-frontend-gtk.
      В первую очередь воспользуемся стандартными инструментами очистки системы. Открываем терминал и пишем:
sudo apt-get autoremove
sudo apt-get clean
       Первая команда автоматически удалит все неиспользуемые пакеты.
       Вторая команда удалит скачанные файлы пакетов в архиве.
       Теперь воспользуемся программой Synaptic и удалим все ненужные настройки, оставшиеся после удаленных пакетов. Открываем Synaptic. В открывшемся окне внизу выбираем группу фильтров "Состояние"
Выбираем фильтр "Не установленные (остались файлы настроек)", выделяем все пакеты, попавшие в этот фильтр. Правой клавишей мыши на выделенном выбираем в меню "отметить для полного удаления" и жмем  "Применить".
Применить

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

После удаления языковых файлов рекомендую переустановить пакет locales, иначе возникнут проблемы при установке языковых пакетов в сборке. Переустановка вернет лишь настройки локалей с возможностью установки других языков. Никаких языковых пакетов скачиваться не будет.
    Следующим этапом будет очистка кэша программ. В корне системы есть папка /var. В ней программы оставляют свои временные файлы, нужные до поры до времени. Дальше я перечислю папки, в которых можно удалить все файлы, не причинив вреда системе, и тем самым уменьшить размер сборки.
С версии 3.06 и выше временные файлы удаляются автоматически.
/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
Удачи! И пусть мир узнает Ваши творения!
« Последнее редактирование: 08 Октября 2018, 22:00:46 от BaaTLT »

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3073
  • Что бы ни случилось, всё будет хорошо!
Хорошая инструкция. Редко, где такую встретишь.
Matuntu началась с того, что надо было показать полученный результат установки DE Mate.
Возможно кто-то теперь сможет, чтобы не быть голословным, поделиться своими открытиями.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4812
  • Да будет свет!
К сожалению, Remastersys в 16.04 в тестируемой первой альфе не работоспособен, а его дальнейшего развития не предвидится в отличие от активно развивающегося проекта Systemback, при помощи которого также можно создать образ системы с возможностью новой установки.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4812
  • Да будет свет!
В процессе создания образа при помощи инструментов программы Systemback советы автора темы остаются весьма актуальными.
Спасибо, Алексей!
Делай с нами, делай как мы, делай лучше нас!

Оффлайн BaaTLT

  • Постоялец
  • ***
  • Сообщений: 190
  • Выключи компьютер и живи!
Починил Remastersys для работы в Ubuntu 16.04.
Пакеты лежат здесь.
Внесен ряд улучшений в код, теперь чистит систему от не нужных файлов на автомате.
Пока неправильно работает с plymouth.
В перспективе планы сделать ещё опцию для выбора конфига загрузочного меню диска.

Прошу потестить и прислать свои замечания.
« Последнее редактирование: 30 Апреля 2016, 23:27:55 от BaaTLT »

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4812
  • Да будет свет!
Прошу потестить и прислать свои замечания.
Пакеты скачала. Об итогах тестирования обязательно напишу.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн BaaTLT

  • Постоялец
  • ***
  • Сообщений: 190
  • Выключи компьютер и живи!
Выпустил новые пакеты Remastersys 3.1.0-2.
- Улучшен интерфейс: добавлен выбор своего isolinux.cfg
- Добавлена кнопка удаления своего isolinux.cfg
- Вместо строки с параметрами сжатия флажок выбора усиленного сжатия xz. При отключенном флажке простое gzip.
- Русификация на 80%
« Последнее редактирование: 30 Апреля 2016, 23:39:07 от BaaTLT »

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4812
  • Да будет свет!
Выпустил новые пакеты Remastersys 3.1.0-2.
Тестирование проводилось в Matuntu-X32-M112 с обновлениями на сегодняшний день.
Как и раньше в процессе установки Remastersys появились уведомления об ошибках. Дело привычное, исправлялось при помощи менеджера пакетов Synaptic, устанавливала необходимые зависимости, в т.ч. ubiquity.
Но не в этот раз. При попытке исправить пакеты Remastersys появилось сообщение об ошибках:
Цитировать
E: cryptsetup: подпроцесс установлен сценарий post-installation возвратил код ошибки 1
E: ubiquity: проблемы зависимостей — оставляем не настроенным
E: ubiquity-frontend-debconf: проблемы зависимостей — оставляем не настроенным
E: remastersys: проблемы зависимостей — оставляем не настроенным
E: remastersys-gtk: проблемы зависимостей — оставляем не настроенным
Тем не менее Remastersys запустился.
Продолжу тестирование далее. О  результатах напишу позднее.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн BaaTLT

  • Постоялец
  • ***
  • Сообщений: 190
  • Выключи компьютер и живи!
Проверил установку в чистой Xubuntu 16.04. Устанавливал через gdebi, всё встало без проблем.
Если установка происходит через dpkg -i , то обязательно будут ошибки, так как зависимостей на 21 пакет. После dpkg -i нужно набрать команду sudo apt-get install -f

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4812
  • Да будет свет!
Установила пакеты через gdebi и создала образ. Записала его с помощью утилиты USB Creator.
Загрузила живую сессию. На рабочем столе появился каталог Desktop, в котором находился ярлык установки

Установка закончилась аварийно с сообщениями об ошибке Ubiquity.
« Последнее редактирование: 18 Июля 2020, 14:15:44 от vita »
Делай с нами, делай как мы, делай лучше нас!

Оффлайн alv

  • Ветеран
  • *****
  • Сообщений: 1470
  • Это я и есть
    • Наш Блогосайт
Установка закончилась аварийно с сообщениями об ошибке Ubiquity:
Таня, как Вы помните, примерно таким же сообщением завершается попытка установки с образа, сделанного Systemback'ом. Тем не менее, в этом случае после рестарта выясняется, что система была установлена, запускается и исправно работает. Проверьте с Remastersys, вдруг и там так же?
В любом случае, и то, и другое, конечно, не правильно. То есть не красиво. Напрашивается два решения задачи. Первое - проверить UCK на предмет устанавливаемости и работоспособности, и с его помощью убрать из образа Systemback/Remastersys,
А второе... пока не продумывал деталей, но в двух словах: забить на все компрессии, squashFS и проч., и создавать образ в лоб, прямой командой isolinux, как в доброе старое время. Ведь нынче нет необходимости вписывать образ в 650 МБ.
За прекрасных дам!

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4812
  • Да будет свет!
Алексей, образ, собранный при помощи обновлённого Remastersys, не установился. Systemback-овский устанавливается где бы ни проверяла.
А второе... пока не продумывал деталей, но в двух словах: забить на все компрессии, squashFS и проч., и создавать образ в лоб, прямой командой isolinux, как в доброе старое время. Ведь нынче нет необходимости вписывать образ в 650 МБ.
Было бы интересно побольше узнать о деталях. Заранее благодарю.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн BaaTLT

  • Постоялец
  • ***
  • Сообщений: 190
  • Выключи компьютер и живи!
Татьяна.
Всё сделано как раз для удобства. Как раньше в лоб это без галочки усиленное сжатие. Systemback использует те же опции.
На счет ubiquity проверю. Если честно, кроме xubuntu не проверял. Попробую поставить Мате. В любом случае похоже на ошибку пакета ubiquity. Была кстати подобная в 12.04, пока не обновили пакет.
« Последнее редактирование: 02 Мая 2016, 10:37:00 от BaaTLT »

Оффлайн BaaTLT

  • Постоялец
  • ***
  • Сообщений: 190
  • Выключи компьютер и живи!
Цитата: alv link=topic=178.msg3247#msg3247
А второе... пока не продумывал деталей, но в двух словах: забить на все компрессии, squashFS и проч., и создавать образ в лоб, прямой командой isolinux, как в доброе старое время. Ведь нынче нет необходимости вписывать образ в 650 МБ.

Это что ещё за команда? Просветите меня.
« Последнее редактирование: 02 Мая 2016, 10:19:40 от BaaTLT »

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3073
  • Что бы ни случилось, всё будет хорошо!
Всё сделано как раз для удобства. Как раньше в лоб это без галочки усиленное сжатие. Systemback использует те же опции.
Systemback без галочки сжимать образ в XZ не будет. Что понимать под удобством? То, что в Systemback не нужно формировать skel, а в Remastersys без этого никуда.
На убунтовском форуме сейчас много пишут о багах установщика (ubiquity). Сборка утяжеляется мегабайт на 300 (skel+ubiquity с сотоварищами).