Arch linux systemd boot

Arch linux UEFI установка

Самый простой вариант установки Arch Linux рассчитанный на загрузку из под UEFI

Машина:
CPU Intel i5
VGA Nvidia GTX 660M
RAM 8Gb
HDD 750Gb
Сеть WiFi

Подготовка

  1. Качаем дистр Arch linux Yandex mirror
  2. Заливаем на флешку:
  3. Загружаем машину с флешки и по шагам:

1. Разбиваем хард на разделы:

На выходе необходимо получить примерно следующую структуру с указанными типами Ф.С.:

Порядок Описание Раздел Размер Тип
1 ESP /dev/sda1 1Gib EFI System
2 / /dev/sda2 340GiB Linux Filesystem
3 /home /dev/sda3 340GiB Linux Filesystem
4 SWAP /dev/sda4 16GiB Linux Swap

Примечание: Раздел UEFISYS может быть любого размера, который поддерживается файловой системой FAT32. В соответствии с документацией пресловутой Microsoft, минимальный размер раздела с FAT32 — 512Мб. В соответствии с вышесказанным рекомендуется устанавливать размер UEFISYS раздела больше 512Мб. Мы сделаем его размером в 1Gb Подробнее здесь: ArchWiki UEFI (Русский)

2. Создаем Файловые системы на созданных разделах

UEFI раздел FAT32:

Корневой раздел EXT4:

Домашний раздел EXT4:

Раздел подкачки: создаем его :

3. Монтируем Файловые системы

Примечание: Мы будем развертывать новую систему в директории /mnt

Монтируем корневой раздел в /mnt

Создаем директорию /boot и /home для загрузчика и домашнего раздела:

Монтируем UEFI раздел

Монтируем домашний раздел

Монтируем раздел подкачки :

Все вышеописанное можно сделать используя метки которые мы задали при создании файловых систем:

4. Поднимаем сеть WiFi

Выбираем свою точку доступа и подрубаемся к ней может быть например таким wlp0s21f0u7i2:

Если сети нет, то выясняем имя беспроводного интерфейса:

И поднимаем его принудительно:

5. Разворачиваем систему из репозитория

  1. В файле /etc/pacman.d/mirrorlist перемещаем адреса российский серверов в самый верх. Ну, или можно сделать как здесь: ArchWiki Mirrors (Русский)
  2. Выполняем скрипт инициализации системы, указав ему :
  3. Для поддержки беспроводной сети на мой взгляд лучше использовать NetworkManager ArchWiki NetworkManager (Русский) т.к он прост в обращении и под него реально найти апплеты для гуевого рабочего стола. Итак укажем установщику дополнительно установить пакеты: networkmanager, dialog, wpa_supplicant:

6. Делаем снимок точек монтирования в файл fstab

«Запечем» правила монтирования файловых систем в файл:

Далее переходим в оболочку новой системы:

И обновляем данные пакетного менеджера и установленные утилиты:

7. Устанавливаем UEFI менеджер загрузки

Установим systemd-boot — UEFI менеджер загрузки при помощи утилиты bootctl:

8. Создадим загрузочную запись для UEFI менеджера загрузки

Необходимо поправить файл загрузчика: /boot/loader/loader.conf что бы он принял следующий вид:

где timeout 4 это время задержки, а default arch указывает загрузить систему основываясь на записи в файле /boot/loader/entries/arch.conf. Его содержание:

Кстати этот файл в арче копируется с шаблона:

После можно проверить что наша запись с ArchLinux появилась:

Необходимо так же на случай обновления systemd разместить следующий pacman hook в каталоге /etc/pacman.d/hooks/:

Подробнее про описанное выше здесь: ArchWiki systemd-boot (Русский)

9. Завершение установки

Теперь можно задать пароль для рута

создать дополнительных пользователей и пр.

После этого выходим из окружения и перезагружаем систему

Вытаскиваем флешку, меняем устройство загрузки и грузим новую систему.

Источник

Arch boot process (Русский)

Для загрузки Arch Linux необходим совместимый с Linux загрузчик. Загрузчик должен загрузить ядро и initial ramdisk в память перед запуском системы. Процесс несколько отличается для BIOS и UEFI; подробное описание дано ниже и на связанных страницах.

Contents

Типы прошивок

BIOS — программа (прошивка), которая выполняется сразу же после включения системы. Чаще всего она хранится во flash-памяти, распаянной непосредственно на материнской плате, и не зависит от системного устройства хранения данных.

Unified Extensible Firmware Interface может считывать как таблицу разделов, так и файловые системы. UEFI не выполняет загрузочный код в MBR, вне зависимости от того, существует он или нет. Вместо этого загрузка происходит в соответствии с записями в NVRAM.

Спецификация UEFI объявляет обязательными поддержку файловых систем FAT12, FAT16 и FAT32 (см. UEFI specification version 2.8, section 13.3.1.1), но производители могут добавлять и другие файловые системы. Например, компьютеры Apple Mac поддерживают (и по умолчанию используют) драйвера собственной файловой системы HFS+. Также реализации UEFI поддерживают формат оптических дисков ISO-9660.

UEFI запускает т.н. EFI-приложения, например, загрузчики, менеджеры загрузки, командную оболочку UEFI и т.д. Эти приложения обычно хранятся в виде файлов в системном разделе EFI. Каждый производитель может хранить свои файлы в EFI-разделе в каталоге /EFI/производитель . Приложения можно запустить с помощью загрузочной записи в NVRAM или из UEFI-оболочки.

В спецификации UEFI также предусмотрена legacy-загрузка через BIOS посредством Compatibility Support Module (CSM). UEFI с включённым CSM сгенерирует загрузочные CSM-записи для всех дисков. Если для загрузки выбрана именно такая запись, то CSM попытается выполнить код из MBR на диске.

Инициализация системы

Система с BIOS

  1. Компьютер включается, выполняется power-on self-test (POST).
  2. После POST BIOS инициализирует аппаратуру, необходимую для загрузки (диск, контроллеры клавиатуры и т.д.).
  3. BIOS запускает на выполнение первые 440 байт из MBR bootstrap code area первого (в очерёдности загрузки) диска.
  4. Код первого этапа загрузчика в MBR загружает и запускает код второго этапа загрузчика (если таковой имеется), который может храниться в следующих местах:
    • следующие сектора диска после MBR, например, т.н. «post-MBR gap» (только в случае таблицы разделов MBR).
    • volume boot record (VBR) раздела или partitionless-диска.
    • загрузочный раздел BIOS (только GRUB с BIOS/GPT).
  5. Запускается непосредственно загрузчик.
  6. Загрузчик загружает в память операционную систему либо напрямую, либо посредством цепной загрузки (chain-loading).

Система с UEFI

  1. Компьютер включается, выполняется power-on self-test (POST).
  2. После POST UEFI инициализирует аппаратуру, необходимую для загрузки (диск, контроллеры клавиатуры и т.д.).
  3. Прошивка считывает загрузочные записи из NVRAM, чтобы определить, какое EFI-приложение необходимо запустить и откуда (т.е. с какого диска и раздела).
    • Загрузочной записью может быть просто диск. В этом случае прошивка ищет системный раздел EFI на этом диске и EFI-приложение на резервном пути загрузки \EFI\BOOT\BOOTx64.EFI (в системах с 32-битным UEFI — BOOTIA32.EFI ). Именно так UEFI работает со съёмными загрузочными устройствами.
  4. Прошивка запускает EFI-приложение.
    • Это может быть загрузчик или, при использовании EFISTUB, непосредственно ядро Arch Linux.
    • Это также может быть и какое-то другое приложение, например, командная оболочка UEFI или менеджер загрузки вроде systemd-boot или rEFInd.

Если включён режим Secure Boot, аутентичность двоичного EFI-файла будет проверена по его подписи.

Мультизагрузка в UEFI

Поскольку файлы различных операционных систем и производителей хранятся в системном разделе EFI в разных каталогах, мультизагрузка с UEFI сводится к запуску EFI-приложения загрузчика конкретной операционной системы. Это позволяет отказаться от использования chain loading при загрузке различных ОС.

Загрузчик

Загрузчик — программа, которая запускается прошивкой (BIOS или UEFI). Эта программа в соответствии с файлами настроек загружает ядро с заданными параметрами, а также начальный загрузочный диск. В случае UEFI ядро может быть загружено напрямую, без загрузчика, посредством EFISTUB; в этом случае загрузчик или менеджер загрузки можно использовать для редактирования параметров ядра перед загрузкой.

Сравнение возможностей

Название Прошивка Таблица разделов Мультизагрузка Файловые системы Примечания
BIOS UEFI MBR GPT Btrfs ext4 ReiserFS VFAT XFS
EFISTUB Да Да Да Наследуется от прошивки 1 Ядро «заворачивается» в исполняемый EFI-файл и загружается напрямую из UEFI или другим загрузчиком.
Clover Эмулирует UEFI Да Да Да Да 2 Нет Без шифрования Нет Наследуется от прошивки 1 Нет Форк rEFIt, модифицированный для запуска macOS на компьютерах не от Apple.
GRUB Да Да Да Да Да Да Да Да Да Да В конфигурации BIOS/GPT требует загрузочный раздел BIOS.
Поддерживает RAID, LUKS1 и LVM (но не thin provisioned тома).
Limine Да Да Да Да Да Нет Без шифрования Нет Да Нет
rEFInd Нет Да Да Да Да 2 Без шифрования Без шифрования Без tail-packing Наследуется от прошивки 1 Нет Поддерживает автообнаружение ядер и параметров без явной конфигурации, а также fastboot [2].
Syslinux Да Частично Да Да Частично Без: multi-device тома, сжатие, шифрование Без шифрования Нет Да Только MBR; без sparse inodes Не поддерживает некоторые особенности файловых систем[3].
Не имеет драйверов файловых систем [4], может работать только с той ФС, на которую установлен.
systemd-boot Нет Да Только ручная установка Да Да 2 Нет Нет Нет Наследуется от прошивки 1 Нет Запускает двоичные файлы только из разделов ESP и Extended Boot Loader Partition (XBOOTLDR).
GRUB Legacy Да Нет Да Нет Да Нет Нет Да Да Только XFSv4 Разработка прекращена в пользу GRUB.
LILO Да Нет Да Нет Да Нет Без шифрования Да Да Да Разработа прекращена из-за ограничений (например, с Btrfs, GPT, RAID).
  1. Поддержка файловой системы «унаследована» от прошивки. Спецификация UEFI объявляет обязательной поддержку файловых систем FAT12, FAT16 и FAT32 [5], но производители могут добавлять собственные ФС; например, компьютеры Apple Mac поддерживают файловую систему HFS+. Если прошивка имеет интерфейс для загрузки драйверов UEFI при запуске системы, то можно подключить дополнительные файловые системы, загрузив их (сторонние) драйвера.
  2. Менеджер загрузки. Может только запускать другие EFI-приложения, например, ядро Linux (собранное с флагом CONFIG_EFI_STUB=y ) или Windows bootmgfw.efi .

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

initramfs

Загрузчик перемещает ядро и имеющиеся файлы initramfs в память и запускает ядро. В начале работы ядро распаковывает архивы с initramfs (initial RAM filesystem, начальная файловая система) в пока что пустующую rootfs (первоначальная корневая файловая система, чаще всего ramfs или tmpfs). Сначала извлекается initramfs, которая была встроена в двоичный файл ядра в процессе сборки, а затем — внешние initramfs-файлы, если таковые имеются. Файлы внешней initramfs перезаписывают одноименные файлы встроенной. После этого ядро запускает в rootfs /init как первый процесс. Начинается раннее пространство пользователя (early userspace).

Официальные ядра Arch Linux используют в качестве встроенной initramfs пустой архив (используется по умолчанию при сборке Linux). Внешние образы initramfs можно сгенерировать с помощью mkinitcpio, dracut и booster.

Назначение initramfs — загрузить систему до состояния, в котором она может работать с корневой файловой системой (подробнее см. FHS). Это означает, что любые модули, которые необходимы устройствам IDE, SCSI, SATA, USB/FW (при загрузке с внешнего носителя) и не были встроены в ядро, должны загружаться из initramfs; после подключения необходимых модулей (программой/сценарием или неявно udev), процесс загрузки продолжается. В initramfs должны быть только модули, необходимые для доступа к корневой файловой системе; нет необходимости хранить в ней все модули, которые однажды теоретически могут понадобиться. Большинство таких модулей будут позже загружены менеджером устройств udev во время работы процесса init.

Процесс init

В завершающей фазе early userspace монтируется настоящий корневой каталог, замещающий начальную корневую ФС. Выполняется /sbin/init , который заменяет процесс /init . В Arch Linux в качестве init по умолчанию используется systemd.

getty

init запускает для каждого виртуального терминала (обычно их шесть) программу getty, которая инициализирует терминалы и запрашивает имя пользователя и пароль. Предоставленные входные данные getty проверяет по файлам /etc/passwd и /etc/shadow , после чего вызывает login или запускает менеджер экрана, если таковой имеется.

Менеджер экрана

Вместо приглашения входа getty можно использовать экранный менеджер.

Чтобы менеджер экрана запускался автоматически сразу после загрузки, необходимо вручную включить соответствующую службу systemd. Подробнее о включении и запуске служб см. systemd#Использование юнитов.

Программа login создаёт сеанс для пользователя. Она устанавливает переменные окружения и запускает командую оболочку в соответствии с файлом /etc/passwd .

После успешного входа (и перед запуском оболочки) login выводит содержимое файла /etc/motd (message of the day, сообщение дня). Используйте его, чтобы напомнить пользователям о правилах работы, политиках и т.п.

Оболочка

Прежде чем вывести строку приглашения, сразу после запуска командная оболочка исполняет файл настроек времени выполнения, вроде bashrc. Если для учётной записи настроен запуск X при входе, то в файле настроек должен вызываться либо startx, либо xinit.

GUI, xinit или wayland

xinit выполняет файл настроек xinitrc, в котором обычно запускается оконный менеджер. При выходе пользователя из оконного менеджера он возвращается в getty, по очереди завершая xinit, startx, командную оболочку и login.

Источник

Читайте также:  Downie аналог для windows
Оцените статью