Устанавливаем базовый Debian sid на машину с UEFI
prolinux
Debian sid — нестабильная ветка свободной операционной системы, и поэтому он не имеет собственного дистрибутива — установочного iso-образа. Установить эту версию Debian можно либо из iso-образа тестовой ветки с последующим обновлением до sid, либо с помощью debootstrap — специальной программы для установки базовой системы Debian любой версии. В этом обзоре я покажу последовательность действий при установке базового Debian sid с помощью debootstrap для компьютера с UEFI загрузкой в пошаговом режиме и со всеми необходимыми пояснениями и лирическими отступлениями. Для справки: аналогичный процесс для компьютера с загрузкой из MBR диска в режиме legacy описан в соседнем топике этого блога.
Базовое окружение
debootstrap — это утилита командной строки, для запуска и адекватной работы этой программы необходимо соответствующее окружение. Если устанавливать Debian sid на стационарный компьютер, тогда, чтобы запустить debootstrap, потребуется любой deb-совместимый Live: Debian, Ubuntu, Mint или MX Linux. Увы, эти вендоры по каким-то неведомым причинам не считают нужным включить debootstrap в состав своих Live систем, но на всех них эту программу можно установить с помощью apt прямо в Live-сессии, понадобится только подключение к сети. Наиболее выгодно для достижения поставленной цели на фоне остальных конкурентов выглядит MX Linux Libretto Live.
В рамках этой демонстрации я буду устанавливать базовую систему Debian sid не на стационарный диск своего компьютера, а на внешний HDD. Это обстоятельство даёт мне возможность использовать в качестве базового окружения установленную на стационарном диске моего лэптопа операционную систему, её штатный терминал и подключение к сети Интернет. При этом первый тестовый запуск устанавливаемой операционной системы можно осуществить в виртуальной машине VirtualBox без перезагрузки рабочего компьютера.
Разметка диска
Процесс разметки диска, на который я буду устанавливать базовую систему Debian в рамках этой демонстрации, детально описан в статье по этой ссылке. Схему разметки дискового пространства можно увидеть на итоговом снимке экрана. И здесь необходимо дать некоторые пояснения:
-
Поскольку предполагается загрузка компьютера в режиме UEFI, на диске предусмотрен специальный раздел ESP, он размещён по адресу
/dev/sda1
; -
На разделе
/dev/sda2
будет размещена корневая файловая система будущей операционной ситемы; -
На диске имеется раздел
/dev/sda3
, который можно использовать для размещения каталога/home
, но в рамках этой демонстрации хомяк будет размещён в корневой файловой системе, чуть позже в этом блоге я покажу, как его можно перенести в выделенный раздел.
Получаем файлы базовой системы
Поскольку все продемонстрированные здесь команды требуют прав суперпользователя, запускаю терминал и становлюсь root-ом.
$ sudo -i
При этом приглашение командной строки изменит свой вид, вместо знака доллара появится решётка, как подтверждение супер полномочий.
Монтирую выбранный раздел накопителя в системный каталог /mnt
.
# mount /dev/sda2 /mnt
С помощью debootstrap, который уже установлен в операционной системе моего компьютера, получаю из официального зеркала файлы базовой системы Debian sid.
# debootstrap --arch amd64 sid /mnt http://ftp.ru.debian.org/debian/
Здесь с помощью ключа --arch
я указал интересующую меня архитектуру, sid
указывает на версию операционной системы, /mnt
— целевой каталог, куда будут копироваться и распаковываться файлы полученных пакетов. Замыкает команду адрес официального сетевого зеркала Debian, откуда пакеты будут загружаться. Жму enter
.
На снимке экрана выше видно, что программа пытается подключиться к указанному зеркалу, чтобы начать загрузку и распаковку всех необходимых пакетов в указанный ей каталог /mnt
, создавая при этом вложенные каталоги. Это действие занимает некоторое время и имеет упорядоченный выхлоп в консоль. Закончиться этот процесс должен, как показано на следующем снимке экрана.
Base system installed successfully. Если в вашем терминале появилось это сообщение, значит, всё идёт по плану, а в содержимом каталога /mnt
можно увидеть все характерные для Debian функциональные каталоги будущей операционной системы.
Монтируем временные файловые системы
Вспоминаем Егора Летова... Всё идёт по плану. Базовая система уже распакована и установлена на внешний HDD, чтобы воспользоваться её окружением, необходимо смонтировать её временные файловые системы. Для этого выполняю последовательно следующие четыре команды.
# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
# mount --bind /dev/pts /mnt/dev/pts
Кроме этого, поскольку в схеме разметки диска имеется раздел ESP, на который будет впоследствии записан базовый загрузчик, этот раздел тоже нужно смонтировать. Для этого создаю каталог с именем efi
вот такой командой.
# mkdir /mnt/boot/efi
В него монтирую раздел ESP — /dev/sda1
.
# mount /dev/sda1 /mnt/boot/efi
На снимке экрана выше видно, что монтирование всех файловых систем при исполнении только что перечисленных команд завершилось успехом, в выхлопе терминала отсутствуют отчёты об ошибках и предупреждениях. Это значит, что я получаю возможность сменить окружение.
Меняем окружение
В результате всех выполненных до этого момента действий, на внешнем смонтированном разделе HDD образовалось новое окружение Debian, и в него, соответствующие его каталоги, смонтированы все временные файловые системы текущей операционной системы моего рабочего компьютера. В этом окружении я и должен буду выполнить все последующие действия. Делаю это окружение текущим.
# LANG=C.UTF-8 chroot /mnt /bin/bash
Как видно на снимке экрана выше, в результате исполнения предложенной команды приглашение командной строки в моём рабочем терминале изменило свой вид, теперь я нахожусь в корне файловой системы смонтированного в /mnt
раздела внешнего диска и могу с помощью текущего командного интерпретатора управлять этим окружением.
Настраиваем пакетный менеджер
Для начала, следует посмотреть на настройки пакетного менеджера apt нового окружения командной строки. Открываю в текстовом редакторе файл sources.list
.
# nano /etc/apt/sources.list
В уже присутствующую в этом файле одну единственную строчку дописываю все ветки официального хранилища Debian sid.
deb http://ftp.ru.debian.org/debian sid main contrib non-free non-free-firmware
Сохраняю изменения в файл.
И покидаю текстовый редактор. Пришло время обновить базу данных пакетного менеджера apt.
# apt update
На снимке экрана выше видно, что обновление базы данных прошло успешно, никаких сбоев и ошибок не зарегистрировано. Это обстоятельство даёт мне возможность установить в текущее окружение любой пакет из подключенного сетевого хранилища.
Формируем fstab будущей операционной системы
Впоследствии, когда все работы по установке базовой операционной системы будут закончены, её необходимо будет загрузить. При загрузке любой операционной системы с Linux на её начальной стадии происходит монтирование всех указанных в системном файле /etc/fstab
файловых систем. Для новой системы этот файл необходимо сформировать.
Монтировать файловые системы можно несколькими способами, в том числе, по системному адресу раздела накопителя, или по системному UUID раздела накопителя. В текущем окружении системный адрес корневого раздела имеет вид /dev/sda2
, и при загрузке операционной системы с этого раздела его системный адрес может измениться. Поэтому в fstab я должен указать системный UUID раздела, дабы избежать впоследствии ненужных коллизий. Этот UUID уже можно определить в текущем окружении с помощью команды blkid.
Кроме корневого раздела, на диске есть ещё и раздел ESP, который тоже должен быть смонтирован при загрузке, и в fstab системы для него должна существовать отдельная запись. Сначала определяю UUID раздела ESP.
# blkid /dev/sda1
Следом за этим определяю UUID раздела /dev/sda2
.
# blkid /dev/sda2
На снимке экрана выше я выделил необходимые мне данные красными рамочками. Поскольку я нахожусь в эмуляторе терминала в графическом окружении своей рабочей операционной системы, мне всё ещё доступен её буфер обмена. Копирую в буфер обмена полученные с помощью blkid значения для каждого интересующего меня раздела диска. Открываю файл fstab текущего окружения в текстовом редакторе.
# nano /etc/fstab
В этот файл, а на данный момент в нём присутствует только комментарий, вписываю две следующие строчки.
UUID=7b741cf3-d4a7-4551-bde8-99f02875e891 / ext4 errors=remount-ro 0 1
UUID=D689-30E0 /boot/efi vfat umask=0077 0 1
Понятно, что конкретные UUID в окно текстового редактора я вставил из буфера обмена.
Здесь следует отметить, что, если бы мне нужно было разместить хомяк на отдельном разделе, на моём диске есть раздел /dev/sda3
, то в этот файл я должен был бы вписать ещё одну строчку следующего вида:
UUID=7d2fe0fe-e960-43cf-9b0f-f62dc9ea26c5 /home ext4 defaults 0 2
Сохраняю изменения в файл и покидаю текстовый редактор. Всё готово к установке ядра и базового загрузчика.
Установка ядра и базового загрузчика
Базовая система, файлы и каталоги которой я распаковал с помощью команды debootstrap, пока не содержит ядра, его требуется установить. Вместе с ядром я установлю ещё и базовый загрузчик GRUB, с его помощью операционную систему с этого внешнего накопителя можно будет загрузить впоследствии. Вбиваю в окне терминала следующую команду.
# apt install -y linux-image-amd64 grub-efi dbus
Жму enter
, и, поскольку в команде я указал ключ -y
, пакетный менеджер сразу приступит к загрузке и распаковке всех запрошенных пакетов. Дожидаюсь полного завершения этого процесса.
Устанавливаем базовый загрузчик на диск
На внешнем накопителе, с которым я работаю в рамках этой демонстрации, будет установлена одна единственная операционная система. Устанавливать базовый загрузчик я буду на раздел ESP, который уже смонтирован и готов к использованию, для этого исполняю в своём рабочем терминале следующую команду.
# grub-install --efi-directory=/boot/efi --removable --boot-directory=/boot/efi/EFI --bootloader-id=grub /dev/sda
Как видно на снимке экрана выше, установка GRUB прошла успешно, без сбоев и ошибок. No error reported..
По-умолчанию в настройках системного загрузчика всегда указан таймаут, после которого GRUB начинает загрузку операционной системы, но поскольку на диске будет одна единственная операционная система, этот таймаут можно обнулить правкой соответствующего файла.
# nano /etc/default/grub
В этом файле в поле GRUB_TIMEOUT
следует вписать нужное значение.
На данный момент уже установленный в раздел ESP базовый загрузчик GRUB ещё не имеет файла конфигурации, но его можно сформировать следующей командой.
# update-grub -o /boot/efi/EFI/grub/grub.cfg
В конце выхлопа при исполнении этой команды на снимке экрана моего рабочего терминала мы видим строчку done. Это говорит нам, что системный загрузчик готов к исполнению возложенной на него миссии.
Задаём пароль root
В базовой операционной системе, которую я только что установил и выполнил её начальную настройку, на текущий момент имеется только один пользователь — root. Других пользователей я создам чуть позже, после локализации этой системы. Чтобы root мог войти — залогиниться, ему необходимо создать пароль.
# passwd root
Эта команда исполняется в интерактивном режиме, будет запрошен ввод пароля и подтверждение пароля повторным вводом. При вводе пароль не будет отображаться на терминал. Внимание на следующий снимок экрана.
Всё..! Базовый Debian sid установлен на раздел внешнего HDD накопителя, настроен и готов к первой тестовой загрузке в режиме UEFI.
Отключаем текущее окружение
Перед первой тестовой загрузкой только что установленной базовой операционной системы Debian sid необходимо отключить все смонтированные файловые системы текущего окружения. Последовательно выполняю следующие команды.
# umount /dev/pts
# umount /sys
# umount /proc
# umount /dev
# umount /boot/efi/
Текущее окружение нужно покинуть.
# exit
И отключить смонтированный раздел внешнего накопителя.
# umount /mnt
Вынимать разъём девайса из гнезда USB торопиться не следует. Только что установленную операционную систему следует протестировать.
Загружаем с внешнего накопителя машину VirtualBox
Внешний накопитель, с которым я работал в рамках этой демонстрации подключен к виртуальной машине VirtualBox и поэтому, я имею возможность протестировать первый запуск только что установленного базового Debian sid на виртуальной машине, без перезагрузки своего рабочего компьютера. Запускаю VirtualBox, включаю виртуальную машину. На старте наблюдаю окно базового загрузчика.
Жму enter
, дожидаюсь полной загрузки установленной на накопителе операционной системы.
И получаю возможность войти от имени пользователя root, пароль помню.
Как видно на снимке экрана виртуальной машины выше, на текущий момент Debian sid имеет ядро версии 6.12.33
и его базовая система готова принимать команды во всех виртуальных консолях. Цель этой демонстрации полностью достигнута.
Подводим промежуточный итог
Увы, но базовая система Debian sid предлагает пользователю только интерфейс командной строки. И чтобы она стала удобной и дружелюбной к своему благодарному пользователю, в эту базовую систему требуется установить ещё очень и очень много разного полезного пользовательского программного обеспечения. О всех мелких деталях этой работы я рассказываю на страницах этого блога. Ваша активность в блоге будет дополнительным мотивирующим автора фактором, не оставайтесь в стороне, поставьте лайк, оставьте комментарий, поддержите меня своим безвозмездным и благородным донатом.