Далее идёт моя шпаргалка, которую я написал для себя, несмотря на то, что на 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.