Подготовка к установке
Скачиваем образ дистрибутива Arch Linux
Утилиты для записи образа на флеш-накопитель:
- Linux — balenaEtcher
- Windows — Rufus
- Кроссплатформенный Ventoy (рекомендовано)
Руководство на Habr как записать образ на флеш-накопитель с помощью Ventoy
Видео на YouTube по использованию Ventoy
Если вы пользуетесь проводным соединением, то пропускаем настройку беспроводной сети и переходим к "Проверяем работу сети"
Настройка беспроводной сети
Проверяем не заблокирован ли WiFi
rfkill
- Если видим что что заблокирован wlan,
ID TYPE DEVICE SOFT HARD
0 bluetooth hci0 unblocked unblocked
1 wlan phy0 blocked unblocked
- … то выполняем команду
rfkill unblock wifi
- Теперь все OK
ID TYPE DEVICE SOFT HARD
0 bluetooth hci0 unblocked unblocked
1 wlan phy0 unblocked unblocked
Утилита iwctl
для работы с WiFi
iwctl
В самой утилите iwctl
вводим команды:
- Смотрим ваши WiFi сетевые карты
[iwd]# device list
wlan0
- Сканируем доступные сети
[iwd]# station wlan0 scan
- Выводим список доступных сетей
[iwd]# station wlan0 get-networks
- Например получаем такое, видим там свою сеть
Available networks
--------------------------------------------------------------------------------
Network name Security Signal
--------------------------------------------------------------------------------
Ace psk ****
Nazok psk ***
Artem psk ***
- Соединяемся с нашей сетью
[iwd]# station wlan0 connect Ace
- Вводим пароль
Type the network passphrase for Ace psk.
Passphrase: ********
- Выходим из
iwctl
[iwd]# exit
Проверяем работу сети
ping archlinux.org -c3
PING archlinux.org (95.217.163.246) 56(84) bytes of data.
64 bytes from archlinux.org (95.217.163.246): icmp_seq=1 ttl=50 time=98.4 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=2 ttl=50 time=98.3 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=3 ttl=50 time=98.4 ms
--- archlinux.org ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 98.302/98.356/98.413/0.045 ms
- Если видите подобное, двигаемся дальше, в противном случае решаем проблему доступа к Internet
Работа с носителем
Определяем наш диск
- Команда для просмотра SATA/USB дисков
lsblk --scsi
NAME HCTL TYPE VENDOR MODEL REV SERIAL TRAN
sda 0:0:0:0 disk ATA Apacer AS340 240GB V4.7 J28485R004707 sata
sdb 1:0:0:0 disk ATA Samsung SSD 840 EVO 250GB EXT0DB6Q S1DBNSAFB46994Z sata
sdc 6:0:0:0 disk Multi Flash Reader 1.00 058F63666471 usb
sdd 8:0:0:0 disk Generic Flash Disk 8.07 FB2DD809 usb
- Команда для просмотра NVME дисков
lsblk --nvme
NAME TYPE MODEL SERIAL REV TRAN RQ-SIZE MQ
nvme0n1 disk Viper M.2 VPN110 1024GB VPN110EBBB2208190124 42BBT9BB nvme 1023 8
nvme1n1 disk KINGSTON SNV2S1000G 50026B77857A8C32 SBM02103 nvme 255 8
- Еще вариант просмотра информации о дисках
fdisk -l
- в качестве примера будем использовать диск
sda
План разделов GPT для UEFI на SSD 240 GB
Раздел | Название | Формат | Размер | Назначение |
---|---|---|---|---|
sda1 | efi | FAT32 | 300 MiB | Загрузочный efi |
sda2 | boot | EXT4 | 1 GiB | Ядра linux |
sda3 | swap | SWAP | 8 GiB | Раздел подкачки |
sda4 | root | BTRFS | ~230 GiB | Система, данные |
- при использовании
btfrs
, если не разделитьefi
иboot
на разные разделы, не получится настроитьgrub
для автоматической загрузки последнего удачного входа, будет загружаться всегда пункт меню по умолчанию - а именно не будут работать эти параметры в файле
/etc/default/grub
:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
План разделов GPT для BIOS на SSD 240 GB
- если на компьютере нет поддержки efi или по какой-то причине вам нужна legacy загрузка
Раздел | Название | Формат | Размер | Назначение |
---|---|---|---|---|
sda1 | bios | BIOS | 1 MiB | Загрузочный bios |
sda2 | boot | EXT4 | 1 GiB | Ядра linux |
sda3 | swap | SWAP | 8 GiB | Раздел подкачки |
sda4 | root | BTRFS | ~230 GiB | Система, данные |
Подготовка диска
В распоряжении имеются следующие утилиты для разбивки диска: cfdisk, fdisk, gdisk, sfdisk.
- Будем использовать
fdisk
fdisk /dev/sdX
- где
sdX
ваш диск, в качестве примера везде будетsda
Разбивка для UEFI
Команда g
— создание нового GPT раздела, старый раздел будет удален
Command (m for help): g
Created a new GPT disklabel (GUID: 73749F7E-1B28-874D-94AE-DED4CE70D269)
Команда n
— создание раздела
раздел EFI (300M)
Command (m for help):n
Partition number (1-128, default 1):↵
First sector (2048-500118158, default 2048):↵
Last sector, ±sectors or ±size{K,M,G,T,P} (2048-500118158, default 500117503):+300M
Created a new partition 1 of type 'Linux filesystem' and of size 300 MiB.
раздел BOOT (1G)
Command (m for help):n
Partition number (2-128, default 2):↵
First sector (616448-500118158, default 616448):↵
Last sector, ±sectors or ±size{K,M,G,T,P} (616448-500118158, default 500117503):+1G
Created a new partition 1 of type 'Linux filesystem' and of size 1 GiB.
раздел SWAP (8G) размер выбираем равным оперативной памяти
Command (m for help):n
Partition number (3-128, default 3):↵
First sector (2713600-500118158, default 2713600):↵
Last sector, ±sectors or ±size{K,M,G,T,P} (2713600-500118158, default 500117503):+8G
Created a new partition 1 of type 'Linux filesystem' and of size 8 GiB.
раздел ROOT (отдаем оставшееся место)
Command (m for help):n
Partition number (4-128, default 4):↵
First sector (19490816-500118158, default 19490816):↵
Last sector, ±sectors or ±size{K,M,G,T,P} (19490816-500118158, default 500117503): ):↵
Created a new partition 1 of type 'Linux filesystem' and of size 229.2 GiB.
Команда t
— задать тип раздела, если не задавать то по умолчанию тип 20 Linux filesystem
задаем тип EFI разделу
Command (m for help):t
Partition number (1-4, default 4):1
Partition type or alias (type L to list all):1
Changed type if partition 'Linux filesystem' to 'EFI filesystem'.
задаем тип SWAP разделу
Command (m for help):t
Partition number (1-4, default 4):3
Partition type or alias (type L to list all):19
Changed type if partition 'Linux filesystem' to 'Linux swap'.
остальные разделы не трогаем
Команда p
— отобразить информацию о разделах
Disk /dev/sda: 238.47 GiB, 256060514304 bytes, 5001118192 sectors
Disk model: Apacer AS340 240GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 73749F7E-1B28-874D-94AE-DED4CE70D269
Device Start End Sectors Size Type
/dev/sda1 2048 616447 614400 300M EFI System
/dev/sda2 616448 2713599 2097152 1G Linux filesystem
/dev/sda3 2713600 19490815 16777216 8G Linux swap
/dev/sda4 19490816 500117503 480626688 229.2G Linux filesystem
Команда w
— сохранить таблицу разделов
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Разбивка для BIOS
раздел BIOS (1M)
Command (m for help):n
Partition number (1-128, default 1):↵
First sector (2048-500118158, default 2048):↵
Last sector, ±sectors or ±size{K,M,G,T,P} (2048-500118158, default 500117503):+1M
Created a new partition 1 of type 'Linux filesystem' and of size 1 MiB.
задаем тип BIOS разделу
Command (m for help):t
Partition number (1-4, default 4):1
Partition type or alias (type L to list all):4
Changed type if partition 'Linux filesystem' to 'BIOS boot'.
Первый раздел создается под BIOS вместо EFI, остальные разделы создаются подобно EFI разбивке
Форматируем разделы
Форматируем efi
mkfs.fat -F32 /dev/sda1
в случае использования раздела
bios
форматироватьsda1
не нужно
Форматируем boot
mkfs.ext4 -L boot /dev/sda2
- Форматируем и включаем swap
mkswap -L swap /dev/sda3
swapon /dev/sda3
- Форматируем root
mkfs.btrfs -L arch /dev/sda4 -f
Монтируем разделы
- Создаем тома и подтома (subvolumes)
mount /dev/sda4 /mnt
btrfs su cr /mnt/@
btrfs su cr /mnt/@var
btrfs su cr /mnt/@home
btrfs su cr /mnt/@snapshots
umount /mnt
- Монтируем разделы для BIOS и EFI
mount -o noatime,compress=lzo,space_cache=v2,ssd,subvol=@ /dev/sda4 /mnt
mkdir -p /mnt/{home,boot,var,.snapshots}
mount -o noatime,compress=lzo,space_cache=v2,ssd,subvol=@var /dev/sda4 /mnt/var
mount -o noatime,compress=lzo,space_cache=v2,ssd,subvol=@home /dev/sda4 /mnt/home
mount -o noatime,compress=lzo,space_cache=v2,ssd,subvol=@snapshots /dev/sda4 /mnt/.snapshots
mount /dev/sda2 /mnt/boot
для загрузки BIOS этого достаточно
Для EFI загрузки добавляем следующее
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
Начальная настройка
- Устанавливаем базовую часть системы для новых поколений ПК, самое новое ядро
pacstrap /mnt base base-devel linux linux-headers linux-firmware intel-ucode amd-ucode nano
- Устанавливаем базовую часть системы для ядра с длительной поддержкой (lts)
- Актуально для не очень новых ПК
pacstrap /mnt base base-devel linux-lts linux-lts-headers linux-firmware intel-ucode amd-ucode nano
- Генерируем fstab
genfstab -pU /mnt >> /mnt/etc/fstab
- Меняем корневой каталог на
/mnt
arch-chroot /mnt
- Задаем пароль root
passwd
- Даем имя ПК
nano /etc/hostname
- Настраиваем временную зону
ln -sf /usr/share/zoneinfo/Asia/Almaty /etc/localtime
- Открываем файл с локалями
nano /etc/locale.gen
- Раскомментируем в содержимом файла
locale.gen
ru_RU.UTF8 UTF8
en_US.UTF8 UTF8
остальные локали на ваше усмотрение
Создаем локали
locale-gen
- Настраиваем язык консоли, добавляем кириллицу
nano /etc/vconsole.conf
KEYMAP=ru
FONT=cyr-sun16
- Устанавливаем язык системы по умолчанию
nano /etc/locale.conf
LANG="ru_RU.UTF-8"
- Инициализируем пакетный менеджер pacman
pacman-key --init
- Загружаем ключи
pacman-key --populate archlinux
- Настраиваем pacman
nano /etc/pacman.conf
- Раскомментируем в содержимом файла
pacman.conf
[multilib]
Include = /etc/pacman.d.mirrorlist
- Опционально можно включить следующие опции в секции
# Misc options
: color
— цветная подсветка pacman;ParallelDownloads
— количество параллельных загрузок, рекомендация не ниже 5;ILoveCandy
— можно добавить забавный прогрессбар загрузки пакетов в стиле игры Pacman 😀
Color
ParallelDownloads = 10
ILoveCandy
- Обновляем, устанавливаем необходимое
pacman -Sy
pacman -S bash-completion openssh arch-install-scripts networkmanager git wget htop neofetch xdg-user-dirs pacman-contrib ntfs-3g
чтобы заработал
bash-completion
при использованииTAB
, необходимо выйти изchroot
(Ctrl+D
) и войти сноваarch-chroot /mnt
Создаем начальный загрузочный диск
mkinitcpio -p linux
- … в случае lts ядра
mkinitcpio -p linux-lts
- … или для всех ядер (
P
— заглавная)
mkinitcpio -P
- Разрешаем пользователю применять права
root
nano /etc/sudoers
- Раскомментируем в содержимом файла
sudoers
%wheel ALL=(ALL:ALL) ALL
- Создаем пользователя
useradd -mg users -G wheel <<имя_пользователя>>
где
<<имя_пользователя>>
непосредственно заданное имя, напримерuser
Задаем пароль пользователю (рекомендуется отличный от пароля root)
passwd <<имя_пользователя>>
- Добавляем в загрузку сетевой менеджер
systemctl enable NetworkManager.service
- Ставим загрузчик Grub для EFI
pacman -S grub efibootmgr grub-btrfs os-prober
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Arch
grub-mkconfig -o /boot/grub/grub.cfg
- Ставим загрузчик Grub для BIOS
pacman -S grub grub-btrfs os-prober
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
Установка графических драйверов
- Графические драйвера Intel
pacman -S xf86-video-intel
#для виртуальной машины c процессором intel
pacman -S xf86-video-vesa
- AMD
pacman -S lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader
- NVIDIA
pacman -S nvidia-utils lib32-nvidia-utils nvidia-settings nvidia-dkms
Установка среды рабочего стола
KDE
pacman -S sddm dolphin kdeconnect konsole kwalletmanager kate plasma plasma-nm plasma-pa powerdevil gwenview okular
соглашаемся на установку всех дополнительных пакетов
Запуск службы загрузчика
sddm
systemctl enable sddm
XFCE
pacman -S lxdm xfce4 xfce4-goodies ttf-liberation ttf-dejavu network-manager-applet ppp pulseaudio-alsa gvfs thunar-volman
- Запуск службы загрузчика
lxdm
systemctl enable lxdm
GNOME
pacman -S gdm gnome gnome-extra network-manager-applet
- Запуск службы загрузчика
gdm
systemctl enable gdm
Финиш
- Выходим с chroot
Ctrl+D
#или по старинке
exit
- Рекурсивно размонтируем
/mnt
umount -R /mnt
- Все настройки готовы, можно перегружаться
reboot
Дополнительно
Очень полезные дополнения
- Пакетный менеджер
yay
для пользовательского репозитория AUR и ARCH
git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si
Имеет смысл отключить сборку отладочных пакетов, выключив
!debug
и!strip
sudo sed -i.bak '/^OPTIONS=/s/strip/!strip/; /^OPTIONS=/s/debug/!debug/' /etc/makepkg.conf
Timeshift — система резервного копирования
sudo pacman -S timeshift
- Скрипт автоматического резервного копирования при обновлениях
yay -S timeshift-autosnap
- Контекстное меню для Dolphin
Открыть от имени администратора
sudo pacman -S kio-admin
- Автоматическая очистка кэша пакетов
sudo pacman -S pacman-contrib
sudo systemctl enable paccache.timer
Зеркала
Статья на wiki
Если возникают проблемы с доступом к репозиториям или/и хотим оптимизировать скорость доступа, то есть решение:
- Делаем резервную копию
/etc/pacman.d/mirrorlist
, находим самые быстрые зеркала и сохраняем первые 6
sudo pacman -S pacman-contrib
sudo su
# при повторном ранжировании зеркал резевную копию делать не нужно, просто переходим к следующей команде
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
# команда может быть долгой, может показаться что терминал завис, просто ждите окончания
sudo rankmirrors -n 6 /etc/pacman.d/mirrorlist.bak > /etc/pacman.d/mirrorlist
exit
Еще из полезного
- Firefox — известный браузер
sudo pacman -S firefox
- Pamac — графическая оболочка для Pacman, AUR, Flatpak и Snap от разработчиков Manjaro
yay -S pamac-all
- Onlyoffice — офис внешне похожий на Microsoft Office
yay -S onlyoffice-bin
- Проверка орфографии (английская и русская)
sudo pacman -S aspell aspell-en aspell-ru
- Шрифты от Microsoft
yay -S ttf-ms-fonts
- Основной шрифт с дополнительными значками
yay -S ttf-hack-nerd
- Шрифт для отображения иероглифического письма
sudo pacman -S noto-fonts-cjk
- Bleachbit — очистка диска
sudo pacman -S bleachbit
- Portproton — wine от Valve
yay -S portproton