k>
Published on

Установка Arch Linux

Authors
  • avatar
    Name
    Бизюков Владимир
    Twitter
Оглавление

Предисловие

Привет! В Arch Linux нет GUI для установки. Так случилось, потому что у Arch есть принципы, два из которых - простота и направленность на пользователя.

Простота в понимании сообщества дистрибутива определена как "отсутствие ненужных дополнений или модификаций". Пользователи, на которых направлен дистрибутив - опытные и/или любознательные.

Советую воспользоваться руководством по установке c ArchWiki и не следовать инструкции слепо. Хорошо, если вы будите понимать каждый этап установки.

Позже напишу статью про преимущества btrfs и как ими воспользоваться.


Подготовка диска

Для редактирования разделов используем fdisk.

fdisk -l покажет список устройств. fdisk /dev/sdX запустит диалог для ввода команд.

Я назвал диск /dev/sdX чтобы избежать путаницы. Название вашего диска будет отличаться.

Ключи диалогового окна fdisk:

КлючФункция
mпокажет справку
gсоздаст новую GPT
dудалит раздел
nсоздаст раздел
tсменит тип раздела
wзапишет изменения
qзакроет диалог
  • Создадим разделы для efi и btrfs

РазделРазмерТипКод типа в fdisk
/dev/sdX1200 MEFI System1
/dev/sdX2100 GLinux filesystem20

  • Создадим FAT32 на первом разделе

$ mkfs.fat -F32 /dev/sdX1

  • Создадим btrfs на втором разделе

mkfs.btrfs -L MAIN /dev/sdX2

Ключ -L установит метку диска. Мы ставим её, чтобы потом иметь доступ к btrfs из Windows.


  • Смонтируем раздел btrfs в /mnt

mount /dev/sdX2 /mnt

/mnt - каталог для ручного монтирования файловых систем


  • Создадим подразделы на смонтированном btrfs разделе

btrfs su cr /mnt/@
btrfs su cr /mnt/@home

btrfs su cr - псевдоним для btrfs subvolume create. Название подразделов начинаются с @ чтобы не путать их с другими каталогами.


  • Размонтируем btrfs раздел

umount -R /mnt

  • Смонтируем подразделы btrfs

mount -o subvol=/@,noatime,ssd_spread,compress=zstd:1,discard=async,ssd,commit=600  /dev/sdX2 /mnt
mkdir /mnt/{boot,home}
mount -o subvol=/@home,noatime,ssd_spread,compress=zstd:1,discard=async,ssd,commit=600 /dev/sdX2 /mnt/home
  • Смонтируем efi раздел

mkdir /mnt/boot/efi
mount /dev/sdX1 /mnt/boot/efi

/mnt - системный каталог и в него мы монтируем корневой раздел нашей новой файловой системы. Но другие каталоги нужно создать в /mnt перед тем, как можно будет их смонтировать.

Описание используемых параметров монтирования подразделов btrfs:

ПараметрОписание
subvolимя подраздела btrfs
noatimeотключает запись времени доступа к файлу
ssd_spreadзапись в пустые области диска, ускорит работу ssd
compressрежим сжатия zstd:1
discardбудет освобождать неиспользуемые блоки с ssd, async группирует блоки для снижения нагрузки
ssdоптимизации для ssd
commitзадаст интервал записи данных в файловую систему в секундах

Установка системы


  • Установим систему в корневой каталог

pacstrap /mnt base base-devel linux-zen linux-zen-headers linux-firmware networkmanager intel-ucode iucode-tool vim git curl wget

pacstrap скрипт для установки пакетов в новый корневой каталог

Список установленных пакетов:

ПакетОписание
baseгруппа пакетов для базовой установки Arch Linux
base-develгруппа пакетов с инструментами для сборки
linux-zenядро linux-zen
linux-zen-headersзаголовки ядра linux-zen
linux-firmwareдрайвера устройств
networkmanagerнабор инструментов для настройки сети
intel-ucodeобновление микрокода процессора, если у в AMD используйте amd-ucode
iucode-toolуправление обновлениями микрокода
vimкамсольный текстовые редактор
gitинтерфейс для AUR
curlинструмент для передачи данных с помощью URL-адресов
wgetинструмент для загрузки файлов по http и ftp

  • Запишем информацию созданных нами файловых системах в /etc/fstab

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

Ключ -U создаст fstab основанный на UUID


Базовая настройка


  • Сменим корневой каталог на каталог с новой системой

arch-chroot /mnt

Сейчас система установлена на диск. Если установка привела к ошибке, то можно будет зайти в установленную систему через arch-root после перезагрузки. Не забудьте смонтировать файловые системы. При монтировании btrfs можно будет указать только параметр subvol.


  • Добавим имя новой системы и свяжем его с localhost

echo metropolis > /etc/hostname
echo -e "127.0.0.1 localhost\n::0 localhost\n127.0.0.1 metropolis" >> /etc/hosts

  • Включим службу NetworkManager

systemctl enable NetworkManager
systemctl mask NetworkManager-wait-online.service

systemctl - основная команда для управления systemd.
mask - делает невозможным запуск службы.
NetworkManager-wait-online.service - служба сетевого запуска. Ее отключение ускорит загрузку.


  • Настроим время

ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
hwclock --systohc

ключ --systohc создаст файл /etc/adjtime с ин


  • Установим локаль

sed -i "s/#en_US.UTF-8/en_US.UTF-8/g" /etc/locale.gen
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf

  • Установим пароль root

passwd

  • Создадим пользователя

useradd -m sonic

ключ -m создаст пользовательский каталог /home/sonic

passwd sonic
echo "sonic ALL=(ALL:ALL) ALL" >> /etc/sudoers
visudo -c

/etc/sudoers - файл настроек sudo. Руководство по sudo говорит, что его следует всегда редактировать с помощью команды visudo. Давайте немного побудем бунтарями и просто выполним проверку /etc/sudoers с помощью visudo -с.


Настройка загрузчика


  • Установим пакеты загрузчика

pacman -S grub efibootmgr

Список установленных пакетов:

ПакетОписание
grubзагрузчик ядра
efibootmgrредактор загрузочных записей efi

  • Установим grub в boot/efi

grub-install --efi-directory=/boot/efi

  • Запишем файл конфигурации grub

grub-mkconfig -o /boot/grub/grub.cfg

  • Размонтируем разделы и перезагрузимся в новую систему

exit
umount -R /mnt
reboot

После перезагрузки мы попадем в нашу свежую систему.

На ArchWiki есть статья с общими рекомендациями после установки системы. Если прочитать её, то можно понять, что еще нам предстоит настроить.

В следующей статье мы установим графический интерфейс и подготовлю систему к работе.

Надеюсь, эта статья была полезна вам! А если у вас возникла проблема, вы можете рассказать о ней в комментариях. Я обязательно отвечу.