Делаем белорусскую ОС, или кастомизация Линукса

Допустим, вы приобрели компьютер с предустановленной ОС Linux или установили ОС сами, доведя её до «ума», или вам кто-то установил ОС, или вам нужно перенести ОС на другой компьютер, или вы хотите поделиться своей восхитительной ОС с другом, или же просто хотите обезопасить себя, но у вас ...нет дистрибутива! Тогда вам надо решить задачу, обратную установке ОС, учтя внесённые изменения. Эта работа называется кастомизацией установленной ОС. В настоящее время это нетрудно, именно так и появляются «русские линуксы». :) Работа увлекательная и полезная, но по неопытности может отнять много времени. К счастью, подводные камни удаётся обойти.

Для кастомизации ОС уже давно существуют различные инструменты. Перечислю их в порядке возрастания популярности, отдавая предпочтение инструментам, предназначенным для Debian-ветви Линукса.

Reconstructor – платное ПО, разработано фирмой Lumentica. Работает только с продуктами фирмы Canonical. Позволяет изменить вид логин-экрана, обои и многое другое. В силу закрытости и платности далее не рассматривается.

Uck – Ubuntu Customization Kit. Домашняя страница – fabrizioballiano.net Это инструмент, который вам позволит сделать Ubuntu Live CD (а также Kubuntu/Xubuntu/Edubuntu и др.) для ваших нужд. Особенность: в процессе кастомизации по своему усмотрению вы можете добавлять различные дисплейные и оконные менеджеры, приложения и языки, не обязательно присутствующие в ОС-прототипе. Инструментарий работает только с теми ОС, которые устанавливались из дистрибутивов от Canonical. Заслуживает отдельной статьи.

Remastersys – самый популярный до недавнего времени инструмент, который для ОС Debian и её потомков решает две задачи: 1) выполняет кастомизацию рабочей ОС и 2) делает полный её бэкап, включая все персональные данные. Представляет собой открытое ПО, написанное на скриптовом языке bash. Уже считался мёртвым, но недавно снова стал поддерживаться. Многие до сих пор пользуются этим инструментом. К сожалению, его работа скрыта от пользователя, которому ничего не разрешается походу перенастраивать, даже менять сплэш-заставку. Желающих ознакомится с remastersys отсылаю на http://remastersys.com/ubuntu.html.

Relinux – это FOSS-инструмент, который создаёт кастомизированный дистрибутив из вашей установленной ОС Linux. Дистрибутив имеет свойства LiveCD, что является ценным при ремонте ОС. Relinux ответвился от remastersys. Все версии этого кастомизатора вплоть до версии 0.4 были написаны на скриптовом языке bash. Начиная с версии 0.4, разработчик перешёл на интерпретатор Питон. Правда, использовать эту версию relinux'а я пока не рекомендую из-за наличия ошибок. Отмечу, что в отличие от remstersys relinux не позволяет бэкапить установленную ОС, зато чрезвычайно прост для пользователя, даже для начинающего, имеет гибкие настройки и создаёт меньше неожиданных проблем, чем его предшественник. Его-то и рассмотрим.

За простоту надо платить. Из-за этого relinux имеет следующие ограничения:

  • поддерживает GRUB2 без декоратора BURG и не поддерживает GRUB-Legacy,

  • требует наличия в системе дисплея, работающего с сервером X11, так как Ubiquity (инсталлятор такой) работает только с X11,

  • допускается использовать только инсталлятор Ubiquity и никакой другой,

  • исходная сжатая файловая система не должна превышать 4 Гб,

  • в кастомизированной ОС будет установлен менеджер metacity, если версия relinux'а старше, чем 0.3.

Устанавливаем relinux

Relinux получил GUI (графический пользовательский интерфейс), только начиная с версии 4.0. Обойдёмся без GUI, настолько прост CLI (командный интерфейс) этого кастомизатора. Заходим на страницу https://launchpad.net/relinux и жмём All downloads. Выбираем последнюю CLI-версию, на дату написания статьи это была версия 0.3a3, и скачиваем архив файлов. Переходим в директорию загрузок и открываем там эмулятор терминала. Проверяем контрольную сумму сжатого тарболла командой:

md5sum relinux-0.3a3.tar.gz

Она должна быть такой, как указал разработчик. Иначе скачивайте архив снова. Распаковываем архив в домашнюю директорию и переходим в неё, выполнив команду

cd

Устанавливаем relinux командой:

sudo cp -R usr etc /

Удаляем из домашней директории папки usr и etc, а также файл INSTALL, они больше не нужны. Всё, кастомизатор relinux установлен, теперь его немного настроим. В Линуксе принято использовать дефолтные конфигфайлы только как аварийные. Поэтому скопируем в домашнюю директорию дефолтный конфигфайл кастомизатора:

cp /etc/relinux/relinux.conf ./relinux.conf

Немного подправим рабочий конфигфайл ./relinux.conf с помощью любого текстового редактора, например, gedit:

gedit relinux.conf

В строчку

EXCLUDES="$WORKDIR*"

после звёздочки через пробелы добавляем файлы и пути к ним, а также директории, которые, по вашему мнению, не должны войти в кастомизированный дистрибутив. Переменная WORKDIR указывает на папку, где будет создан образ кастомизированной ОС. По умолчанию значение этой переменной – папка /home/relinux. Её исключают из образа ОС. Кроме того, нет смысла включать в дистрибутив и конфигфайл кастомизатора, поэтому строчка исключений может выглядеть как:

EXCLUDES="$WORKDIR* /home/user/relinux.conf"

Замените имя user на ваше. Прежде чем сохранять отредактированный файл, полезно также изучить и другие пункты конфигурации кастомизатора. Возможно, вы ещё что-то пожелаете изменить. По умолчанию, запуская созданный образ, как Live CD, вы будете логиниться, как custom, с последующим пустым паролем. Можете изменить логиннейм custom на своё имя. Впрочем, при установке ОС вам всё равно будет предложено определить новый логин и пароль. Также можете изменить и имя дистрибутива на более подходящее. В строчке

SPLASHIMAGE=/etc/relinux/relinux/splash/splash.png

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



Подготовка

Очень рекомендую добавить в установленную ОС утилиту gparted. Она необходима для будущего LiveCD.

Возможно, что вы пользователь со стажем, и не захотите терять свои привычные темы, обои, конфигурацию панелей и т.д. Здесь на помощь приходит т.н. скелетонный директорий /etc/skel (далее – скелетон). Скелетон предназначен для размещения файлов и папок, которые автоматически копируются в домашний директорий нового пользователя во время создания этого пользователя, а именно это и происходит при установке ОС из дистрибутива или при запуске LiveCD. Скелетон содержит важные скрытые скрипты, имена которых можно увидеть командой терминала

ls -a /etc/skel

Кроме того, скелетон обычно содержит файлы примеров аудио и видео, чтобы после установки ОС можно было проверить работу драйверов. Просто так изменить содержимое скелетонного директория нельзя. Чтобы что-то добавить в скелетон, запустите с помощью эмулятора терминала свой любимый файловый менеджер, например,

sudo nautilus

Теперь можно скопировать в скелетон из домашней папки темы, скрипты и т.д. Советую скопировать скрытую папку .config. Если темы и иконки из домашней папки вы не помещали в скелетон, то скопируйте их в следующие папки соответственно: /usr/share/themes и /usr/share/icons. Очистите свою свою систему от ненужных пакетов с помощью команды

sudo apt-get autoremove

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

Удалите все лог-файлы из директория /var/log или перебросьте их на другой диск (раздел), если они вам почему-то ещё будут нужны.

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

gnome-user-guide, ubuntu-docs, gimp-help-common, yelp

Можно также удалить т.н. «метапакеты», содержащие информацию о пакетах, изначально установленных по умолчанию. Пример: ubuntu-desktop. Удалите игры, в которые не играете. Удалите установленные пакеты, которые не используете. Отключите все автоматически запускаемые приложения. Наконец, отмонтируйте все внешние диски и отключите их автоматическое монтирование, если оно было включено.

ВАЖНО! Компьютер должен быть подключен к Интернету, чтобы позволить кастомизатору подкачать из Интернета загрузчик Ubiquity, так как в установленной ОС его нет.

Перезагрузитесь.

Делаем образ

Образ надо делать не с помощью эмулятора терминала, а с помощью виртуального или реального терминала. Включаем 3-ий виртуальный терминал горячим сочетанием Ctrl+Alt + F3. (Cначала надо нажать Ctrl+Alt, затем, удерживая их, нажать F3.) Можно включить и любой другой терминал с1-го по 6-ой. Логинимся и вводим свой административный пароль. Командой

sudo -i

становимся беспредельщиком по отношению к своей ОС. Переходим в свою домашнюю папку командой

cd /home/user

По-прежнему user – это ваше имя, как пользователя. Для создания образа служат две команды:

relinux fullclean [конфигфайл]

relinux iso [конфигфайл]

Если конкретный конфигфайл не указывается, то кастомизатор использует дефолтный конфигфайл, что я бы не рекомендовал. Поэтому будем пользоваться командами

relinux fullclean ./relinux.config

relinux iso ./relinux.config

1-ая команда чистит рабочий директорий, вторая команда создаёт файловую систему образа (ею является squashfs) и сам образ. Запускаем 1-ую команду. Кроме чистки рабочего директория 1-ая команда проверяет готовность системы к обработке. Все выводимые на экран строчки, содержащие имена необходимых компонент, должны заканчиваться на «OK». Иначе дальнейшая работа становится бессмысленной. В таком случае необходимо перезагрузиться и попытаться восстановить целостность системы, загрузив её в безопасном режиме. После того, как отработает 1-ая команда, если всё ОК, запускаем 2-ую.

2-ая команда дополнительно проверит готовность системы к кастомизации и проведёт её в 5 шагов. Это занимает минут 20-30 в зависимости от параметров вашего компьютера. После ввода 2-ой команды посматривайте на экран и следите за выводимыми сообщениями. Не должно быть аварийных сообщений. Допустимы сообщения об отсутствии некоторых системных ссылок, при этом будут создаваться пустые ссылки. Работа второй команды заканчивается созданием образа custom.iso и его контрольной суммы в директории /home/relinux. Также будет выведен размер, который займёт на жёстком диске развёрнутая кастомизированная ОС после установки. Запомните это значение. Размер образа, естественно, будет намного меньше. Ничего, если он не помещается в DVD. Если образ окажется рабочим – запишете его потом на флэшку и сделаете её загрузочной с помощью подходящей утилиты, например, unetbootin. Выходим из корневого пользователя командой

exit

и перезагружаемся командой

sudo reboot

Проверяем образ

Не спешите записывать полученный образ на внешний носитель, а тем более устанавливать из него ОС на жёсткий диск. Вначале нужно протестировать его на виртуальной машине (ВМ). Я пользуюсь бесплатной средой VirtualBox (VB), хотя можно использовать и другую. Для проверки создайте ВМ в VB типа Ubuntu. В свойствах ВМ задайте виртуальный диск размером на 20-30% больше значения, требуемого для установленной кастомизированной ОС. Отдайте половину ОЗУ под ВМ. Теперь надо указать ВМ, откуда грузиться. Щёлкайте «носители» – «IDE-контроллер» – «добавить» – «выбрать образ» и в файловом диалоге доберитесь до custom.iso. Дважды щёлкните по образу. В атрибутах носителя разотметьте чекбокс «Живой CD», если он отмечен. Жмите ОК и стартуйте ВМ.

Когда появится вот такое окно

выберите опцию «Boot the Live System»

Дождитесь появления экрана логина, введите «custom» (без кавычек), вместо пароля нажмите Enter. Дождитесь загрузки своей «живой» ОС.

Первым делом убедитесь, что ВМ работает с Интернетом. Для этого пропингуйте какой-нибудь ресурс, например, kv.by. Кастомизированная ОС должна иметь сетевые настройки оригинала! Если Интернет работает, то тестируем дальше.

Правым кликом по пустому месту рабочего стола активизируйте системное меню вашей ВМ и вызовите из него эмулятор терминала. Запустите с помощью терминала файловый менеджер «Наутилус» командой nautilus (или другой менеджер, если вы предварительно «выпилили» «наутилус» из оригинала) и зайдите менеджером в папку /usr/share/applications. Позапускайте поочерёдно ваши любимые приложения. Обратите внимание на те, которые не работают. Эти приложения после установки кастомизированной ОС придётся установить заново. Значит, relinux не смог их обработать; такое возможно, если вы не сохранили в скелетоне какие-то настройки из домашней папки оригинала.

Для установки кастомизированной ОС в ВМ дважды щёлкните по значку «Установить» на рабочем столе загруженной «живой» ОС. Далее проходите всё, как и при обычной установке Ubuntu: выбираете разметку виртуального диска (используйте весь), язык, временной пояс и ждёте копирования системных файлов в виртуальный диск. Если не появилось сообщения типа «нет такого каталога, почистите CD», то вы всё сделали правильно. Наконец, на экране должен появиться рабочий стол установленной кастомизированной ОС. Выключите ВМ, снова включите и загрузитесь не из custom.iso, а из custom.vdi. Поработайте с кастомизированной ОС. Если всё хорошо, то можно записать образ на DVD (если поместится) или на флэшку. Для записи образа на DVD можно использовать brasero, а на флэшку – unetbootin.

Кстати, relinux работает не только с Ubuntu. Успехов!

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Читайте также

Комментарии

Страницы

Аватар пользователя Dmitry

Интересно, но почему все (Ctrl + A) - Ctrl + B )?..

Аватар пользователя mike

Почему (Ctrl + A) - Ctrl + B )?..

Исторически сложилось. Раньше клава была несколько иной, и было удобно.

Аватар пользователя DA

Mike, он же Михаил Гурчик, возраст 60 лет
Пишет с рождения материалы пришлого, желтого характера
смотреть
смотреть
Профнепригодный, совковый, слабоумный, упартый человек.
Из кратких рассказов о себе имеет мыльце смотреть

В одноклассниках имеет двух друзей, не имеет фото. Разговаривает сам с собой
Последний визит был вчера смотреть

Просьба к шеф-редактору KV - изолировать человека, паразитирующего ресурс

Аватар пользователя Petro42

Не согласен. Лично знаком с Майком и готов свидетельствовать: это талантливый профессионал, айтишник до мозга костей, всю жизнь отдавший технологиям. Что касается возраста, то все там будем. Или кто-то рассчитывает жить вечно? Заверяю, что не выйдет. А если регулярно делать гадости, то жизнь может оказаться даже короче и грустнее, чем могла быть... Даю добрый совет: не рубите с плеча, а то кто-то может и по вам рубануть. Очень больно и крайне неожиданно.

Аватар пользователя Petro42

И да, кстати. Статья вполне себе полезная. Прочёл и собираюсь, так сказать, потыкамши воплотить... Я тоже думал - Винда, шминда... А на серваках везде - Линукс. И моего приятеля, закончившего универ в Силиконовой долине, на работе не стали спрашивать про ту лабуду, что он изучал, первым делом его заставили выучить работу с Линуксом. Так что, не троллить надо, а тщательно изучать матчасть, благо, есть люди, готовые бесплатно!!!!!! поделиться опытом и знаниями...

Спасибо mike за интересную статью.

Мне кажется, что mike пишет статьи не только для профессиональных програмистов, но и для таких как я обычных пользователей - ленивых и не сильно готовых к экспериментам. Честно Убунту ставил через VirtualBox только после статей уважаемого автора, вот только времени пока нет разобраться, как устанавливать свои профессиональные программы на Линукс. А так благодаря mike наверное ждать 60 лет и выхода на пенсию не придется, освою раньше Wink

 

Аватар пользователя mike

2da Удачи!

Аватар пользователя Enki

2da 

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

Аватар пользователя Petro42

Enki, а ты будешь вечно молод? :-) ...Состаришься быстро, особенно, если дедушка обидится, вышибет тебе пару зубов и сломает руку (или ногу). Будет ранняя инвалидность, старушка и телевизор. 

Аватар пользователя mike

Дедушка не обидится. Дедушка закалён Сетью. А грядок у меня нет и не будет. :)

Страницы