Устанавливаем базовую Ubuntu 20.04 вручную из режима livecd

debianeach

Опубликован:  2020-04-30T07:00:12.511072Z
Отредактирован:  2020-04-30T06:59:46.827685Z
21400
Совсем недавно состоялась очередная инкарнация операционной системы Ubuntu - версия 20.04. Традиционно дистрибутивы этого вендора различаются в зависимости от используемого окружения рабочего стола, но при этом все делят один официальный репозиторий. В этом обзоре рассмотрим весьма необычный способ установки Ubuntu. Под спойлерами ниже много картинок, хомячкам вход воспрещён...

1. Краткое вступление

Как известно, дистрибутивы операционной системы Ubuntu различаются в зависимости от используемого окружения рабочего стола, каждый дистрибутив имеет индивидуальный установочный iso-образ, но при этом все дистрибутивы делят один официальный репозиторий. В линейке дистрибутивов на текущий момент представлены почти все популярные рабочие столы и окружения, а если пользователю необходима более широкая кастомизация, mini.iso даст возможность выбрать любой из возможных набор устанавливаемого программного обеспечения уже на стадии инсталляции операционной системы. Вроде бы всё и так великолепно.., но в жизни всегда есть место подвигу странным желаниям. Одному из таких странных желаний посвящен этот обзор.

Итак, в этом обзоре Дебианыч продемонстрирует один весьма необычный способ установки операционной системы Ubuntu 20.04, предполагающий максимально возможный контроль за установкой операционной системы и индивидуальный выбор устанавливаемого программного обеспечения. В этом обзоре поговорим о ручном развертывании базовой системы Ubuntu 20.04 с помощью livecd одного из дистрибутивов представленной вендором линейки. Дебианыч будет использовать livecd Xubuntu - наиболее гармоничный, по моему скромному мнению, из всей линейки.

Действия, которые я буду последовательно описывать и демонстрировать совершенно не обязательно повторять обычным пользователям Ubuntu, проще и лучше установить систему с помощью штатной программы установки. Эта демонстрация всего лишь констатирует фактическую возможность и даёт представление о ещё одном способе установки Linux, который, впрочем, действительно предоставляет полный контроль за установкой системы, но при этом конечно же требует соответствующей квалификации...

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

В общем приступим, для реализации задуманного мне понадобится установочный iso-образ Xubuntu или любого другого livecd: Ubuntu, Kubuntu, Ubuntu Mate, Lubuntu etc. Мне комфортней и приятней работать именно с образом Xubuntu. Иду на любое официальное зеркало, я предпочитаю ftp.yandex.ru и скачиваю желаемый iso.

PSAbzIFjvW.png

Кроме iso-образа, желательно скачать ещё и файл с контрольными суммами, проверка контрольной суммы на записанном носителе даёт гарантию, что в процессе установки неприятные неожиданности не омрачат вашу жизнь. Процедура записи установочного iso-образа на USBFlash детально описана в статье по ссылке. Тема предполагает, что вероятный заинтересованный читатель умеет загрузить компьютер с полученного в итоге носителя, поэтому ненужные детали я опущу...

2. Подготовка окружения

При загрузке с iso-образа Xubuntu автоматически стартует проверка носителя, которую при необходимости можно прервать сочетанием Ctrl+c.

2uKIAzVup6.png

Дожидаюсь завершения этой проверки.

kwG2qvAwXo.png

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

fXHKbCIEJb.png

В списке языков есть наш великий и могучий Русский язык, выбираю его и затем нажимаю кнопку "Попробовать Xubuntu". Продолжится загрузка, и совсем скоро на экране компьютера будет доступен рабочий стол XFCE4 со всеми традиционными для него атрибутами.

WJuiIEAc1X.png

Лезу в системное меню и запускаю с помощью соответствующей пимпы в нём эмулятор терминала.

PGK6F7u8b4.png

По-умолчанию терминал имеет мрачное оформление с чёрным фоном и серыми тонами пользовательского ввода и выхлопа консольных команд.

321TKkJkmD.png

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

9kXRgAMoto.png

Более детально отключение автоматического монтирования сменных носителей в XFCE4 описано в статье по ссылке.

Возвращаюсь в свой терминал и получаю в нём права суперпользователя.

sudo -i

mkUpSwy2nm.png

Этот терминал будет основным инструментом на всём продолжении этой демонстрации, следует обратить внимание, что после ввода команды приглашение командной строки изменило свой вид, и теперь оно завершается решёткой - знак, что этим терминалом управляет root.

Окружение готово к работе, следуем дальше...

3. Подготовка жесткого диска машины

Жесткий диск моей машины имеет достаточно скромный объём 40 GiB, которого, впрочем, с лихвой хватит, чтобы установить достаточно могучую операционную систему с широким набором программного обеспечения. И сейчас мне нужно этот диск разметить. Соответствующей командой в терминале запускаю Gparted.

gparted

На экране компьютера отрисуется окно Gparted.

Rufds9NU79.png

Детально описывать разметку жесткого диска в рамках этой демонстрации я не вижу смысла, всё уже описано до того в статье по ссылке, Gparted имеет достаточно простой в освоении и интуитивно понятный интерфейс, любой новичок легко справится с задачей. Размечаю свой диск по следующей схеме:

Q4bARJr9di.png

Здесь следует обратить внимание на идентификаторы разделов: /dev/sda1, /dev/sda2 и /dev/sda3; и запомнить их, они понадобятся для первой редакции fstab на одном из следующих этапов этой демонстрации. Так же следует обратить внимание, что раздел /dev/sda получил флаг boot.

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

4. Установка debootstrap

У операционной системы Ubuntu есть инструмент, с помощью которого можно получить из сетевого зеркала все необходимые для базовой системы пакеты и развернуть их в указанный каталог файловой системы - debootstrap, чтобы им воспользоваться, придётся установить одноимённый пакет, а для этого понадобится подключение к сети Интернет, и желательно, чтобы оно было безлимитным. Мой компьютер подключен к проводной сети уже при старте livecd, так как характер моего соединения предполагает подключение по dhcp без дополнительных процедур авторизации.

Попытаюсь установить debootstrap с помощью пакетного менеджера apt.

# apt install debootstrap 

2oGbt6C9hy.png

Как видно на снимке экрана выше, меня постигла неудача - это особенность любого установочного диска текущей инкарнации Ubuntu, увы, мне никогда не удавалось подключиться в дефолтному зеркалу, хотя соединение с другими хостами сети всегда было успешным. Но неудачу легко исправить. Открываю в текстовом редакторе nano файл sources.list.

# nano /etc/apt/sources.list

И переключаю пакетный менеджер на зеркало ftp.yandex.ru, для этого редактирую открытый файл и привожу его к следующему виду:

SLpk4HaUju.png

Сохраняю файл и покидаю текстовый редактор (ctrl+o и ctrl+x), а затем обновляю базу данных пакетного менеджера.

# apt update

hRxNbDY1YP.png

Как видно на снимке экрана выше, Дебианыч привычно ввёл sudo, но в консоли root это конечно же не обязательно. Странным образом Xubuntu временами теряет соединение с зеркалом в процессе выполнения этой и следующих команд, и процесс apt может завершиться ошибкой. В этом случае нужно повторно запустить эту же команду, процесс apt должен завершиться таким выхлопом в терминал.

aoQHjDuSEE.png

Опять попытаюсь установить debootstrap.

# apt install debootstrap

o4UCvvnCnh.png

На этот раз пакет установлен успешно, следуем далее...

5. Подготовка корневой файловой системы будущей ОС

Поскольку жесткий диск моего компьютера размечен, и его разделы отформатированы, я могу без труда смонтировать их. Меня интересует только первый раздел диска с меткой rootfs (/dev/sda1), на котором и расположится корневая файловая система будущей операционной системы. Монтирую его.

# mount /dev/sda1 /mnt

DJcbfsL3mF.png

С этого момента дисковое пространство этого раздела доступно в каталоге /mnt, и я могу развернуть в этом дисковом пространстве каталоги корневой файловой системы будущей ОС с помощью debootstrap.

# debootstrap --arch amd64 focal /mnt

rcz6zlnjG9.png

Как видно на снимке экрана выше, debootstrap соединился с официальным зеркалом, указанным в sources.list пакетного менеджера apt и начал получать с него необходимые для исполнения своей задачи пакеты. Этот процесс занимает достаточно много времени, и есть вероятность, что в процессе получения пакетов связь с зеркалом будет утеряна, в этом случае процесс завершится с ошибкой, тогда команду нужно будет просто повторить в этой же консоли. В моём случае процесс завершился успешно после второго запуска команды, увы, такова "селяви".

oOnc514YLG.png

После этого можно взглянуть на оглавление каталога /mnt, в нём будут присутствовать все ключевые сущности файловой системы UNIX.

# ls /mnt

NqhjQVJKQO.png

Отлично, следуем далее...

6. Меняем корневое окружение текущей консоли

На этот момент в каталоге /mnt присутствуют все файлы базовой операционной системы Ubuntu Focal Fossa, которые в совокупности и являются окружением устанавливаемой операционной системы, и совершено несложно сделать это окружение текущим для консоли моего терминала, для этого выполняю команду chroot.

# LANG=C.UTF-8 chroot /mnt /bin/bash

UFtZG6vxH5.png

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

# mount -t proc proc /proc

и

# mount -t sysfs sysfs /sys

kb6BCHgvga.png

Отлично, следуем далее...

7. Настраиваем новое корневое окружение

В новом окружении уже установлен текстовый редактор vim.tiny, открываю с его помощью файл sources.list этого окружения.

# vim.tiny /etc/apt/sources.list

Он будет иметь такое содержание.

rWcG6kqUen.png

В соседнем терминале, который можно запустить из системного меню XFCE4, при помощи cat вывожу на экран содержимое файла sources.list и копирую в буфер обмена три строчки выхлопа, а из буфера обмена копирую эти три строчки уже в окно редактора vim.tiny.

0J6N0s3VqQ.png

На этапе установки базовой системы sources.list такого содержания вполне приемлем, но далее в процессе настройки операционной системы я его конечно же приведу в человеческий вид. А пока запускаю update базы данных пакетного менеджера apt.

# apt update

QnIO1J2pSH.png

Успех..! Появляется возможность установить нужные системе пакеты. Устанавливаю makedev.

# apt install makedev

1bAGQiueuz.png

Как видно на снимке экрана выше, apt заикнулся при попытке записи в log, это произошло потому, что на текущий момент не смонтирована /dev/pts, тем не менее установка запрошенного пакета завершилась успешно, с ошибкой пока можно смириться.

Меняю текущий каталог.

# cd /dev

VKS4dIOUYu.png

И запускаю makedev.

# MAKEDEV generic

7rkB1O6S7w.png

Процесс зависает на некоторое неопределённое время, дожидаюсь его завершения.

19DVtpOGNu.png

Пришло время сформировать файл /etc/fstab, открываю его в редакторе vim.tiny.

# vim.tiny /etc/fstab

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

GKStr33tkY.png

Редактирую этот файл и даю ему такое содержание:

/dev/sda1 /             ext4        errors=remount-ro 0 1
/dev/sda2 none          swap        sw                0 0
/dev/sr0  /media/cdrom0 udf,iso9660 user,noauto       0 0

H0dFIRei8e.png

На данный момент этого достаточно, как видно из содержания fstab я монтирую только корень и swap, позже, когда мне удастся загрузить базовую систему, fstab будет окончательно отредактирован. А пока нужно настроить часовой пояс, опять запускаю текстовый редактор.

# vim.tiny /etc/adjtime

В этот файл вписываю три строчки.

0.0 0 0.0
0
UTC

RP0mJMU1Y7.png

Часовой пояс можно выбрать с помощью dpkg-reconfigure.

# dpkg-reconfigure tzdata

0w9Ds58CBN.png

OyHKRxPlB3.png

HeiusHzDUV.png

Отлично... Устанавливаю ядро.

# apt install linux-image-generic

uDSL18oqAF.png

Как видно на снимке экрана выше, у ядра достаточно зависимостей, и все эти пакеты apt должен загрузить из сетевого репозитория, здесь опять может случиться незапланированный обрыв, в этом случае нужно просто снова запустить apt, в моём случае двух раз хватило - странный изъян Ubuntu, с которым видимо предстоит разобраться в перспективе. Тем не менее, установка ядра продолжается.

yISAaDwsBj.png

В зависимостях у ядра числится Grub, поэтому на определённой стадии процесса apt выдаст диалоговое окно с запросом конкретной локации для файлов загрузчика.

w7usDHIyET.png

Выбираю единственный диск своего компьютера - /dev/sda, и жму OK.

SE2eXJXKvP.png

Ещё через некоторое время процесс apt успешно завершится.

wcPSUClVXh.png

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

# passwd

uDRXF1548v.png

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

8. Перезагрузка

Покидаю текущее окружение и сессию root, для этого даю в терминале команду exit два раза подряд.

8S0yDmXL3g.png

Закрываю все открытые окна livecd-сессии и перезагружаю компьютер соответствующей пимпой системного меню XFCE4.

yrvM9MRmWM.png

Настал момент истины...

9. Загрузка установленной системы

Во время перезагрузки Grub сработал без таймаута, и загрузка новой системы началась без лишних затыков.

vhgNoQZt28.png

Через некоторое время, очень быстро, Дебианыч оказывается перед экраном с приглашением ввести login и пароль.

0YMSrZZFr3.png

Вхожу как root.

A9euYuzV7K.png

Всё, рыбка в банке и на моём окне... Базовая система установлена и готова к следующим этапам настройки и установки программного обеспечения в зависимости от требований и предпочтений конечного пользователя, без всего лишнего и ненужного, но со всем полезным и необходимым. На старте в корневом разделе системы свободно и доступно 27 GiB из 30-ти.

0MPXdLAaCD.png

А системный монитор выдаёт вот такие цифры:

992WVwQhc3.png

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

Ubuntu в своей сущности практически ничем, кроме некоторых несущественных деталей, не отличается от элегантного и легковесного Arch, и процесс установки этой системы тоже можно надёжно контролировать, не полагаясь на вкусы и желания релиз менеджеров Canonical, а успешность любой установки зависит только от квалификации установщика.

Всё..! :)

Для справки: выключить компьютер на текущем этапе можно с помощью команды systemctl poweroff а перезагрузить - systemctl reboot.

10. Вся последовательность команд

Вся последовательность выполненных в процессе нестандартной установки базовой системы команд выглядит так:

sudo -i
gparted
nano /etc/apt/sources.list
apt update
apt install debootstrap
mount /dev/sda1 /mnt
debootstrap --arch amd64 focal /mnt
LANG=C.UTF-8 chroot /mnt /bin/bash

mount -t proc proc /proc
mount -t sysfs sysfs /sys
vim.tiny /etc/apt/sources.list
apt update
apt install makedev
cd /dev
MAKEDEV generic
mount -t devpts devpts /dev/pts
vim.tiny /etc/fstab
vim.tiny /etc/adjtime
dpkg-reconfigure tzdata
apt install linux-image-generic
passwd
Комментарии: