Установка Arch

Далее идёт моя шпаргалка, которую я написал для себя, несмотря на то, что на ArchWiki расписано всё значительно более детально. Вам, скорее всего, лучше обратиться туда.

Перво-наперво надо убедиться, что на жёстких дисках, куда будем ставить Arch Linux, нет уникальной информации. Короче говоря, надо сделать бэкап всего ценного.

На официальном сайте ищем зеркало поближе и скачиваем iso-файл. Обязательно проявляем бдительность и проверяем файл с помощью контрольных сумм.

$ sha256sum archlinux-2024.05.01-x86_64.iso 
1b4a04ef8a7350852a13070ee498442b087a607a18840b4dd7d99867eb5f6a4c
    archlinux-2024.05.01-x86_64.iso

Полученную контрольную сумму сверяем с той, что указана на официальном сайте. Если не сходится, файл придётся скачать с другого зеркала.

Далее записываем этот файл на флешку (что есть на флешке, будет удалено):

$ dd if=archlinux-2024.05.01-x86_64.iso of=/dev/sde
$ sync

(Подразумевается, что флешка это устройство /dev/sde.)

Вставляем флешку в тот компьютер, на который устанавливаем Arch. Перезагружаемся и запускаемся с флешки. В меню выбираем установку. Ждём, когда загорится приглашение командной строки.

Выбираем русскую раскладку и шрифт для неё. После этих команд можно будет переключаться на кириллицу и обратно с помощью Ctrl+Shift.

loadkeys ru
setfont ter-c32b

Проверяем, работает ли интернет и верно ли задано время:

ping karmanov.su
timedatectl

Если интернет надо получить через wi-fi, в этом поможет утилита iwctl. В интерактивном режиме station wlan0 scan и потом station wlan0 get-networks выведет список сетей. station wlan0 connect SSID подключит wi-fi.

Самый ответственный момент — разметка диска. Во-первых, надо случайно не удалить важные файлы. Во-вторых, разметить так, чтобы потом не пришлось всё переделывать, когда обнаружится, например, что для корневого раздела мы выделили слишком мало места.

Для начала надо выяснить, как система назвала наши устройства. С помощью команды fdisk -l мы, например, выясним, что один наш винчестер распознан как /dev/sda, а другой как /dev/sdb. Очень вероятно, что винчестер(ы) уже размечены, и нам эта разметка не нравится. Поэтому придётся сначала удалить существующие разделы, потом создать новые.

Допустим, мы желаем полностью изменить таблицу разделов на /dev/sda. Запускаем fdisk /dev/sda. В интерактивном режиме нажимаем o для создания новой таблицы (MBR). Нажимаем n для создания новых разделов, отвечаем на вопросы. Когда спросят размер раздела, можно ввести, например, +25G для раздела, который станет у нас корневым. Сколько-то можно выделить для swap, остальное — для /home. Если UEFI, надо ещё раздел для /boot.

Чтобы пометить раздел как загрузочный, вводим a, а потом указываем номер раздела (у меня 1).

Команда w приводит к записи всех изменений на диск, а потом к выходу из программы fdisk. С помощью fdisk -l /dev/sda любуемся получившейся красотой.

На созданных разделах ещё нет файловых систем. Создадим их. Не будем оригинальничать и используем Ext4.

mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda3

Мы создали раздел подчкачки (swap), поэтому надо его инициализировать.

mkswap /dev/sda2

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

mount /dev/sda1 /mnt
mount --mkdir /dev/sda3 /mnt/home

В нашей будущей системе это будут разделы / и /home. Также активируем раздел подкачки.

swapon /dev/sda2

Устанавливаем в /mnt базовую систему:

pacstrap -K /mnt base linux linux-firmware 

Генерируем fstab:

genfstab -U /mnt >> /mnt/etc/fstab

Делаем следующую команду:

arch-chroot /mnt

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

pacman -S neovim mc

Но у нас осталась ещё кое-какая работа. Надо настроить часовой пояс и время.

ln -sf /usr/share/zoneinfo/Asia/Krasnoyarsk /etc/localtime
hwclock --systohc

В файле /etc/locale.gen надо раскомментировать нужные локали:

en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8

После чего локали надо сгенерировать:

locale-gen

Создадим файл /etc/locale.conf и напишем в нём строчку:

LANG=ru_RU.UTF-8

Также, чтобы зафиксировать раскладку и шрифт, создадим файл /etc/vconsole.conf со строками:

KEYMAP=ru
FONT=ter-c32b

Такого шрифта ещё нет в системе. Но можем поставить:

pacman -S terminus-font

Создадим файл /etc/hostname — с единственным словом, которое будет обозначать имя хоста.

Настраиваем сеть. Для этого устанавливаем NetworkManager.

С помощью passwd устанавливаем пароль суперпользователя.

Устанавливаем загрузчик:

pacman -S grub
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

У нас процессор AMD, для него такой микрокод нужен:

pacman -S amd-ucode

Выходим из окружения chroot, набрав exit. Размонтируем все разделы, чтобы убедиться, что они не заняты, и перезагружаемся:

umount -R /mnt
reboot

После перезагрузки (у меня) сеть не работает, потому что NetworkManager ещё не включён. Включаем:

systemctl start NetworkManager.service

После этого сеть должна появиться. Но надо ещё настроить wi-fi, если ставим на ноутбук. Проверяем, загрузился ли драйвер сетевой карты и создан ли интерфейс:

lspci -k
ip link

Обращаем внимание на то, какой “Kernel driver in use”. Включаем интерфейс:

ip link set интерфейс up

Смотрим, загрузился ли модуль ядра:

dmesg | grep модуль

С помощью nmtui, что входит в NetworkManager, подключаемся к своему роутеру.

Надо ещё настроить синхронизацию времени. Устанавливаем ntp. Включаем службу ntpd.service. Запускаем timedatectl set-ntp true. Проверяем результат с помощью команды timedatectl.

Создаём пользователя (вместе с домашним каталогом) и задаём ему пароль:

useradd -m пользователь
passwd пользователь

Ставим xorg-server. Определяем видеокарту и её модель:

lspci -v | grep -A1 -e VGA -e 3D

Ищем подходящий видеодрайвер:

pacman -Ss xf86-video

Ставим подходящий. Устанавливаем xorg-xinit, чтобы появилась команда startx. Ставим любимый оконный менеджер awesome. У пользователя, из которого будем заходить, в домашней папке создаём файл .xinitrc с содержимым:

exec awesome

Пора настроить клавиатуру в иксах. Создаём файл /etc/X11/xorg.conf.d/00-keyboard.conf и дадим ему содержимого:

Section "Input Class"
    Identifier "system-keyboard"
    MatchIsKeyboard "on"
    Option "XkbLayout" "us,ru"
    Option "XkbModel" "asus_laptop"
    Option "XkbOptions" "grp:caps_toggle"
EndSection

Ставим программу terminator или иной эмулятор терминала. Запускаем startx. Запускаем terminator. Проверяем настройки XKB:

setxkbmap -print -verbose 10

В консоли у нас пока ещё стоит дефолтное переключение раскладки по Ctrl+Shift. Изменим это на Capslock. Посмотрим доступные раскладки.

localectl list-keymaps | grep ru | grep UTF

В файле /etc/vconsole.conf параметру KEYMAP зададим значение ruwin_cplk-UTF-8.

Теперь уже можно сказать, что мы настроили базовую систему.

Можем поставить свой любимый язык программирования.

pacman -S erlang 

Чтобы bash помогал автодополнениями, можем поставить bash-completion. Ставим браузер, программу для общения, RSS-агрегатор новостей.

pacman -S firefox firefox-i18n-ru firefox-spell-ru
    telegram-desktop liferea

Надо ещё запустить звук. Ставим alsa-utils. Запускаем alsamixer и убираем unmute, ставим громкость.


© Алексей Карманов, 2024.