Книга о Cintu. Часть I. Создание системы. Глава 1. Установка
Мы с Мануалом постоянно подчёркиваем, что Cintu — это не столько дистрибутив, сколько алгоритм создания собственной кастомизированной системы, пригодной для тиражирования среди родных, друзе и близких. А также всех тех, кому она понадобится впредь. Поэтому собственно руководство по Cintu мы и начнём с рассмотрения того, как она делается.
Глава 1. Установка базовой системы
Процесс создания Cintu происходит в три этапа:
- установка базовой системы;
- обустройство консольного режима и обретение десктопа;
- настройка базового десктопа со средой Cinnamon.
После чего наступает время тиражирования подготовленной системы — оно осуществляется с помощью образов, созданных системой Systenback, описанной котом Мануалом.
Под базовой системой любого дистрибутива подразумевается ядро Linux, средство его загрузки, некий минимальный набор утилит и приложений, а также средство управления пакетами (как было некогда описано здесь с некоторыми актуализирующими коррективами). В Ubuntu и её клонах эти компоненты объединены в метапакет ubuntu-standard
.
Способы установки
Установка минимальной системы Ubuntu, лежащей в основании всех дистрибутивов этого семейства, возможна двумя способами. Первый — загрузка с Live-носителя любого из дистрибутивов этого семейства, монтирование целевого носителя, выполнение на него команды debootstrap
, далее chroot
и установка метапакета ubuntu-standard
. После чего у нас имеется консольная система, не содержащая ничего лишнего, но имеющая всё необходимое для наращивания до полноценного дестопа.
Второй способ — загрузка с образа mini.iso
, который содержит суперминималистическую систему Ubuntu: ядро системы, её установщик текстового режима, и средства конфигурирования сети — всё остальное получается из официальных репозиториев в соответствие с выбором применителя. Который данном случае будет — установка системы CLI (Command Line Interface) в режиме эксперта. Результат чего будет абсолютно аналогичен полученному путём «чистого debootstrap’инга».
Второй способ требует существенно меньших затрат сил и времени, нежеди первый. И потому далее будет рассматриваться только он. К способу первому приходится прибегать в некоторых специальных случаях — при устанввоке на носитель или файловую систему, «из коробки» не поддерживаемые ни одним из инсталляторов Ubuntu (ни текстовым, ни графическим). Примером чему явдяется установка системы с корнем на ZFS, о чём мы с Мануалом надеемся как-нибудь рассказать отдельно.
А пока речь пойдёт о генеральной линии минимальной установки.
Подготовка
Как уже было сказано, для установки базовой Ubuntu необходим образ mini.iso
. Образ этот, размером для релиза 18.04 около 67 МБ (в скобках прописью — мегабайт) обновляется обычно раз в неделю. И актуальный его вариант всегда можно отыскать в официальном репозитории Ubuntu (или на любом из зеркал) здесь:
/dists/[codename]/main/installer-amd64/current/images/netboot
В частности, текущий mini.iso
для будущего релиза 18.04 скачивается отсюда. И здесь уместно добавить, что аналогичный образ существует и для 32-битной архитектуры, хотя в основной ветке Ubuntu от её поддержки отказались.
Важно, чтобы используемый mini.iso
был именно актуальным на момент установки, иначе очень вероятны конфликты получаемых из репозитория пакетов с ядром, загруженным с установочного носителя — обновить ядро в процессе установки, по понятным причинам, невозможно.
Скачанный образ, разумеется, должен быть помещён на установочный носитель — нынче эту роль, скорее всего, будет играть флешка или SD-карта. Существует много специальных утилит для записи ISO-образа на твердотельный носитель. Однако часто забывают о самом простом и безотказном средстве:
$ sudo cp path2/mini.iso /dev/sd?
где path2/
— путь к образу mini.iso
, а /dev/sd?
— имя целевого устройства, например, /dev/sdf
. Подчеркнём, что именно устройства, а не раздела на нём. При этом флешка (или SD-карта) может быть не только не форматированной, но и не иметь таблицы разделов. Важно также помнить, что спредыдущим её содержимым после выполнения указанной команды можно распрощаться.
Кроме установочного носителя, на ранней стадии конфигурирования системы, которое будет происходить в текстовом режиме, желательно иметь ещё один носитель — в качестве такового может выступать флешка или сетевой ресурс, доступный по ftp с помощью клиента, работающего в текстовом режиме. Так или иначе, но здесь следует заблаговременно разместить необходимые конфиги — в нашем случае это dot-файлы для командной оболочки Zsh — .zshenv
, .zshrc
, а также общеисксовый файл ресурсов .Xresources
.
Вооружившись указанным инвентарём, можно приступать к установке. Но сначала пара слов о некоторых данных и отмазках.
Условия и ограничения
Образы предыдущих релизов Cintu собирались для установки исключительно машины, работающие в режиме BIOS Legacy — это процедура давно отработанная и ныне бессбойная. Почему она же применялась в отношении первых сборок релиза 18.04. И, как показала практика с таких образов систему можно установить также на машину в режиме UEFI — только это потребует некоторых телодвижений после инсталляции.
Для того же релиза 18.04 был опробован и метод сборки образов, «из коробки» предназначенных для установки на машины как в режиме BIOS Legacy, так и в режиме UEFI. К сожалению, для последнего случая вероятность благоприятного результата была равна вероятности встретить динозавра на улице Москвы: система с «универсальных» образов либо устанавливалась на UEFI машину без проблем, либо — не устанавливалась. И тогда после инсталляции требовались те же самые действия, что и при установке с образа.
Поэтому мы с Мануалом посоветовались, и решили «универсальных» образов больше не делать, ограничившись «чисто BIOS’ными». Так что далее будет говориться о том, как собирать образы Cintu для установки на машины в режиме BIOS Legacy. С той оговоркой, что эти образы могут быть установлены и на UEFI-машины, с некоторыми трудозатратами после инсталляции.
Желающие же собрать таки «универсальный» образ для машин в обоих режимах — могут сделать это на свой страх и риск. Мы с Мануалом надеемся, что в этом благородном деле им поможет очерк Cintu и UEFI: спецразлив.
Все образы Cintu релиза 18.01 (включая текущий «точечный») собираются в виртуальных машинах Virtualbox’а. Для каждой сборки создаётся отдельная ВМ с одними и теми же параметрами для всех: 2 виртуальных процессора (при четырёхядерном восьмипотоковом процессоре хоста, i7-4790K, 4,00 ГГц), 4 ГБ памяти (из 16 физических), виртуальный диск 40 ГБ. Созданные образы сначала тестируются в отдельных виртуальных машинах как в Live-режиме, так и в установленном виде. После чего удачные образы, достойные для народного внимания, тестируются уже на физическом «железе».
Загрузка
Установка минимальной Ubuntu, как и любого дистрибутива, начинается с загрузки системы и запуска инсталлятора. В результате чего появляется меню альтернативного установщика, точнее, пока — его загрузчика:
Для наших целей из этого меню требуется пункт Advanced options, вызывающий следующий экран, в котором выбирается пункт Command line expert install:
Однако не надо спешить запускать загрузку нажатием на Enter. Предварительно необходимо чуть подредактировать параметры загрузки. Для этого нажатием клавиши Tab вызывается редактор строки загрузки меню:
В которую нужно вписать параметр pkgsel/include=network-manager
, который обеспечивает принудительную установку пакета network-manager
и его задействование при первой загрузке:
В качестве значений параметра pkgsel/include
можно добавить и другие пакеты, нужные, но не входящие в метапакет ubuntu-minimal. Однако эксперименты с ними мы с Мануалом оставляем на усмотрение заинтересованных лиц — нам хватило только абсолютно необходимого параметра.
Установка
Отредактировав строку загрузки системы, нажимаем Enter — и попадаем собственно в программу установки — в так называемый «альтернативный» инсталлятор:
Которая издревле начинается с выбора языка её интерфейса из длиннющего списка, который, в числе прочих, содержит и русский язык:
Далее установка проходит по накатанным (и многократно описанным) рельсам. Однако нынешнее поколение применителей, возможно, в глаза не видела «альтернативного» инсталлятора Ubuntu (который некогда, кстати, был не только основным, но и просто единственным). Так что проиллюстрируем дальнейшие шаги скриншотами с краткими комментариями.
Вслед за выбором языка (разумеется, русского) предлагается выбрать страну, в которой на ней разговаривают — выбор здесь очевиден:
А затем и страну для локали по умолчанию — также русскую, разумеется:
Дополнительные локали лучше не определять — предлагаемый выбор локали en_US.UTF8
потянет за собой весь спектр англоязычных локалей, вплоть до зимбабвийской — что в наших условиях очень актуально. А так у нас останутся только те, что необходимы действительно:
C C.UTF-8 POSIX ru_RU.utf8 ru_UA.utf8
Здесь, с точки зрения применителя, локали C
и C.UTF-8
идентичны обеим американских — восьмибитной и юникодовской.
Далее следует выбор дополнительной раскладки клавиатуры (английская американская будет место в любом случае):
При выборе русской раскладки можно очень точно подобрать её вариант — например, любимый нами с Мануалом (typewriter, legacy):
И раскладка, и вариант её будут одинаковы и в Иксах, и в консоли. Как и переключатель раскладок — он выбирается на следующем шаге. Поскольку в консоли любимые нами немодальные переключатели не поддерживаются, нет смысла и менять умолчальный Alt+Shift — после отладки клавиатуры в Cinnamon он останется в качестве запасного:
После настройки клавиатуры наступает очеред конфигурирования сети. При кабельном подключении и автоматическом DHCP здесь на каждом шагу достаточно соглашаться с вариантами, предлагаемыми по умолчанию. Единственно, что придётся утрудить себя вводом имени компьютера (то есть по простому — хоста):
Далее выбирается зеркало репозитория Ubuntu — по умолчанию соответствует стране инсталляции — в нашем случае зеркало будет Российским, а точнее Яндексовским:
Далее начинается серия вопросов, касающихся настройки аккаунтов — включать ли теневые пароли (разумеется, Да), создавать ли аккаунт root, (конечно, Нет), ввод реального имени пользователя (не обязательно настоящего, паспорт не спрашивают), его логина и пароля (дважды, длина пароля допускается любая), шифровать ли его домашний каталог (а оно нам нужно? — так что Нет).
Затем — настройка времени. При использовании NTP (выбор по умолчанию) для страны России оно автоматически будет определено как московское:
Если это не соответствует действительности (а на просторах нашей родины такое не исключается), здесь следует ответить Нет и выбрать более подходящий часовой пояс, например, Магаданский (8 часов разницы с Москвой):
Интересно, что о существовании более восточного часового пояса, охватывающего Камчатку и Чукотку (9 часов разницы с Москвой), «альтернативная» программа инсталляции Ubuntu не подозревает (хотя основная, кажется знает про город под названием Камчатка).
Следующий этап установки касается разметки диска (дисков). В общем случае он требует внимательности и ответственности, особенно при наличии иных уже установленных систем и нескольких дисках. Однако мы сейчас устанавливаем «систему-матку», и делаем это в виртуальной машине. Так что у нас будет всё просто.
Сначала выбираем ручную разметки диска — при разметке в автоматическом режиме будет создан раздел подкачки, который нам совсем не нужен:
Отступление: сказанное сейчас и далее касается подготовки системы для установки на машину в режиме BIOS Legacy. При использовании режима UEFI лучше сразу положиться на автоматику, выбрав пункт Авто — использовать весь диск. Как показала практика, диск этот будет размечен как для UEFI надо.
В режиме же BIOS legacy выбираем единственный диск виртуальной машины:
Так как он ещё более девственен, чем свежекупленный физический, положительно отвечаем на вопрос о создании новой пустой таблицы разделов:
И предписываем создать таблицу разделов в стиле msdos
После чего создаём единственный раздел на всё доступное пространство, определяем его как первичный, создаём (точнее, заказываем создание) файловой системы Ext4, которая будет монтироваться в корень файловой иерархии, определяем опции монтирования (noatime
) и метку диска (я дублирую её с именем домена). Что в итоге даёт такую картину:
Далее после умолчальных ответов на пару вопросов инсталлятор сообщает о своём желании создать файл подкачки размером в 2 ГБ:
Что и будет сделано — /swapfile
указанного размера будет создан, вне зависимости от того, какой бы размер (в том числе и нулевой) мы бы ему ни задали.
Теперь, после согласия со всеми предупреждениями, начнётся установка. В ходе её время от времени будут предлагаться варианты, требующие выбора. Например, об установке ядра, где можно положиться на умолчальное ядро linux-generic
:
Или вопрос о содержимом initrd
: в систему, которая предназначена для широкого (хоть в и узких кругах) распространения, должны быть включены все доступные драйверы:
На вопросы о подключении разделов репозитория (main
, restricted
, universe
, multiverse
, backports
) надо отвечать положительно, а вот с partner
лучше не связываться. Зато очень не вредно подключить репозиторий исходников. По поводу обновлений безопасности следует отвечать, как приказывает инсталлятор. В том числе и отказаться от автоматического обновления:
После этого инсталлятор предлагает заняться установкой GRUB’а. А именно — устанавливать ли его в MBR? — Разумеется, Да, — отвечаем мы. Затем следует определить устройство — при единственном диске это не сложно:
Вопрос про EFI пропускается, и инсталляция GRUB’а совершается. После чего предлагается завершить установку. Мы, однако, сразу этого не делаем, а сначала изменяем уровень важности debconf
на низкий — тот, при котором задаётся больше всего вопросов:
Вот теперь модно и завершить установку. В ходе чего задаётся (очень вовремя) вопрос о времени на системных часах — по UTC ли оно? Отвечаем Да — и получаем приглашение к авторизации. Которое напоминает, что установочный носитель надо извлечь или отключить самому, руками — инсталлятор за нас этого не сделает:
Следуем этому указанию, жмём Продолжить — и после рестарта машины оказываемся в страшной чёрной текстовой консоли с приглашением авторизоваться:
И нам после авторизации эту страшную и чёрную надлежит превратить в лёгкий элегантный десктоп. Но делать это мы будем уже в следующей главе.