Установка и первоначальная настройка ArchLinux

Установка и первоначальная настройка ArchLinux

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Установка, сборка и первоначальная настройка Arch Linux в качестве десктопа

Вот и добрался я наконец-то до Arch Linux. Система для меня нова, но не думаю, что будет чем-то сильно отличаться от себе подобных. Поскольку нельзя просто так взять и поставить Arch с первого раза, то я подготовил рабочий мануал непосредственно под себя. Сразу хочу предупредить, что любителям EFI придется несладко. Манипуляции с GRUB на EFI вызывали во мне приступы истерического смеха. На сервер с обычным BIOS все установилось с первого раза.

Подготовка образа

Загрузим образ дистрибутива c официального сайта разработчика и запишем его на флешку:

1
sudo dd if=archlinux-2016.01.01-dual.iso of=/dev/disk1

После записи образа необходимо загрузиться с USB-накопителя (настройки в BIOS или EFI).

Установка Arch

В меню загрузки выбираем архитектуру и ждём пока система загрузится.

image

Локализация

После загрузки настроим русский язык для удобства работы.
Выполняется это следующей командой:

1
loadkeys ru

А также изменим консольный шрифт на тот, который поддерживает кириллицу:

1
setfont cyr-sun16

Добавим русскую локаль в систему установки:

В файле /etc/locale.gen раскоментируем строку #ru_RU.UTF-8 UTF-8

1
nano /etc/locale.gen

Обновим текущую локаль системы:

1
locale-gen
1
export LANG=ru_RU.UTF-8

Настройка сети

При установке системы наличие подключения к интернету обязательно.
Служба DHCP уже запущена при загрузке для найденных Ethernet-адаптеров. Для беспроводных сетевых адаптеров запустите wifi-menu. Если необходимо настроить статический IP или использовать другие средства настройки сети, остановите службу DHCP командой systemctl stop dhcpcd.service и используйте netctl.

Создание разделов на жестком диске

Для управления разделами на жестком диске в процессе установки рекомендую использовать программу fdisk. Также настоятельно рекомендую удалить MBR или GPT таблицы командой sgdisk --zap-all /dev/sdX

Создаем разделы на диске:

  • (1) 512Mb под /boot; (dev/sdX1)
  • (2) SWAP под файл подкачки; (dev/sdX2)
  • (3) FREE_SPACE под корень; (dev/sdX3)

Создаем пустую таблицу разделов

1
Command (m for help): o ↵

Создаем 1 раздел (boot)

1
2
3
4
5
Command (m for help): n ↵
Partition type (default p): ↵
Partition number (1-3, default 1): ↵
First sector: ↵
Last sector: +512M ↵

Создаем 2 раздел (swap)

1
2
3
4
5
6
7
8
Command (m for help): n ↵
Partition type (default p): ↵
Partition number (2-3, default 2): ↵
First sector: ↵
Last sector: +16G ↵
Command (m for help): t ↵
Partition number (1,2, default 2): ↵
Hex code (type L to list all codes): 82 ↵

Создаем основной раздел

1
2
3
4
5
Command (m for help): n ↵
Partition type (default p): ↵
Partition number (2,3, default 3): ↵
First sector: ↵
Last sector: ↵

Добавляем флаг загрузки для первого раздела:

1
2
Command (m for help): a ↵
Partition number (3,4, default 1): 1 ↵

Проверяем таблицу разделов ключиком p, и записываем w.

Форматирование разделов

Форматируем /boot раздел в FAT32:
Также мы будем использовать метки для удобства.

1
mkfs.vfat -F32 /dev/sdX1

Для раздела подкачки (swap):

1
mkswap /dev/sdX2 -L swap

Форматируем корень в ext4:

1
mkfs.ext4 /dev/sdX3 -L root

Если решили использовать LVM - этот подраздел для вас, для прочих читаем дальше

  • (1) 512Mb под /boot; (dev/sdX1)
  • (2) FREE_SPACE под корень; (dev/sdX2)

Форматируем /boot раздел в FAT32:

1
mkfs.vfat -F32 /dev/sdX1

Для корневого раздела используем зашифрованный LVM:

1
2
cryptsetup -c aes-xts-plain64 -y --use-random luksFormat /dev/sdX2
cryptsetup luksOpen /dev/sdX2 luks

Создаем разделы:

1
2
3
4
pvcreate /dev/mapper/luks
vgcreate vg0 /dev/mapper/luks
lvcreate --size 16G vg0 --name swap
lvcreate -l +100%FREE vg0 --name root

Задаем формат для созданных разделов:

1
2
mkfs.ext4 /dev/mapper/vg0-root
mkswap /dev/mapper/vg0-swap

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

1
2
3
4
mount /dev/mapper/vg0-root /mnt 
swapon /dev/mapper/vg0-swap
mkdir /mnt/boot
mount /dev/sdX1 /mnt/boot

Монтирование разделов (продолжение)

Смонтируем корневой раздел:

1
mount /dev/sda3 /mnt

Создадим каталог для монтирования boot раздела:

1
mkdir /mnt/boot

Смонтируем загрузочный раздел:

1
mount /dev/sda1 /mnt/boot

Подключим swap

1
swapon /dev/sda2

Выбираем зеркало для pacman

Для более быстрой загрузки пакетов настроим зеркала. Поставим российское зеркало Яндекса выше всех остальных:

1
nano /etc/pacman.d/mirrorlist

И впишем эту строку вверх:

1
Server = http://mirror.yandex.ru/archlinux/$repo/os/$arch

Установка пакетов

Установим базовые пакеты системы.
Дополнительно сюда можем включить необходимые пакеты для установки.

1
pacstrap -i /mnt base base-devel grub zsh vim git

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

Важно: если ведется установка по Wi-Fi, то необходимо установить пакеты netctl, dialog и wpa_supplicant:

1
pacstrap -i /mnt netctl dialog wpa_supplicant

Установка пакета GRUB в систему

1
arch-chroot /mnt pacman -S grub

Если используется EFI, то установим efibootmgr:

1
arch-chroot /mnt pacman -S efibootmgr grub-efi-x86_64

Если устанавливаем 32-х битную систему, то используем пакет grub-efi-i386.

Первичная настройка системы

Сгенерируем fstab, для этого используем следующую команду

1
genfstab -p /mnt >> /mnt/etc/fstab

И добавим в файл запись для временного файлового хранилища tmpfs (Предназначена для монтирования файловой системы, но размещается в ОЗУ вместо физического диска. Подобная конструкция является RAM диском.):

1
tmpfs	/tmp	tmpfs	defaults,noatime,mode=1777 0 0

Перейдём в установленную систему

1
arch-chroot /mnt /bin/bash

Добавим русскую локаль в систему

В файле /etc/locale.gen раскомментируем строку #en_US.UTF-8 UTF-8 и строку #ru_RU.UTF-8 UTF-8

1
nano /etc/locale.gen

Обновим текущую локаль системы

1
locale-gen

Настроим часы

1
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
1
hwclock --systohc --utc

Зададим хостнейм

1
echo MYHOSTNAME > /etc/hostname

Изменим пароль root

1
passwd

Добавим нового пользователя

1
useradd -m -g users -G audio,games,lp,optical,power,scanner,storage,video,wheel -s /bin/bash MYUSERNAME
1
passwd MYUSERNAME

Если планируется использовать zsh, то заменим /bin/bash на /bin/zsh
Если терзают сомнения на этот счет, то почитать подробнее можно на хабре.

Добавим русскую локаль в консоль

В /etc/mkinitcpio.conf, в разделе HOOKS, должен быть прописан хук keymap.
В разделе MODULES нужно прописать свой драйвер видеокарты: i915 для Intel, radeon для AMD, nouveau для Nvidia.

Если производили установку LVM с шифрованием, то также добавим ext4 в MODULES и encrypt и lvm2 в HOOKS до filesystems.

Создадим загрузочный RAM диск

1
mkinitcpio -p linux

Установим загрузчик (для BIOS)

1
grub-install /dev/sda

Если действовали по мануаула с LVM и шифрованием, то необходимо отредактировать строчку GRUB_CMDLINE_LINUX в файле /etc/default/grub:

1
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdX2:luks:allow-discards"
1
grub-mkconfig -o /boot/grub/grub.cfg

Установим загрузчик (для EFI)

1
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub

Обновим grub.cfg

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

Внимание: если при создании grub.cfg были ошибки, то попробуйте добавить GRUB_DISABLE_SUBMENU=y в /etc/default/grub.

В случае если посыпятся ошибки вида “failed to connect to lvmetad arch”, можно сильно не пугаться, работать все будет, но для достижения полного дзена я попробую найти решение позже.

Выйдем из установленной системы:

1
exit

Отмонтируем ранее монтируемые разделы:

1
umount -R /mnt

И перезагрузим систему.

1
reboot

Настройка системы

Входим в систему под root-пользователем и выполняем необходимые действия по настройке, если они не были выполнены ранее.

Изменим хостнейм

1
hostnamectl set-hostname myhostname

Установим время

1
timedatectl set-timezone Europe/Moscow

Выполняем локализацию системы

1
localectl set-keymap ru
1
setfont cyr-sun16
1
localectl set-locale LANG="ru_RU.UTF-8"
1
export LANG=ru_RU.UTF-8

Добавим строку FONT=cyr-sun16 в /etc/vconsole.conf.

Обновим загрузочный RAM диск

1
mkinitcpio -p linux

Обновим grub.cfg (для локализации):

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

Настроим pacman (только для x86_64):

1
nano /etc/pacman.conf

Для работы 32-битных приложений в 64-битной системе необходимо раскомментировать репозиторий multilib:

1
2
[multilib]
Include = /etc/pacman.d/mirrorlist

Отключаем IPv6

Для этого создадим новый файл /etc/sysctl.d/10-ipv6.conf с содержимым:

1
net.ipv6.conf.all.disable_ipv6 = 1

Добавим пользователя (если это не было выполнено ранее) и сразу поместим его в необходимые нам группы:

1
useradd -m -g users -G audio,games,lp,optical,power,scanner,storage,video,wheel -s /bin/bash myusername

Установим ему пароль

1
passwd myusername

Изменим ему информацию GECOS

1
chfn myusername

Настройка сети

Для проводной сети

Добавим службу в автозапуск:

1
systemctl enable dhcpcd

Запустим службу:

1
systemctl start dhcpcd

Для беспроводной сети

1
wifi-menu

Обновим базы данных пакетов:

1
pacman -Syy

Обновим все пакеты:

1
pacman -Su

Поставим и настроим sudo

1
pacman -S sudo

В файле /etc/sudoers раскомментируем строку # %wheel ALL=(ALL) ALL
Теперь мы можем использовать sudo для выполнения команд администратора.
Теперь выйдем из root пользователя с помощью команды exit и авторизуемся под пользователем, которого создали.

Установка графического окружение

Установим Х (иксы)

1
sudo pacman -S xorg-server xorg-xinit xorg-server-utils mesa xterm

(если используется тачпад или тачскрин, то установим xf86-input-synaptics)

Установим драйвер для видеокарты:

Пакеты lib32-* нужно устанавливать только на x86_64 системы.

Intel:

1
sudo pacman -S xf86-video-intel lib32-intel-dri

Nvidia:

1
sudo pacman -S xf86-video-nouveau lib32-nouveau-dri

AMD:

1
sudo pacman -S xf86-video-ati lib32-ati-dri

Если вы устанавливаете систему на виртуальную машину:

1
sudo pacman -S xf86-video-vesa

Xfce + SDDM

Приступим к установке и настройке графического окружения Xfce с менеджером входа SDDM:

1
sudo pacman -S xfce4 xfce4-goodies sddm

Добавим SDDM в демоны

1
sudo systemctl enable sddm.service

Шрифты

Рекомендую установить следующие шрифты:

1
sudo pacman -S ttf-liberation ttf-dejavu opendesktop-fonts ttf-bitstream-vera ttf-arphic-ukai ttf-arphic-uming ttf-hanazono

Теперь можно перезагрузить систему командой

1
sudo systemctl reboot

Если все было выполнено правильно и без ошибок, то получаем готовую рабочую систему Arch Linux с Xfce на борту.

Важно: если у вас не вводятся символы в поле ввода, то попробуйте изменить раскладку с помощью комбинации клавиш: левый shift + правый shift. Чтобы установить английскую раскладку по умолчанию откройте файл /etc/X11/xorg.conf.d/00-keyboard.conf и в строке Option «XkbLayout» «ru,us» поменяйте ru и us местами.
После перезагрузки и первом входе в систему, выберите пункт настроек по умолчанию, затем я советую зайти в Меню приложений -> Настройки -> Внешний вид -> Шрифты и выбрать любимый шрифт, я предпочитаю Helvetica. После этого добавьте на панель элемент раскладки клавиатуры и настройте его.

Установим необходимые пакеты для работы

Pacman — это отличный пакетный менеджер, который намного удобнее apt-get из семейства Debian систем. Начнем с того что он безо всяких aptitude может самостоятельно заниматься поиском, установкой, удалением пакетов, удовлетворением зависимостей, синхронизацией репозиториев и обновлением системы, имея при этом довольно простой и логичны консольный интерфейс. Пример нескольких команд:

pacman -S foo # установить пакет foo
pacman -S --asdeps foo # установить пакет foo как зависимость
pacman -Sy # синхронизировать репозитории
pacman -Su # обновить систему
pacman -Syu # синхронизировать репозитории и обновить систему.
pacman -Syu foo # синхронизировать репозитории, обновить систему и установить пакет foo

Для Archlinux вы можете найти любой софт, который вы можете найти вообще для linux. Если вы не найдете какой-то пакет в официальном репозитории, вы наверняка это сделаете в Arch User Repository. Там находятся пакеты опубликованные и сопровождаемые пользователями Archlinux. Там находятся 53 тысячи пакетов против 37,5 тысяч у Debian.

Пакет, с помощью которого GRUB сможет определять все установленные ОС при генерации конфига:

1
sudo pacman -S os-prober

Браузеры:

1
sudo pacman -S firefox firefox-i18n-ru chromium opera

Мессенджеры:

1
sudo pacman -S pidgin skype

Торрент-клиент:

1
sudo pacman -S transmission-gtk transmission-cli

Графика:

1
sudo pacman -S gimp pinta gpicview djview4

Офис:

1
sudo pacman -S libreoffice libreoffice-ru

Мультимедиа:

1
sudo pacman -S audacity deadbeef smplayer

FTP-клиент:

1
sudo pacman -S filezilla

Разработка:

1
sudo pacman -S geany apache mariadb phpmyadmin php php-apache php-pgsql php-sqlite php-mcrypt php-gd

Система:

1
sudo pacman -S gparted unetbootin

Инструменты:

1
sudo pacman -S p7zip unrar

Игры:

1
sudo pacman -S steam mari0

Мышь в терминале

Иногда приходится работать в терминале, а не его эмуляторе. И с некоторыми программами, например Midnight Commander, там будет удобнее работать с мышью. Чтобы использовать мышь в терминале достаточно установить пакет gpm.

1
sudo pacman -S gpm

Автодополнение

Автодополнение — это очень удобная фича терминала bash. Кнопкой Tab можно существенно облегчить и ускорить ввод команд. Однако такая возможность не предоставляется для таких программ как sudo, pacman и некоторых других. Чтобы исправить эту несправедливость достаточно установить пакет bash-completion.

1
sudo pacman -S bash-completion