Мой Mint. Cinnamon технический

Алексей Федорчук

Во вводных словах к этой серии заметок о моём Mint’е я вскользь заметил, что Ubuntu Customization Kit — чрезвычайно удобный инструмент для сборки кастомизированных вариантов дистрибутивов. Развивая эту мысль, выскажу предположение, что Mint представляет собой благоприятный объект для многоцелевой кастомизации. Ибо его штатная компоновка настолько гармонична, что под любую задачу требует только небольшой доводки.

«Пацан сказал — пацан сделал». И я решил на практике воплотить свои отвлечённые рассуждения, собрав минимум два кастомизированных варианта (КВ — совпадение с аббревиатурой Коньяка Выдержанного не является случайным), которые условно назвал техническим и лирическим. В настоящей заметке речь пойдёт о первом из них.

Сначала — о принципах комплектования. В техническом варианте с хотл собрать максимум инструментария для работы с накопителями, мультидисковыми устройствами, файловыми системами, а также средства кастомизации дистрибутива и его установки помимо штатного инсталлятора.

С другой стороны, я безжалостно искоренил из образа всю «лирику», то есть графику и мультимедию, а также весь «канцелярит». Не из экономии — заниматься «впихиванием, всовыванием и плотным утрамбовыванием» нынче нет ни малейшего резона. Просто чтобы невостребованные компоненты (например, изобилие тайских шрифтов) не путались под ногами (или руками?) — это во-первых. А во-вторых, чтобы сохранялась свобода выбора компонентов востребованных, например, той же мультимедии. Ведь в данном случае выбор определяется исключительно вкусовщиной, привычкой, а то и просто сиюминутным настроением.

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

Первым делом, наученный горьким опытом удаления отходов жизнедеятельности UCK с файловой системы XFS, переопределил рабочий каталог для сборки образа, создав его на разделе с файловой систмой Ext4, и поменяв соответствующим образом значение опции remaster-dir для команды uck-gui, запускающей программу через главное меню Cinnamon’а.

Далее я запустил UCK, последовательно определил русскую локаль для инсталлятора и установленной системы, для Live-режима и для загрузки по умолчанию (см. первую заметку, о моей Прелести, там приведены скриншоты). При выборе рабочего окружения, как и ранее, остановился на пункте other. А вот образ диска для препарирования скачал уже обновлённый, linuxmint-17-cinnamon-64bit-v2.iso — во время прошлых развлечений я его скачать поленился, расчитывая, что обновлю систему в процессе катомизации. И кстати, расчитывал напрасно, потому что это дело не удалось мне и в этот раз, о чём скажу чуть позже.

Далее я, как и раньше, задал имя для нового образа (хотя так до сих пор и не понял, зачем) и ответил положительно на три следующих вопроса — о мануальной кастомизации, удалении отсутствующих в Mint’е Windows-файлов и гибридности будущего образа (ISO/USB|. Затем открыл системе старшную военную тайну — свой пользовательский пароль, а она в ответ начала монтировать и распаковывать образ диска с его файловой системой SquashFS. После чего оставалось согласиться с выбором пункта Run console application — и остаться в чёрном терминальном окне наедине с chroot-окружением.

Наш тет-а-тет в чёрной комнате я начал с добавления PPA-репозиториев — дабы потом не забыть:

# add-apt-repository -y ppa:zfs-native/stable && add-apt-repository -y ppa:andrew-crew-kuznetsov/crew

Это дело облегчается тем, что команды в чёрную комнату строку терминала можно копировать из внешнего окружения — через мышиный или иксовый буфер. Так что и в дальнейшем, при удалении и установке пакетов, их имена можно прямо списком копировать как аргументы команды apt.

Однако пока следующим моим деянием была попытка глобального обновления системы в «чёрной команте» — на этот раз через mintupdate, что, по сообщению на форуме русско-доменного Mint’а, может завершиться удачей. Но у меня — не прошло. После согласия с предложением доустановить в процессе апгрейда нового пакета

tecnical-mint_01

Менеджер обновлений просто слетал к чертям собачьим. Не помогло и принудительное занесение пакетов, отнесённых mintupdate к 4-му и 5-му уровням,

tecnical-mint_02

в группу пакетов игнорируемых:

tecnical-mint_03

Кстати, пополнение игнор-листа делается из контекстного меню по правому клику на имени пакета.

Вообще Менеджер обновлений во время нахождения в «чёрной комнате» ведёт себя странно и хост-системе: вызванный из её трея, он и здесь показывает обновления, доступные не для неё, а для chroot-окружения, так что странно было бы не ожидать каких-то конфликтов.

Но ещё более странным оказалось поведение при запуске в «чёрной комнате» apt update && apt upgrade после того, как я принудительно зафиксировал руками версии пакетов, ранее включённых в игнор-лист Менеджера обновлений:

# apt hold dbus dbus-x11 libdbus-1-3 libdbus-1-3:386 \ linux-headers-3.13.0-24 linux-headers-3.13.0-24-generic \ linux-image-3.13.0-24-generic linux-image-extra-3.13.0-24-generic \
linux-libc-dev

Даже при этом глобальный апгрейд прерывается на стадии обновления пакетов, имеющих отношение к ядру — то есть linux-image

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

Так что в итоге я плюнул на обновление системы (обыкновенно, слюной, как плевали до исторического материализма), и занялся удалением ненужных пакетов — правда, не списочным порядком, через apt purge, а, как прихлёбный плюралист, через Symantic. В группу удаляемых пакетов, повторяю, попали

  1. все, имеющие отношение к графике (кроме самого примтивного вьювера Eog — на всякий пожарный случай, и Simple Scan, про который я просто забыл);
  2. LibreOffice целиком;
  3. вся мультимедия, кроме библиотек, с которыми мне лень было разбираться;
  4. Thunderbird и всякие мелочи, типа Tomboy;
  5. все TTF-шрифты, отметка на удаление которых не вызывала сноса метапакетов mint-meta-core и mint-meta-cinnamon.

Удаление всего перечисленного хозяйства прошло безболезненно, можно было приступать к восполнению потерь. В соответствие со сформулированными в начале заметки принципами, я установил системные утилиты для работы с дисками и разделами, не попавшими в штатный комплект: gdisk, mdadm, f2fs-tools, утилиты для работы с ZFS, собрал комплект модулей её поддержки. К сожалению, оказалось, что ветка репозитория ppa:zfs-native/grub для Trusty недоступна. То есть установить основанный на ней Mint 17 на корень с ZFS не получится. Но создавать пулы ZFS и наборы данных в них в Live-режиме вполне возможно (и, забегая вперёд, скажу, что это уже проверено).

Разумеется, не была забыт и отец-создатель всего этого дела — пакет uck (Ubuntu Kustomization Kit). Наконец, в завершение всего я установил русский словарь для hunspell с поддержкой буквы Ё и пакеты, без которых чувствую себя как без рук — командную оболочку zsh и выпадающий терминалguake.

Полный список установленных пакетов, полученный командой

# dpkg -l > /packages.txt

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

Теперь наступило время конфигурирования. Для UCK я подменил оргинальный файл /usr/lib/uck/customization-profiles/localized_cd/customize своим, поддерживающим mate-terminal.

Для zsh его главный оригинальный конфиг /etc/zsh/zshrc был заменён тем, что использую сам. А его копией заменил /etc/zsh/newuser.zshrc.recommended, который в виде ~/.zshrc копируется, если при первом запуске этой оболочки пользователь должным образом ответит на вопрос, задаваемый её автоматическим конфигуратором. А в оригинальный файл /etc/zsh/zshenv я добавил строку:

DEBIAN_PREVENT_KEYBOARD_CHANGES=yes

Она во всех дистрибутивах, производных от Ubuntu, обеспечивает поддержку опции history-substring-search — одной из убойных фич zsh‘а.

А вот заморачиваться с «наскучными обоями» мне показалось скучным — тем более, что фоновая картинка по умолчанию прекрасно гармонировала с технической ориентацией образа. Так что я, наоборот, поудалял из /usr/share/backgrounds/linuxmint-qiana/ все файлы, кроме linux_mint_17.png — на него по умолчанию символически ссылается /usr/share/backgrounds/linuxmint/default_background.jpg.

На этом подготовка к созданию образа для меня закончилась. Я вышел из «чёрной комнаты» и стал ждать завершения работы UCK по его созданию. Благодаря тому, что всё это происходило на Ext4 (а создание образа включает в себя и очистку каталога remaster-dir от отходов жизнедеятельности), ждать пришлось не так долго.

И в итоге в каталоге path2/remaster-new-files/ образовался файл livecd.iso размером 1 ГБ (1047527424 байт). Правда, возможности проверить, уместится ли он на гигабайтную флешку или SD-карту, я не смог — оказалось, что такого добра у меня в хозяйстве не осталось. Но зато проверил установку с образа в виртуальной машине. Как и одидалось, она прошла без всяких проблем, приведя вот к такому результату:

tecnical-mint_04

В установленном виде «техническая» система заняла 3,6 ГБ.

В заключение — пара слов о том, каков был смысл проделанных действий. Собирал образ я, разумеется, в первую очередь для себя, дабы поэкспериментировать с установкой системы на корневой раздел, несущий пул ZFS. В силу указанной выше причины оказалось, что это или невозможно, или потребует изменения методики, описанной в известной статье Fajar Arief Nugraha (транскрибировать это имя я не возьмусь). Однако, как говаривал незабвенный Клим Петрович Коломийцев

Не зря ж мы страдали,
И гибли не зря!

Собранный образ можно будет использовать для установки с него Mint’а на softRAID, что штатно его инсталлятором не поддерживается, на файловую систему Ext4 с отключённым журналирование (что до недавнего времени пропагандировалось Google как самое быстрое решение), для подключения пула ZFS в качестве каталога /home (или любого другого, используемого для хранения данных). Наконец, просто для экспериментов с дисковыми разделами и файловыми системами, в том числе и такими экзотическими, как f2fs.

Update. Таки нашёл гигабайтную SD-карту. Оказалось, что созданный образ туда не влазит. Во всяком случае, Mint’овская утилита записи загрузочных USB этого не позволяет, не активизируя кнопку Записать. Так что надо будет его ещё чуток урезать.

Содержание

Добавить комментарий