Свой установочный образ Linux Mint

После долгих часов, дней, недель... размышлений, я решил поделиться своими изысканиями относительно создания своей сборки LiveCD LinuxMint. Я не претендую на оригинальность изложенной ниже информации, но захотелось систематизировать все, хотя бы для себя. Я неоднократно ловил себя на мысли "зачем я все это делаю?" и каждый раз находил разумное, как мне кажется, объяснение. Хотелось бы предупредить всех, кто читает эти строки, это не инструкция (хотя все этапы сборки здесь и будут описаны), и не руководство к действию, а просто описание своего видения конструирования своего "дистрибутивчика".

Первое, с чем будущий автор новой "поделки" должен определиться, это - ЗАЧЕМ? Какую конкретную цель преследовать, что Вы хотите этим показать? Второе, Вы это делаете для себя или хотите предложить плоды Ваших трудов другим людям? В третьих, Вы должны осознавать, что времени, на создание качественного продукта, который не стыдно будет предложить другим, нужно много и если Вы не занимаетесь этим профессионально, то этот отрезок может варьироваться от одного месяца до шести и более... Если Вы не готовы тратить на это занятие много времени или Вам важно лишь Ваше тщеславие, то лучше этим и не заниматься (если бы я не работал там, где работаю, думаю, вряд ли я бы занимался этим).

Уже более 17 лет я работаю в сфере образования и в 2002 году нам привезли первые компьютерные классы с процессором от Intel, в то время популярной была операционная система Windows 98 (уже появились и другие производные, но почему-то не прижились они у нас по разным причинам), уже тогда возникала необходимость быстрого развертывания операционной системы в классе. Время шло своим чередом и спустя пару лет пришел класс с более мощными компьютерами, а за ними и повсеместная борьба с пиратством и внезапные посещения сотрудниками соответствующих органов с проверками. Вот тогда я и задумался о внедрении операционной системы Linux в своем учебном заведении. О своих изысканиях я распространяться не буду, об этом в другой раз, но при наличии не очень шустрого канала Интернет устанавливать ОС Linux было очень обременительно, вот тут и пришла идея создать что-то, что могло обеспечить установку операционной системы на все ученические ПК без использования всемирной паутины. Как мне кажется, я ответил на все три поставленных выше вопроса, и я решил приступать к реализации задачи.

В то время, мои знания относительно операционной системы Linux были очень ограничены и по натуре своей - я ленивый человек (в каком-то смысле) и люблю достигать результата наикратчайшим путем, и в то же время имею черту характера - скрупулезность, не люблю делать на "тяп-ляп", поэтому у меня постоянная борьба с самим собой, а что возьмет верх, ну тут уж как карта ляжет. В своих поисках я набрел на программку Remastersys и мне она очень понравилась, совершенно не требовалось специальных знаний для конструирования своего дистрибутива, нужно было только установить все что нужно на компьютер, запустить в консоли sudo remastersys dist и все, на выходе мы получаем готовый образ custom.iso, пишем на болванку и устанавливаем на любой компьютер. На любой ли? Как оказалось - нет! В процессе использования выяснилось, что не на любой компьютер можно установить созданный таким образом образ, кроме того, если Вы создали пользователя в системе, то такого же невозможно создать на клоне, и еще пара мелочей. Таким образом, попользовавшись таким способом клонирования было решено искать другие инструменты для создания образов. Хочу заметить, что эти неудобства не всплыли в одночасье, прошел довольно солидный отрезок времени, прежде чем было принято решение отказаться от Remastersys, очень уж подкупала простота создания "своего детища", и в целом, в пределах одного учебного заведения, его было достаточно, но я и мои коллеги, чувствовали себя одиноко в окружении коммерческих продуктов и хотели раздвинуть границы за пределы одного учебного заведения.

В поисках идеального способа было перелопачено не мало интернет-страниц, по ходу дела пересмотрено много информации, испробовано большое количество разных способов. Рассматривалась и ручная сборка, путем ввода соответствующих команд, но об этом позже. В поле зрения попадали разные инструменты, их не так много, но наиболее понятные для начинающего образостроителя были испробованы и Ubuntu Builder и Ubuuntu Custimization Kit, но выбор пал на не очень популярную программку Customizer, не популярную потому, что ее не так просто найти на просторах Интеренет, если ввести в поисковик Customizer, сразу в результатах появляются ссылки на Grub Customizer, поэтому, можно сказать, что она попалась просто случайно, но ее функционал меня почти полностью устраивал. 


Как видно из интерфейса этой программы, есть все необходимые действия для конструирования. Сейчас все кнопки, кроме одной, не активны. После нажатия на кнопку Select ISO появляется окно выбора *.iso образа над которым будем "издеваться", далее идет процесс распаковки iso-шки и по окончании его активизируются все кнопки. Как для меня, самым важным является то, что можно в любой момент прекратить работу, и также, в любой другой момент, продолжить начатое. Признаюсь честно, из всего доступного функционала использовал только кнопку Terminal, в данном случае запускается привычный нам терминал в chroot-окружении распакованного нами образа, а дальше делай что хочешь. Кто-то любит пользоваться Synaptic-ом, да нет ничего проще, нужно запустить еще один терминал и дать команду xhost +,  после чего в терминале с chroot дать команду synaptic и все, отмечайте, устанавливайте что хотите. Тех, кто собирает Linux Mint, хочу предостеречь от выполнения команды apt-get upgrade, поскольку данная команда установит все доступные обновления, а Linux Mint не устанавливает через менеджер обновления все что предлагают (жаль, но Менеджер обновления из chroot-окружения не работает корректно). Может и не правильно, но из этой ситуации я выхожу таким образом - устанавливаю "свеженькую" систему на любой доступный аппарат или виртуальную машину и запускаю процесс обновления, после чего наблюдаю за происходящим... Сначала обновляется сам Менеджер обновления и еще какой-то пакет, по завершению обновления этих двух пакетов, с помощью любого файлового менеджера (мне очень нравится Gnome-Commander) и переношу из каталога /var/cache/apt/archives/ все что там находится, кроме каталога  partial и файла lock в какую-нибудь временную папку, например, 1. Потом запускаю обновление на продолжение, по окончании поступаю аналогичным образом, но временный каталог теперь называется 2. Таким же образом поступаю и с файлами локализации и пр. В конце всего действа у меня есть уже несколько таких временных каталогов, содержимое которого я копирую в любой каталог разобранной системы, я использую tmp, потом в chroot-терминале перехожу в этот каталог cd /tmp и командую dpkg -i *.deb. Так я поступаю, по-очереди, со всеми имеющимися файлами, которые у меня имеются в результате моих предыдущих действий. Таким образом я получаю обновленную систему, как, если бы, обновлялась она при помощи штатного Менеджера обновления

Дальше я на этой же, установленной системе настраиваю рабочее окружение и копирую конфигурационные файлы в отдельное место, далее они отправятся вместо тех, что находятся в /etc/skel/, здесь они имеют атрибут скрытые, поэтому, включите соответствующую опцию в своем файловом менеджере. Какие именно нужны файлы? Посмотрите внимательно на содержимое каталога /etc/skel/ и сравните с /home/user/, определитесь, что Вы меняли. Можно, для проверки, переименовать имеющийся skel в skel2 и создать новый каталог skel или просто переместить куда-нибудь имеющиеся там файлы, а вместо них, забросить свои, создайте нового пользователя, прелогинтесь и посмотрите на результаты своего труда, если все устраивает, так и оставляем, если нет - работаем над ошибками.

Далее, удаляем, устанавливаем дополнительное программное обеспечение, можно в терминале chroot при помощи команд, а можно и через Synaptic, запущенный там же. (не забывайте в последнем случае должно быть разрешено запускать программы с графическим интерфейсом командой xhost +, выше об этом писалось)

Что удаляю я? Раньше я удалял много чего, но в последнее время пришел к выводу, что не нужно портить то, что создали другие люди и удаляю только две вещи из базового дистрибутива Linux Mint, это 
apt-get remove fonts-nanum banshee
второй только потому, что мне он не нравится, а шрифты - потому, что если их не удалить, то будут проблемы с отображением в Skype
Далее, что я устанавливаю? (тут уж на вкус и цвет...)
Добавляю репозитории...
sudo add-apt-repository ppa:dockbar-main/ppa
sudo add-apt-repository ppa:xubuntu-dev/xfce-4.12
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo add-apt-repository ppa:wine/wine-builds
вручную (/etc/apt/sources.list.d/ в любой фалик дописать)
deb http://repo.acestream.org/ubuntu/ trusty main
добавляем ключ (команда в терминале)
wget -O - http://repo.acestream.org/keys/acestream.public.key | sudo apt-key add -
обновляем все это безобразие
sudo apt-get updateустанавливаем...
apt-get install -y gnome-commander gksu mc htop python-glade2 gparted exo-utils audacious audacity cheese cmake-qt-gui glchess gpm kcheckers system-config-samba testdisk usb-modeswitch sane xsane alien autoconf automake build-essential dkms p7zip-full unace zip unzip p7zip-rar sharutils rar uudeview mpack arj motion pdf2djvu pdftk v4l-utils v4l-conf browser-plugin-gnash swapspace dconf-tools qt4-qmake ttf-mscorefonts-installer fonts-horai-umefont fonts-unfonts-core aisleriot conky conky-all xfce4-dockbarx-plugin dockbarx-themes-extra ncurses-term wukrainian mbr mdadm pastebinit efibootmgr libxtst6:i386 libxrandr2:i386 qpdfview qpdfview-ps-plugin qpdfview-djvu-plugin qpdfview-translations fbreader gedit skype grub-customizer boot-repair xarchiver acestream-full

apt-get install --install-recommends winehq-staging 


apt-get install wine-gecko2.21 wine-mono0.0.8

еще я переустанавливаю все, что касается Bluetooth, здесь повторяться не буду. После всего проделанного нажимаем кнопку Rebuild ISO, ждем завершения процесса и по его окончании забираем готовый образ в /home/, кстати, там же находятся каталоги FileSystem, в котором находится распакованная система, в которую вносим изменения, будущая наша система, и ISO - содержимое установочного диска.

К сожалению, вынужден разочаровать всех "ваятелей", в последней версии Linnux Mint 17.3 Customizer не собрал образ корректно, что-то не заладилось и было принято решение собрать вручную, об этом очень много написано, найти в Интернет не проблема. Мне больше всего понравилась вот эта статья, но собранный таким способом образ оказался не совсем пригодным, пропала кнопка запуска процесса установки и с рабочего стола и в меню. (хотя пакет ubiquity установлен в системе, это он отвечает за установку системы на HDD)

Я не стал экспериментировать и доверился Ubuuntu Custimization Kit, его главный недостаток состоит в том, что нужно все сделать за один раз, не выходя из программы, но так как я уже давно все заготовил, для меня не составило большого труда провернуть всю операцию сборки за пару часов.

В результате появились вот такие два образа

My_LM-17.3-XFCE-32bit.iso


Что изменено...
- настроен рабочий стол;
- установлено все, что выше описано;
- LibreOffice 5.1.2 установлен пакетами с официального сайта и препакован из *.rpm (если этого не делать, возникают проблемы с Impress), добавлено дополнение по нумерации страниц;
- Mozilla Firefox немножко оптимизирован для увеличения скорости работы, добавлено пара-тройка дополнений;
- сама Live-система грузится с русским интерфейсом и сразу же работает переключение раскладок по Ctrl-Shift, если нажать сочетание Alt+1 - клавиатура будет переключаться с английского на украинский, а Alt+2 - с английского на русский;
- эффекты все выключены но настроенны, для включения необходимо зайти в Меню - Настройки - Диспетчер окон (дополнительно) - вкладка Эффекты - отметить чекбокс Включить эффекты.
- установлен DockbarX, соотверственно и "плюшка" к xfce-панели, как его настроить почитайте в Интеренет;
- установлен и работает Ace Stream как в установленной системе так и в Live-режиме;
После установки системы на жесткий диск, все будет работать как и в Live-системе, возможно только обои установятся стандартные.

P.S. Что еще можно покопать...
/lib/plymouth/themes/mint-logo/ находится то, что Вы видите во время загрузки;
/usr/bin/ сюда можно положить свои скрипты;
/usr/share/backgrounds/ здесь лежат обои;
/usr/share/icons/Mint-X/places/24/ здесь лежат иконки;
/usr/share/mate-background-properties/  здесь лежит xml-файл обоев, актуален для некоторых рабочих окружений (в МАТЕ так уж точно) вида

<?xml version="1.0"?>
<!DOCTYPE wallpapers SYSTEM "mate-wp-list.dtd">
<wallpapers>

<wallpaper deleted="false">
    <name>Water</name>
    <filename>/usr/share/backgrounds/linux-for-school/Acacia_1.JPG</filename>
    <options>zoom</options>
    <shade_type>solid</shade_type>
    <pcolor>#000000</pcolor>
    <scolor>#000000</scolor>
    <artist>blumblaum</artist>
</wallpaper>
........
</wallpapers>

/usr/share/xfce4/xkb/flags/ флажки для визуального отображения раскладок клавиатуры

ну и еще много чего можно изменить....







Комментариев нет:

Отправить комментарий