23 апреля 2023

Установка ОС Arch Linux

В этой статье мы с Вами поэтапно пройдём сложный, тернистый, но очень увлекательный путь Установки одного из самых почитаемых и любимых у продвинутых Линуксятников Linux-дистрибутива - Arch Linux.
Данный Linux-дистрибутив, хоть и не в топах у Пользователей, в виду его сложности установки, но тем ни менее отличается от множества других своей невероятной гибкостью, настраивамостью, одним из самых больших сообществом фри-ланс разработчиков, как и профессиональных впрочем, огромным хранилищем, как правило самых свежих пакетов|программ.



Одним из самых существенных отличий дистрибутива Arch Linux от любых других - это процесс его установки, а именно отсутствие полноценного GUI-автоматизированного режима установки (Графический режим установки).
Есть скрипт установки, который вроде бы, как даёт такую возможность, но в минималистском и достатчоно также сложном графическом режиме для простого Пользователя.

Мы же с вами будем делать всё своими ручками, как и положено знатному Линуксятнику, а мы с вами собираемся приобщиться к данной категории Пользователей, а посему, ручной способ установки является основным и правильным.

Итак, перво на перво, идём с вами на портал дистрибутива, а именно, сразу же на страничку его Загрузки:
(частота выхода свежих релизов составляет каждое 1-е число, каждого месяца)
https://archlinux.org/download/

В пером разделе странички Release Info мы видим информацию о текущем релизе, его размер, ссылку на Руководство по установке (Installation Guide) где можно при желании посмотреть и использовать инструкции по Установке, также и на русском языке (можно выбрать в Меню странички справа вверху), но, как правило, дефолтное Руководство на английском языке всегда в актуально-свежем состоянии, что не всегда бывает со страничками других языков.

Тут же, чуть ниже, в разделе BitTorrent Download (recommended)|Загрузка торрент-файлом(рекомендуюется) можно воспользоваться для скачивания Установщика магнет-ссылкой - Magnet link for 2023.04.01 и ссылкой на торрент-файл - Torrent for 2023.04.01:
Если мы хотим напрямую скачать iso-образ (iso-файл) Установщика, то листаем страничку ниже до списка зеракал своей страны (в данном случае это Россия) и выбираем нажатием мышки нужное зеракало (здесь выбрано одно из двух зеркал yandex.ru):
В результате чего мы попадаем на страничку хранилища зеркала, где можно выбрать для скачивания нужный iso-файл или также здесь можно выбрать и скачать торрент-файл, после чего происходит загрузка iso-образа (как правило по умолчанию в папку Загрузки):

Создаём Установочную флешку из скачанного iso-образа в GPT, т.к. мы будем устанавливать систему в UEFI, воспользовавшись любимым способом создания таких флешек (это может быть и утилита Ventoy, и консольная утилита dd, и утилита NetBootIn, и Rufus в Windows, всем, чем угодно...), благо в нашем блоге есть инструкции по таким способам.

После создания Установочной флешки, грузимся с неё через BIOS-UEFI|BIOS (как это делается также есть описания в статьях в нашем блоге) и попадаем в Установщик Arch Linux:

Жмём на
Enter
т.к. по умолчанию уже засвечен|выделен нужный пункт Загрузочного Меню:
*Arch Linux install medium (x86_64. UEFI)
И после короткого промежутка времени загрузки Установщика попадаем в его Консольный режим:

Сразу проверяем, что мы действительно загрузились в режиме UEFI, проверив наличие соотвтествующего каталога командой:
ls /sys/firmware/efi/efivars/
Где видим по выводу, что такой каталог есть и он не пустой, а это в свою очередь означает, что мы загружены в режиме UEFI.

Всё отлично, но единственное НО!
Шрифт слишком мелковат и плохо читаем...

Давайте исправим сей казус и для этого сначала очищаем консоль от всего текста командой:
clear
А ещё лучше, проще и быстрее сочетанием клавиш клавиатуры:
Ctrl+L

В результате чего строка приглашения для ввода у нас успешно перемещается в самый верх и теперь мы вводим следующую команду и жмём на
Enter:
setfont ter-132n
Вот теперь другое дело!
Мы получили увеличенный размер шрифта консоли, что комфортно читаемо, удобно и радует глаз:


Продолжаем наши приятные "мытарства" по Установке Arch Linux и следующим шагом синхронизируем системные часы с временным сервером ntp в автоматическом режиме (подразумевается, что время|временной пояс установится автоматически, что не всегда точно, увы) командой:
timedatectl set-ntp true
или делаем это в принудительном режиме (я предпочитаю именно такой), с указанием конкретной временной зоны командой (в данном случае это Европа/Москва):
(не забывайте пользоваться клавишей Tab | , что существенно облегчит для вас ввод и прописку команд и названий пакетов автоподставкой из названий|имён)
timedatectl set-timezone Europe/Moscow
Проверить текущие, установленные время и дату можно командой:
date

Теперь проверяем на присутствие, ёмкость и общую информацию наш(и) носитель(и)|диск(и), куда мы с вами собрались устанавливать систему.
В данном случае система будет устанавливаться в Виртульную Машину и соответственно носитель|диск здесь будет один с предварительно задуманным размером в 30 Гб (в вашем случае реальный размер жёсткого диска для Установки может быть другим, как в меньшую, так и большую по размерам сторону).
Вводим следующую команду, жмём на
Enter:
fdisk -l
И в выводе видим, что здесь имя нашего диска:
vda

Такое имя присваивается обычно виртуальным дискам, а в данном случае, как раз Установка происходит в ВМ.

Реальным же физическим, жёстким дискам обычно присваиваются имена в формате:
sdX
где вместо X у вас всегда будет латынская буква от a и далее по алфавиту, в зависимости от кол-ва носителей|дисков в вашем компьютере.
Например:
- sda
- sdb
- sdc
- sdd
и т.д...

Здесь, конкретно, данные вывода по нашему виртуальному диску:
Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 sectors

У вас такой вывод может выглядеть для реального физического, жёсткого диска например таким:
Disk /dev/sdb: 500 GiB, XXXXXXXXXX bytes, XXXXXXXX sectors
поэтому будьте внимательны, читая вывод данных по носителям|дискам, т.к. в последствии эти данные вам пригодятся в процессе Установки.

Есть ещё одна команда, которая выводит данные по носителям|дискам, но только более сокращённые и можно воспользоваться и ей:
lsblk



Теперь, когда мы, согласно вывода данных о наших носителях|дисках, имеем название и размер нашего диска, настало время разметить его на разделы для устанавливаемой системы и для этого мы воспользуемся утилитой fdisk (мы уже выше использовали её для вывода данных о наших носителях|дисках, но вы можете использовать и др. утилиты).

Мы с вами будем создавать 3 (три) раздела:
- раздел №1: EFI-раздел, FAT32, размер 300 Мб
- раздел №2: Корневой раздел /, EXT4, размер 15 Гб
- раздел №3: Домашний раздел /home, EXT4, всё оставшееся место

Имея название нашего диска вводим следующую команду и жмём на
Enter:
fdisk /dev/vda
В октрывшемся меню утилиты, в самом низу мы видим строку-приглашение:
Comand (m for help:)
которая переводится - для вывода помощи по командам утилиты можно ввести букву
m
и нажать на
Enter
что мы с вами и делаем и видим список команд и их описание:
Здесь можно также посмотреть сведедния о нашем диске введя
p
и нажав на
Enter:
(аналог команды fdisk -l)
Сразу обращаем внимание на строку:
Disklabel type:
а именно на её значение:
dos
что говорит нам, что в данный момент используется таблица разделов MBR.

Но, т.к. мы с вами устанавливаем систему в UEFI-режиме, то для этого нам нужна таблица разделов GPT, и, следовательно, мы её создаём введя
g
и нажав на
Enter
сразу видим, что на нашем диске успешно создана таблица разделов GPT:

После создания таблицы разделов GPT приступаем к созданию резделов и для этого вводим
n
и жмём на
Enter
и обращаем внимание на вывод
- Partition number (1-128, default 1):
предлагающий нам выбрать номер раздела от 1 до 128 и указывает нам авто-выбором раздел по умолчанию № 1, а его мы и собираемся создавать, а значит, что нам не нужно прописывать его номер (здесь имеется в виду 1), а просто жмём ещё раз на
Enter:

Далее следует информационный вывод о первом секторе раздела и его дефолтном значении, где также просто жмём на
Enter:
- First sector (2048-62914526, default 2048):
(напоминаю, что в вашем случает эти значения будут другими)

И, т.к. мы устанавливаем систему в режиме UEFI, нам нужен соответствующий EFI-каталог|раздел для дальнейшей успешной загрузки установленной системы, ибо, если его не создать, то установленная система просто не загрузится, выдав нам сообщение о отсутствии разделов и пр...
Поэтому в следующем выводе разметчика о последнем секторе и способах убавить/добавить сектора или размер создаваемого раздела к этой строке:
- Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-62914526, default 62912511):

дописываем
+300M (этого вполне достаточно для EFI-раздела)
чтобы строка выглядела так:
- Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-62914526, default 62912511):+300M

жмём на
Enter
и видим вывод, что новый раздел под №1 с типом файловой системы 'Linux filesystem' и размером 300 MiB успешно нами создан:
(обратите внимание на тип ФС 'Linux filesystem' созданного раздела. EFI-раздел должен иметь тип ФС 'EFI System' в формате FAT32 и мы обязательно после создания всех разделов поменяем тип ФС и отформатируем в этот формат)

Далее, создаём корневой раздел для системы - / и снова вводим
n
и жмём
Enter
и снова по аналогии с пердыдущим созданием EFI-раздела видим вывод
- Partition number (2-128, default 2):
но уже предлагающий нам выбрать номер раздела от 2 до 128 и указывает нам умным авто-выбором раздел по умолчанию № 2, а его мы и создаём сейчас, а значит, что нам не нужно прописывать его номер (здесь имеется в виду 2), а просто снова жмём на
Enter:

Далее снова следует информационный вывод о первом секторе раздела и его дефолтном значении, где также просто жмём на
Enter:
- First sector (616448-62914526, default 616448):
(напоминаю, что в вашем случает эти значения будут другими)

В следующем выводе разметчика о последнем секторе и способах убавить/добавить сектора или размер создаваемого раздела к этой строке:
- Last sector, +/-sectors or +/-size{K,M,G,T,P} (616448-62914526, default 62912511):

дописываем
+15G (такой размер корневого раздела выбрал я, но вы можете выбрать другой размер)
чтобы строка выглядела так:
- Last sector, +/-sectors or +/-size{K,M,G,T,P} (616448-62914526, default 62912511):+15G

жмём на
Enter
и видим вывод, что новый раздел под №2 с типом файловой системы 'Linux filesystem' и размером 15 GiB успешно нами создан:

Ну и создаём последний раздел /home - Домашний и также вводим
n
и жмём на
Enter
и снова видим вывод
- Partition number (3-128, default 3):
но уже предлагающий нам выбрать номер раздела от 3 до 128 и указывает нам умным авто-выбором раздел по умолчанию № 3, а его мы и создаём сейчас, а значит, что нам опять не нужно прописывать его номер (здесь имеется в виду 3), а просто снова жмём на
Enter:

Снова следует информационный вывод о первом секторе раздела и его дефолтном значении, где также просто жмём на
Enter:
- First sector (32073728-62914526, default 32073728):
(напоминаю, что в вашем случает эти значения будут другими)

И в следующем выводе разметчика о последнем секторе и способах убавить/добавить сектора или размер создаваемого раздела:
- Last sector, +/-sectors or +/-size{K,M,G,T,P} (32073728-62914526, default 62912511):
ничего не прописываем, т.к. мы выбираем всё оставшееся место на носителе|диске и просто жмём на
Enter
и видим вывод, что новый раздел под №3 с типом файловой системы 'Linux filesystem' и оставшимся размером 14.7 GiB успешно нами создан:

Теперь, как я пояснял чуть ранее на этапе создания EFI-раздела, нам надо преобразовать его тип ФС из 'Linux filesystem' в 'EFI System' и для этого, согласно вывода помощи по командам, вводим
t
и жмём на
Enter
и видим вывод
- Partition number (1-3, default 3):
предлагающий нам выбрать номер раздела от 1 до 3 и указывает нам умным авто-выбором раздел по умолчанию № 3:

Но нам надо преобразовать раздел №1 и поэтому вписываем его номер
1
и жмём на
Enter
и видим вывод, предлагающий нам ввести тип или обозначение (алиас) раздела (или напечатать заглавную L (можно и строчную l), чтобы вывести весь список типов и обозначений разделов):

Ну и, давайте для ознакомления посмотрим список типов и обозначений разделов введя
l - (здесь строчная, но можно и заглавную L, разницы нет)
и жмём на
Enter:

Выпадает список типов и обозначений разделов, где сразу же первым номером 1 (№1) мы видим нужный нам тип и обзначение EFI-раздела. Запоминаем его (думаю вам запомнить цифру 1 не составит труда...):

Теперь нажатием на
Пробел
или
Enter
пролистываем весь список, чтобы ознакомится на будущее со всеми типами и обозначениями (алиасами) разделов и обращаем внимание, что раздел Обозначения (Aliases|Алиасы) в самом конце списка:

Выходим из списка вводом или:
q и жмём на Enter
либо:
:q и жмём на Enter
после чего происходит возврат к предложению ввести тип или обозначение (алиас) раздела:

А ранее, из вывода списка типов и обозначений разделов мы с вами запомнили первый из списка номер
1 EFI System
а именно в этот тип нам и надо преобразовать 1-й, созданный нами раздел, а значит мы вводим здесь
1
жмём на
Enter
и видим вывод, что тип раздела изменился с
Linux filesystem
на
EFI System
что нам и было нужно:

И, т.к. мы в принципе выполнили все задачи по разметке диска на разделы, преобразовали первый раздел в нужный нам тип, то всё, что нам остаётся сделать - это сохранить|записать все сделанные нами изменения и для этого вводим
w - (значит write down|записать)
жмём на
Enter
и видим вывод, что все изменения в таблице разделов сделаны и сохранены и видим, что после сохранения изменений осуществлён автоматический выход из разметчика в Консольный режим Установщика Arch Linux:

И, чтобы посмотреть, а что же мы собственно с вами "натворили" с диском вводим
lsblk
жмём на
Enter
и видим таблицу того, что мы с вами наколдовали:

Теперь настало время отформатировать созданные нами разделы.

Форматируем первый EFI-раздел в FAT32 командой:
mkfs.fat -F32 /dev/vda1

Форматируем второй Корневой раздел в EXT4 командой:
mkfs.ext4 /dev/vda2

Форматируем третий Домашний раздел в EXT4 командой:
mkfs.ext4 /dev/vda3

Проверяем, что мы с вами наформатировали командой:
fdisk -l
А наформатировали мы с вами всё, как положено, о чём нам и говорит вывод команды:



Следующим этапом Установки будет монтирование разделов для установки системы в каталог /mnt

И первым в каталог /mnt мы монтируем созданный нами Корневой раздел vda2 (полный путь /dev/vda2) командой:
(напоминаю, что у вас обозначение разделов будут отличаться на физическом диске|ностиеле. Например /dev/sdc2. Просто внимательно смотрите вывод предыдущей команды)
mount /dev/vda2 /mnt/

Далее нам нужно создать в каталоге /mnt каталоги для созданных нами разделов EFI и Домашний (/home) и делаем мы это командой:
mkdir -p /mnt/{boot/efi,home}

Дополнительно хочу пояснить более подробно, что мы конкретно создали в каталоге /mnt, а именно мы создали каталоги:
- boot, а в нём ещё и каталог efi (полный путь будет /mnt/boot/efi)
и
- home (полный путь будет /mnt/home)

И теперь, если мы выполним команду, дающую возможность заглянуть в каталог /mnt:
ls /mnt
то увидим вывод, что каталоги boot и home созданы и присутствуют:

И для убедительности проверяем ещё и создался ли каталог efi в boot командой:
ls /mnt/boot
и видим, что каталог efi в каталоге boot также создан и присутствует:

А теперь монтируем в созданные каталоги по очереди созданные нами разделы.
Монтируем EFI-раздел в /mnt/boot/efi:
mount /dev/vda1 /mnt/boot/efi

Теперь монтируем Домашний раздел в /mnt/home:
mount /dev/vda3 /mnt/home

И сразу проверяем, всё ли правильно мы сделали командой:
lsblk
и видим вывод, что всё успешно смонтировалось туда, куда и нужно:


Теперь нам необходимо подключить дополнительный репозиторий multilib, чтобы иметь возможность установить все нужные нам пакеты и для этого воспользуемся интегрированным в Установщик редактором nano, отредактировав файл pacman.conf в каталоге /etc командой:
nano /etc/pacman.conf

Перед нам откроется содержимое этого файла:

Пролистываем содержимое файла на клавиатуре стрелкой Вниз ⬇|▼ в самый низ, чтобы перед нами появился блок из 2-х строк:
  #[multilib]
  #Include = /etc/pacman.d/mirrorlist
И раскомментируем обе строки, убрав перед каждой знак #, приведя этот блок к виду:
  [multilib]
  Include = /etc/pacman.d/mirrorlist

Теперь сохраняем сделанные нами изменения в файле, выполнив поочерёдно на клавиатуре следующие комбинации сочетаний клавиш:
Ctrl+O (латынская буква О)
Enter
и выходим из редактора nano:
Ctrl+X

Очищаем консоль командой:
Ctrl+L

И обновляем сведения о репозиториях командой:
pacman -Sy

А теперь Устанавливаем базовую систему и некоторый набор обязательных программ командой:
pacstrap -i /mnt base base-devel bash-completion linux linux-firmware linux-headers linux-lts linux-lts-headers nano sudo vim

Это займёт какое-то время, пока скачаются и установятся все пакеты (у всех по разному. Зависит от скорости Интернета и параметров вашего компьютера).
Просто дождитесь окончания Установки, пока не появится строка-приглашение к вводу, как на скрине, что означает, что Установка прошла успешно:

Снова очищаем экран командой:
Ctrl+L

Следующим этапом Установки будет генерация|создание файла fstab в /mnt/etc (полный путь /mnt/etc/fstab) и делаем мы это командой:
genfstab -U -p /mnt >> /mnt/etc/fstab



После успешной генерации файла fstab переходим к Настройке системы с помощью chroot — операция изменения корневого каталога в Unix-подобных операционных системах, выполнив команду входа:
arch-chroot /mnt /bin/bash

Настраиваем временную зону командой (здесь временная зона Москвы, но вы можете прописать свою):
(не забывайте пользоваться клавишей Tab | , что существенно облегчит для вас ввод и прописку команд и названий пакетов автоподставкой из названий|имён, т.к. при установке базовой системы мы установили, отвечающий за это пакет bash-completion! Написав первые буквы команды или названия пакета и нажав на Tab | , как правило просиходит автоподставка команды или названия пакета)
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Задаём текущее время на основании выбранной временной зоны командой:
hwclock --systohc --utc

Можно проверить текущие время и дату командой:
date

Задаём имя хоста командой созданием файла hostname в /etc (полный путь /etc/hostname):
(где test - это имя хоста, но у вас видимо будет другое, ваше)
echo test > /etc/hostname

Записываем в файл hosts в /etc (полный путь /etc/hosts) сведения о локальном хосте и имя хоста:
(где test - это имя хоста, но у вас видимо будет другое, ваше)
echo -e '\n127.0.0.1    localhost\n::1          localhost\n127.0.1.1    test.localdomain    test' >> /etc/hosts

Можно проверить, как всё записалось командой:
cat /etc/hosts

Теперь настроим файл локали locale.gen (выбор применяемых языков для системы по умолчанию) в /etc (полный путь /etc/locale.gen) и снова воспользуемся редактором nano, выполнив команду:
nano /etc/locale.gen

В результате чего открывается файл:

Наша задача раскомментировать нужные нам локали (здесь я выбираю русскую и английскую США. Вы же можете выбрать любую другую), тем самым активировав их и для этого воспользуемся горячими клавишами управления редактором nano, а именно Поиском по содержимому файла:
Ctrl+W

В результате откроется строка ввода Поиска, куда вписываем:
en_US.UTF-8

Жмём на Enter и Поиск нас перемещает к нужной строке:

Раскомментируем строку, убрав знак # перед ней, приведя строку к такому виду:

Снова, воспользовавшись Поиском по содержимому файла, жмём на:
Ctrl+W
и в строке ввода Поиска вписываем:
ru_RU.UTF-8

Жмём на Enter и Поиск снова перемещает нас к нужной строке:

И также раскомментируем строку, убрав знак # перед ней, приведя строку к такому виду:

Сохраняем сделанные нами изменения в файле, выполнив поочерёдно на клавиатуре следующие комбинации сочетаний клавиш:
Ctrl+O (латынская буква О)
Enter
и выходим из редактора nano:
Ctrl+X

Очищаем консоль командой:
Ctrl+L

И генерируем локали командой:
locale-gen
и, если мы сделли всё правильно, мы видим такой вывод об успешной гереации локалей:

Далее создаём файл locale.conf в /etc (полный путь /etc/locale.conf) с настройкой предпочтительного языка системы (здесь будет русский) командой:
echo LANG=ru_RU.UTF-8 > /etc/locale.conf

Также создаём ещё один конфигурациооный файл vconsole.conf в /etc (полный путь /etc/vconsole.conf) с дополнительными языковыми настройками командой:
echo -e 'KEYMAP=ru\nFONT=cyr-sun16' | tee -a /etc/vconsole.conf > /dev/null



Теперь давайте создадим пароль для root и сделаем мы это командой:
passwd

Вывод нам предлагает ввести новый пароль:
(New password:)

Вводим его, жмём на Enter и видим приглашение ввести его ещё раз:

Повторно вводим его, жмём на Enter и видим сообщение, что пароль успешно создан|обновлён:
(passwd: password updated successfully)

Доустанавливаем некоторые пакеты, в частности обязательные для установки системы, такие, как системный загрузчик grub, управление сетями Network Manager, X-сервер и др. сопутствующие пакеты:
- если у вас на борту видео nVidia и камень Intel:
pacman -S dosfstools efibootmgr git grub intel-ucode mtools networkmanager ntfs-3g nvidia nvidia-settings nvidia-utils opencl-nvidia os-prober xorg xorg-server xorg-server-devel xorg-xinit

- если у вас на борту AMD:
pacman -S dosfstools efibootmgr git grub lib32-mesa-vdpau mesa mesa-vdpau mtools networkmanager ntfs-3g os-prober xorg xorg-server xorg-server-devel xorg-xinit

Установка займёт какое-то время, поэтому ждём окончания Установки, пока не появится строка-приглашение к вводу, после чего очищаем экран командой:
Ctrl+L



Теперь делаем для Network Manager автозапуск при старте системы, чтобы в последствии при перезагрузке|загрузке системы он стартовал автоматически и у нас всегда будет конект с Интернетом, командой и если она отрабатывает корректно, мы видим такой вывод:
systemctl enable NetworkManager

Далее нам нужно раскомментировать в файле grub в /etc/default (полный путь /etc/default/grub) строку:
#GRUB_DIABLE_OS_PROBER=false
чтобы работал установленный нами пакет os-prober, отвечающий за обнаружение других установленных на компьютер систем и добавление их в GRUB MENU, чтобы можно было выбрать при старте нужную в данный момент ОСь и для этого октрываем в редакторе nano этот файл командой:
nano /etc/default/grub

Пролистываем содержимое файла на клавиатуре стрелкой Вниз ⬇|▼ в самый низ, чтобы перед нами появилась строка:
#GRUB_DIABLE_OS_PROBER=false

Раскомментируем её, убрав первый знак #, приведя её к виду:
GRUB_DIABLE_OS_PROBER=false

Теперь сохраняем сделанные нами изменения в файле, выполнив поочерёдно на клавиатуре следующие комбинации сочетаний клавиш:
Ctrl+O (латынская буква О)
Enter
и выходим из редактора nano:
Ctrl+X

Очищаем консоль командой:
Ctrl+L

Устанавливаем системный загрузчик GRUB для UEFI командой:
grub-install --target=x86_64-efi --bootloader-id=archlinux --recheck
и, если всё прошло штатно, видим вывод, что системный загрузчик GRUB успешно установлен без каких-либо ошибок:

Создаём|генерируем конфигурационный файл grub.cfg в /boot/grub (полный путь /boot/grub/grub.cfg) командой:
grub-mkconfig -o /boot/grub/grub.cfg
и в результате выполнения этой команды получаем вот такой вывод, поэтапно сообщающий нам о создании загрузочного меню:

Теперь выходим из chroot:
exit

Отмонтируем примонтированные нами разделы в /mnt командой:
umount -R /mnt

И перезагружаем Установленную систему командой:
reboot



После Перезагрузки мы с вами попадаем в GRUB-Меню свежеустановленной нами абсолютно голой, без каких-либо Оконных Менеджеров (ОМ), Сред рабочего стола (СРС) и Дисплейных Менеджреов (ДМ) - Операционной Системы (ОС) Arch Linux, где сразу по умолчанию виделен первый пункт Меню:
*Arch Linux
и чтобы продолжить загрузку системы просто жмём на Enter:

После чего получаем предложение ввести Логин Пользователя хоста, в сессию которого мы хотим подключится:

На данном этапе мы можем войти только в сессию Пользователя root, т.к. другого у нас пока просто нет, а посему нам нужно ещё сделать кое-какие настроки системы и поэтому пишем:
root
и жмём на Enter, в выпавшем предложении ввести Пароль (Password:) пишем созданный нами ранее пароль Суперпользователя и снова жмём на Enter:

Результатом чего будет осуществлён вход в сессию Суперпользователя root:

Далее нам нужо ещё раз (рекомендуется) регенерировать конфигурационный файл grub.cfg в /boot/grub (полный путь /boot/grub/grub.cfg) и поэтому мы делаем это ещё раз командой:
grub-mkconfig -o /boot/grub/grub.cfg
в результате получаем вывод, поэтапно сообщающий нам о Генерации загрузочного меню, но заметьте, уже на русском языке:

Теперь наступил важный момент, а именно, нам нажуно создать SWAP-Файл (не раздел, а именно файл!), а для чего, я думаю, все не раз слышали о SWAP и для чего он нужен.
Расписывать тут цельный Wiki на эту тему не вижу особой нужды, а если кому-то интересно, легко можно наГуглить или наЯндексить по этой теме...
Поэтому просто приступаем к его соазданию.

Как Правило, размер SWAP-Файла утсанавливают равным размеру ОЗУ, а т.к. в данном конкретном случае размер ОЗУ ВМ 2 Гб, то и размер файла будем делать такого же размера.
Пишем команду и жмём на Enter тем самым создавая обычный файл:
fallocate -l 2G /swapfile

Далее даём Права на чтение и запись созданного файла командой:
chmod 600 /swapfile

Теперь Форматируем (создаём) сам SWAP-Файл на основе созданного нами файла командой:
mkswap /swapfile

Чтобы файл заработал подключаем SWAP-Файл командой:
swapon /swapfile

Ну и последний штрих - добавляем SWAP-Файл в файл fstab в /mnt/etc (полный путь /mnt/etc/fstab) командой:
echo '/swapfile none swap sw 0 0' >> /etc/fstab



Далее, т.к. мы будем рассматривать два варианта загрузки выбранных нами в дальнейшем Оконных Менеджеров, Окружений рабочего стола:
- с помощью xinit (X11) без ДМ
- с помощью Дисплейного менеджера (ДМ)
для первого нам, т.к. для него мы будем настраивать автологин без ДМ, к сущесвующим по умолчанию группам окружения, надо добавить ещё одну - autologin, что мы и делаем командой:
(для второго - ДМ создавать эту группу не надо)
groupadd -r autologin

И теперь создаём нового своего Пользователя и окружение для него командой:
(здесь будет создан Пользователь test. Вы же создаёте своего)
useradd -m -U -G audio,autologin,floppy,optical,scanner,storage,video,wheel -s /bin/bash test

Если вы будете использовать ДМ, то эта команда будет такой:
useradd -m -U -G audio,floppy,optical,scanner,storage,video,wheel -s /bin/bash test


Теперь создаём Пароль для Пользователя test этой командой, жмём на Enter, вводим придуманный Пароль и ещё раз жмём на Enter:
passwd test

На предложение ещё раз повторить ввод пароля, вводим его, жмём на Enter и получаем вывод, что Пароль успешно обновлён|создан:

После создания Пользователя, для комфортной его работы в дальнейшем и работы всей системы, нам нужно наделить его правами Суперпользователя, отредактировав файл sudoers в /etc/ (полный путь /etc/sudoers) и делаем мы это командой:
EDITOR=nano visudo

Открывается этот файл в редакторе nano:

В нём находим строку:
root ALL=(ALL:ALL) ALL
Устанавливаем курсор в её конец и жмём на Enter, чтобы перевести каретку на новую строку:

И вписываем следующий текст:
(где вместо test впишите имя вашего Пользователя)
test ALL=(ALL:ALL) ALL

А следующую строку:
# %wheel ALL=(ALL:ALL) ALL
расскомментируем (убираем знак #), приведя её к виду:
%wheel ALL=(ALL:ALL) ALL
чтобы в результате файл принял такой вид:

Сохраняем сделанные нами изменения в файле, выполнив поочерёдно на клавиатуре следующие комбинации сочетаний клавиш:
Ctrl+O (латынская буква О)
Enter
и выходим из редактора nano:
Ctrl+X

Очищаем консоль командой:
Ctrl+L


Если в дальнейшем вы планируете пользоваться например Оконным Менеджером (ОМ) Openbox, то надо сразу позаботится о способе переключения раскладки клавиатуры.
Для этого нам надо создать конфигурационный файл 01-keyboard-layout.conf в /etc/X11/xorg.conf.d/ (полный путь /etc/X11/xorg.conf.d/01-keyboard-layout.conf) такого вида:
(если вы собираетесь пользовать например GNOME, или KDE Plasma, или XFCE, или др. ОМ, СРС, то способ переключения раскладки можно будет настроить непосредственно уже в их рабочих средах, хотя и этот способ будет работать после их установки)
Section "InputClass"
        Identifier "keyboard-layout"
        Driver "evdev"
        MatchIsKeyboard "yes"
        Option "XkbLayout" "us, ru"
        Option "XkbVariant" ","
        Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
EndSection
в котором мы прописываем способ переключения раскладки комбинацией сочетания клавиш:
Ctrl+Shift
плюс заодно работу индикатора раскладки - лампочку scroll на клавиатурах и делаем мы всё это командой:
echo -e 'Section "InputClass"\n        Identifier "keyboard-layout"\n        Driver "evdev"\n        MatchIsKeyboard "yes"\n        Option "XkbLayout" "us, ru"\n        Option "XkbVariant" ","\n        Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"\nEndSection' | tee /etc/X11/xorg.conf.d/01-keyboard-layout.conf > /dev/null

Ну и можно проверить, всё ли правильно записалось в файл командой:
cat /etc/X11/xorg.conf.d/01-keyboard-layout.conf



Теперь, когда все приготовления в принципе сделаны, можно выходить из сессии root командой:
exit

После чего снова видим приглашение ввести имя|логин Пользователя в сессию которого мы собираемся войти:
А войти нам надо в сессию созданного нами Пользователя, поэтому мы вводим его имя|логин, жмём на Enter, вводим Пароль Пользователя и снова жмём на Enter, после чего происходит вход в сессию Пользователя о чём и говорит строка приглашение к вводу:
(здесь Пользователь test. У вас будет имя|логин созданного вами Пользователя)


В принципе последним действием мы с вами успешно завершили Установку и первичную настройку голой ОС Arch Linux и теперь вы можете приступать к установке любого, любимого вами ДМ|ОМ|СРС.

После входа в сессию Пользователя первое, что необходимо сделать для дальнейшего успешного входа в установленный в будущем вами ОМ|СРС, если вы собираетесь осуществлять вход по первому способу:
- с помощью xinit (X11) без ДМ
скопировать файл .xinitrc из /etc/X11/xinit/ (полный путь /etc/X11/xinit/xinitrc) в Домашний каталог командой:
(шелл-скрипт передаваемый xinit посредством команды startx)
cp /etc/X11/xinit/xinitrc .xinitrc

Без этого файла Иксы просто не запустятся...

Содержимое файла можно посмотреть командой:
cat .xinitrc

А выглядит файл так:
#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then







    xrdb -merge $sysresources

fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then







    xrdb -merge "$userresources"

fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

# start some nice programs

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] & &  . "$f"
 done
 unset f
fi

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

Теперь нам обязательно надо закомментировать последнюю строку, ибо она будет запускать терминал Xterm, а нам этого не нужно и делаем мы это командой:
sed -i '/exec xterm/s/^/#\ /' .xinitrc

Проверяем успешно ли закомментировалась последняя строка командой:
cat .xinitrc
и видим вывод, что строка успешно закомментирована:
#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then







    xrdb -merge $sysresources

fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then







    xrdb -merge "$userresources"

fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

# start some nice programs

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] & &  . "$f"
 done
 unset f
fi

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
# exec xterm -geometry 80x66+0+0 -name login
И теперь добавляем в конец файла следующий блок, модифицируя который в последствии, а именно комментируя или раскомментируя ту или иную строку запуска того или иного ОМ|СРС, мы всегда можем активировать запуск нужного:
# Window Manager of your choice
# exec gnome-session
# exec startkde
# exec startplasma-x11
# exec startxfce4
# exec awesome
# exec openbox-session

командой:
(Хочу сразу предупредить!!!, что данная команда добавляет блок в конец файла и сделать это можно только один первый раз! Т.е. вы ниже выбираете тот вариант ОМ|СРС, который вы собираетесь потом устанавливать. В последсвии, если вы захотите исользовать другой ОМ|СРС, вам нужно будет редактировать этот файл вручную, любым редактром, например nano)

- уже раскомментировано для GNOME
echo -e '\n# Window Manager of your choice\nexec gnome-session\n# exec startkde\n# exec startplasma-x11\n# exec startxfce4\n# exec awesome\n# exec openbox-session' >> .xinitrc

- уже раскомментировано для KDE
echo -e '\n# Window Manager of your choice\n# exec gnome-session\nexec startkde\n# exec startplasma-x11\n# exec startxfce4\n# exec awesome\n# exec openbox-session' >> .xinitrc

- уже раскомментировано для KDE Plasma
echo -e '\n# Window Manager of your choice\n# exec gnome-session\n# exec startkde\nexec startplasma-x11\n# exec startxfce4\n# exec awesome\n# exec openbox-session' >> .xinitrc

- уже раскомментировано для XFCE4
echo -e '\n# Window Manager of your choice\n# exec gnome-session\n# exec startkde\n# exec startplasma-x11\nexec startxfce4\n# exec awesome\n# exec openbox-session' >> .xinitrc

- уже раскомментировано для Awesome
echo -e '\n# Window Manager of your choice\n# exec gnome-session\n# exec startkde\n# exec startplasma-x11\n# exec startxfce4\nexec awesome\n# exec openbox-session' >> .xinitrc

- уже раскомментировано для Openbox
echo -e '\n# Window Manager of your choice\n# exec gnome-session\n# exec startkde\n# exec startplasma-x11\n# exec startxfce4\n# exec awesome\nexec openbox-session' >> .xinitrc


И если мы проверим содержимое файла, например, если мы добавляли этот блок с раскомментированной строкой запуска KDE Plasma командой:
cat .xinitrc

То увидим вывод с нужной раскомментированной строкой:
#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then







    xrdb -merge $sysresources

fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then







    xrdb -merge "$userresources"

fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

# start some nice programs

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] & &  . "$f"
 done
 unset f
fi

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
# exec xterm -geometry 80x66+0+0 -name login
# Window Manager of your choice
# exec gnome-session
# exec startkde
exec startplasma-x11
# exec startxfce4
# exec awesome
# exec openbox-session

Ну и, чтобы наглядно посмотреть Arch Linux с каким-либо из выбранных вами ДМ|ОМ|СРС, для примера мы с вами установим например СРС KDE Plasma (вы же можете установить то, что вам более по душе).

Но сначала давайте выполним обязательное действие по обновлению системы и для этого используем следующую команду:
sudo pacman -Syu

А после обновления уже устанавливаем СРС KDE Plasma введя команду и нажав на Enter:
sudo pacman -S kde-applications plasma

На предложение ввести пароль Пользователя, вводим его и жмём на Enter:

После чего запускается процесс Выбора зеркал хранилищь файлов и на каждое предложение Выбрать вариант и в конце вопрос Приступить к установке?, ничего не выдумывая, просто жмём каждый раз на Enter:

После чего начинается Установка KDE Plasma и после небольшого ожидания успешно завершается:


После завершения Установки очищаем экран командой:
Ctrl+L

И пробуем проверить запуск|старт установленной нами KDE Plasma командой:
startx
и с чувством удовлетворения видим, что KDE Plasma успешно запустилась|загрузилась:
Обращаем внимание на нижний правый угол следующих 2-х скринов, где отображена текущая раскладка клавиатуры, а именно:
- на 1-м (первом) us
- на 2-м (втором) ru
что значит, что созданный ранее кофиг переключения раскладки отлично работает!

Проверив запуск|старт KDE Plasma и убедившись, что она успешно стартует, выходим из её сессии, выполнив следующие действия, чтобы произошёл возврат в консольный режим:

Очищаем консоль командой:
Ctrl+L

И далее доделываем автоматический запуск Иксов в нужной виртуальной консоли после залогинивания нашего Пользователя и для этого нам понадобится файл .bash_profile в Домашнем каталоге.

По умолчанию он имеет такой вид:
#
# ~/.bash_profile
#
  
[[ -f ~/.bashrc ]] && . ~/.bashrc

Добавляем в конец файла строку вида:
[[ -z $DISPLAY && $XDG_VTNR -eq NomerVirtConsole ]] && exec startx
где переменную NomerVirtConsole меняем на номер нужной виртуальной консоли (обычно это 1 или 3. Здесь мы впишем 1)
командой:
echo -e '\n[[ -z $DISPLAY&& $XDG_VTNR -eq 1 ]] && exec startx' >> .bash_profile

Проверяем правильность сделанных нами изменений в файле командой:
cat .bash_profile
и видим в выводе, что строка успешно добавлена:
#
# ~/.bash_profile
#
  
[[ -f ~/.bashrc ]] && . ~/.bashrc
[[ -z $DISPLAY&& $XDG_VTNR -eq 1 ]] && exec startx

И последняя "вишенка на торте"...
Последний шаг, заключающийся в том, чтобы посредством Systemd сделать автологин нужного Пользователя в нужную виртуальную консоль, а дальше всё будет по цепочке тех шагов, которые описаны выше и для этого нам требуется создать нужный Unit для Systemd и для этого мы воспользуемся следующей командой:
sudo systemctl edit --force --full getty@tty1
или
sudo systemctl edit --force --full getty@tty1.service
в результате выполнения которой октроется файл-шаблон Юнита в редакторе nano, который нам надо немного отредактировать:

Далее, стрелками Вверх ⬆|▲ / Вниз ⬇|▼, Влево ⟵|◄ / Вправо ⟶|► переводим каретку|курсор в конец строки, содержающую:
# the entered username.
И переводим каретку|курсор нажатием на клавишу Enter на новую строку:
И здесь с новой строки вписываем|вводим следующее значение:
ExecStart=
а следующую за ней строку:
ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear - $TERM
изменяем до такого вида:
ExecStart=-/sbin/agetty --autologin test --noclear - $TERM
(тут можно использовать клавишу Backspace . Она стирает текст, т.е. можно просто стереть не всю строку, а только ту часть текста, которая подлежит замене и вместо неё вписать|ввести нужный текст: вместо -o '-p -- \\u' вписать|ввести --autologin test, где в вашем случае вместо test будет ваше имя Пользователя)

Сохраняем сделанные нами изменения в файле, выполнив поочерёдно на клавиатуре следующие комбинации сочетаний клавиш:
Ctrl+O (латынская буква О)
Enter
и выходим из редактора nano:
Ctrl+X

И командой:
reboot
перезагружаем нашу систему и...

Профит!!!

Сразу же происходит автологин нашей Arch Linux в СРС KDE Plasma, чего мы с вами и добивались!

И таким способом с помощью xinit можно настроить старт и автологин любого ОМ или СРС.


А что касается второго способа, с помощью ДМ, то тут всё намного проще, достатчоно установить сам ДМ, например SDDM, и этого будет достаточно.
Установить его можно командой:
sudo pacman -S sddm

И для KDE Plasma ещё рекомендуется установить пакет sddm-kcm, который имеет графический интерфейс для конфигурации SDDM в Параметрах СРС KDE Plasma командой:
sudo pacman -S sddm-kcm

После установки пакетов необходимо запустить демона сервиса SDDM и делаем это поочерёдно следующими командами:
sudo systemctl daemon-reload

sudo systemctl enable sddm.sevice

sudo systemctl start sddm.servise

После чего происходит первый старт ДМ SDDM:


Каждый раз при старте системы SDDM будет появлятся на старте и всё, что вам нужно будет сделать, это выбрать Пользователя (если у вас их будет несколько. Если всего один, то его имя будет отображаться по умолчанию), ввести Пароль и осуществить вход в сессию вашего ОМ или СРС, нажав на Enter:


Также есть возможность настроить автологин данного ДМ отредактировав его конфигурационный файл autologin.conf в /etc/sddm.conf.d/ (полный путь /etc/sddm.conf.d/autologin.conf), приведя его к такому виду:
(где вместо test вписываете логин|имя своего Пользователя)
[Autologin]
User=test
Session=plasma.desktop
Или в самих ОМ или СРС в Настройках.

Ну и давайте я вам покажу на примере KDE Plasma, как это делать.

Входите в неё и жмёте на кнопку Параметры системы в нижнем левом углу:
В открывшемся окне Параметров системы, в левой колонке жмёте на Запуск и завершение:
В окне Запуск и завершение в левой колонке выделяете самый верхний пункт Вход в систему (SDDM) и жмёте на кнопку Поведение...:
Откроется раздел Поведение:
Где вешаем галочку на пункт Автоматически входить в систему и в сразу же открывшемся дополнительном окне жмёте на кнопку Открыть параметры Бумажника KDE:
В открывшемся дополнительном окне Управление бумажниками жмёте на кнопку Сменить пароль...:
И в следующем дополнительном окне Служба бумажника KDE ничего не вписываете, а просто жмёте на кнопку ОК:
И в выпавшем предупредительном окне жмёте на кнопку Да:
Закрываете окно Управление бумажниками, нажав в его верхней панели управления на крестик Х:
В окне Поведение, в нижнем правом углу жмёте на кнопку Применить:
И в выпавшем дополнительном окне Требуется аутентификация - Сохранение параметров диспетчера входа в систему SDDM в поле Пароль: вводите ваш пароль Пользователя и жмёте на кнопку ОК:

А дальше закрываете окно Параметры системы и теперь, при перезагрузке или старте системы у вас будет всегда автологин (автоматический вход).

На этом в принципе и всё...

А дальше?

А дальше огромное колличество возможностей оттюнинговать вашу Arch Linux на ваши вкус и цвет, как говорится!

Для наглядного примера, так выглядит моя Arch Linux с ОМ Openbox:


Дерзайте и всё у вас получиться!

Статью ещё буду дополнять, т.к. надо ещё показать вам, как примонтировать при Установке системы другие носители, если у вас в компьютере есть таковые и на них установлены другие операционные системы.
Просто, скрининг и последующая редакция скринов и написание текста забирает уйму времени!
Поэтому прошу отнестись к перерывам в публикациях статей с пониманием.

Всем Приятного Пользования!!!

P.S. Если у вас появились вопросы или мнения по данной статье, обсудить их можно на нашем форуме:

5 комментариев :

  1. EFI раздел 300 мб, зачем такой огромный? там и сотки за глаза, занято будет в пределах десятка мб

    ОтветитьУдалить
    Ответы
    1. Вы не совсем правы.
      Это для Windows достаточно, а для Linux-систем рекомендуется 300, но некоторые делают его и по 500.
      Если вы будете доустанавливать системы, например вы планируете 3 на компе или в процессе пользования будете менять ОСи, то каждый раз в этот раздел пишется папка для каждой конкретной ОСи и бывают случаи, когда этот раздел заполняется полностью.

      У меня сейчас при чистой установке 3-х ОСей уже 56 Мб занято!

      Если я решу вместо моих нынешних ОСей поставить что-либо ещё, то этот размер увеличится.

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

      Удалить
    2. Допускаю такой вариант с 100, если вы для каждой ОСи на его носителе создаёте свой отдельный такой раздел, т.е. у вас 3 носителя и на каждом своя ОСь и на каждом свой раздел EFI, тогда да, такого размера достаточно.

      У меня например, 3 ОСи, каждая на своём носителе, а раздел EFI один на sda, хотя можно было создать их и на всех носителях...

      Удалить
  2. <<< EFI раздел 300 мб, зачем такой огромный? >>>
    Так-то да, 300 - 500 мб за глаза хватит, пока пользователь не решит перейти на systemd-boot, да ещё с несколькими дистрибутивами. Там и Гига может не хватить.

    ОтветитьУдалить
    Ответы
    1. Прикол в том, что в Ubuntu 23.04 новый установщик создаёт этот раздел по умолчанию размером 1 Гб!

      Его можно изменить сразу же, уменьшив или увеличив, но сам факт.

      Удалить

Если у Вас появились вопросы или мнения, вы можете задать или оставить их здесь.
Спам и флуд будут жёстко караться вечной блокировкой их оставляющих!



If You have any questions or opinions about, just leave'em here.
Spamers & flooders will be blocked forever!!!