Выбрать главу

         if [ «$CONSOLE_APP» = «» ]; then

                 CONSOLE_APP=`which mate-terminal`

                 CONSOLE_APP_OPTIONS=(-t «UCK customization console» -e /bin/bash)

Я на всякий случай дописал в него также определения для терминальных программ Sakura и Terminator, которые временами использую.

        if [ «$CONSOLE_APP» = «» ]; then

                CONSOLE_APP=`which terminator`

                CONSOLE_APP_OPTIONS=(-t «UCK customization console» -e /bin/bash)

        fi

        if [ «$CONSOLE_APP» = «» ]; then

                CONSOLE_APP=`which sakura`

                CONSOLE_APP_OPTIONS=(-t «UCK customization console» -e /bin/bash)

        fi

Теоретически тут можно переопределить и командную оболочку (например, /bin/zsh), но я этим заморачиваться не стал.

Теперь потребовуется выбрать образ диска, который будет подвергнут потрошению — через обычное окно открытия файла. После чего будущему образу предлагается дать имя:

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

Далее следует серия вопросов — о желании кастомизировать будущий образ мануально:

Об удалении Windows-related файлов, типа autorun.inf (которых, впрочем, на установочном носителе Mint и так нет):

О создании гибридного образа — то есть пригодного для записи как на OD, так и на USB:

На все эти вопросы я, по понятным причинам, отвечал положительно, иначе и говорд городить бы не стоило.

Далее сообщается, что вся необходимая информация собрана, по введении пароля можно приступать к сборке диска, который будет помещён в path2/remaster-new-files под именем livecd.iso (спрашивается, зачем придумывать ему осмысленное имя?):

А для начала процесса в исходном терминальном окне надо ввести пароль для доступа к адмнистративным привилегиям:

Вслед за этим происходит монтирование исходного образа, его разворачивание и декомпрессии SquashFS, которая занимает немало времени:

Когда же она закончится, каталог, определённый в качестве remaster-dir, будет выглядеть так:

ls [remaster-dir]

build.log

customization-scripts/

remaster-apt-cache/

remaster-new-files/

remaster-root/

remaster-root/home

Очевидно, что build.log содержит протоколирование хода процесса, а в каталоге customization-scripts/ собраны скрипты кастомизации, сгенерированные посредством сценариев из /usr/lib/uck/. В каталоге remaster-apt-cache/ будет помещён локальный кеш устанавливаемых пакетов, а сами они в подкаталоге remaster-apt-cache/archives — аналоге /var/cache/apt/archives установленной системы. Таким образом, скачанные пакеты не засоряют ни корень развёрнутой из Live-образа системы (он расположен в каталоге remaster-root/), ни, тем более, каталог для сборки уже непосредственно нового образа — remaster-new-files/. В последнем после успешного завершения всего предприятия этот самый образ, под именем livecd.iso, и окажется. Ну а remaster-root/home, ясное дело, является домашним каталогом администратора (аналог /root обычной файловой иерархии).

Далее предлагается выбрать «заказное» действие — Run console application или Continue building:

Выбор первого пункта очевиден. Он влечёт за собой выполнение той самой команды chroot, о которой я говорил раньше, и запуск того самого терминала, который был неявным образом определён на стадии так называемого выбора десктопа:

Обращаю внимание — командная оболочка в терминале — Bash, запущенная от лица администратора. То есть в дальнейшем для установки/удаления пакетов и прочих подобных мероприятий команда sudo не понадобится.

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

По завершении потрошения опять возникает панель с предложением выбрать «заказное» действие — и теперь столь же очевиден выбор второго из них:

После чего начнается исполнение сценариев кастомизации, плавно переходящее в компрессию системы в виде SquashFS — это будет самым долгим делом во всём процессе: