Featured image of post Встановлення Arch Linux (UEFI + зашифрований LVM)

Встановлення Arch Linux (UEFI + зашифрований LVM)

Вступ

Це мій власний мануал із встановлення Arch Linux на машину з UEFI, зашифрованим LVM і окремим розділом /home.

Кроки

Спочатку вам потрібно створити та запустити інсталяитор на вашому ПК, у результаті ви завантажитесь у звичайну консоль.

Збільшити розмір шрифту

Оскільки більшість сучасних ноутбуків/ПК мають дисплеї з великою роздільною здатністю, я рекомендую збільшити розмір шрифту:

setfont ter-132b

Налаштуйте підключення до Інтернету

У цьому прикладі використовується ПК із модемом Wi-Fi, тому я буду використовувати iwd для налаштування підключення до Інтернету.

Запуск iwd:

iwctl

Переглянути список адаптерів Wi-Fi:

device list

Зазвичай ви маєте бачити один пристрій Wi-Fi на виході, у моєму випадку це wlan0

Потім, якщо ви знаєте SSID станції та пароль, просто підключіться до станції та не забудьте замінити {SSID} своїм фактичним значенням:

station wlan0 connect {SSID}

Потім вийдіть із iwctl, ввівши exit, виконайте ping 8.8.8.8, щоб переконатися, що ви підключені до Інтернету.

Синхронізувати системний годинник

timedatectl set-ntp true

Розбийте диск на розділи

У моєму випадку я хочу мати окремі розділи root, /boot і /home, крім того, / і /home мають бути зашифровані LVM і перебувати в одній групі томів.

Визначте свій диск

По-перше, нам потрібно знати, який диск слід використовувати, щоб переглянути дискові пристрої:

fdisk -l

У моєму випадку це NVMe SSD-накопичувач /dev/nvme0n1.

Розмітка розділів

Далі скористайтеся gdisk /dev/nvme0n1, щоб створити розділи з таким макетом:

  • /dev/nvme0n1p1 - принаймні 512M - тип EF00 - Системний розділ EFI
  • /dev/nvme0n1p2 - решта диска - тип 8309 - LUKS

Відформатуйте фізичні розділи

  1. Розділ EFI
mkfs.vfat -F 32 /dev/nvme0n1p1
  1. Зашифрований розділ LUKS
cryptsetup luksFormat /dev/nvme0n1p2

Створення групи томів і логічних томів

Спочатку відкрийте зашифрований контейнер:

cryptsetup luksOpen /dev/nvme0n1p2 luks

У результаті зашифрований розділ монтується в /dev/mapper/luks.

Далі розглядайте /dev/mapper/luks як LVM PV і створіть свої томи. У моєму випадку такі:

  • Група томів vg0
    • Логічний том lv_root - Ймовірно, принаймні 20G, я використовую 75G
    • Логічний том lv_swap - Необов’язковий, можливо, небажаний, якщо у вас є SSD
    • Логічний том lv_home - Решта простору

Команди для досягнення цього:

1
2
3
4
5
pvcreate /dev/mapper/luks
vgcreate vg0 /dev/mapper/luks
lvcreate -L 75G -n lv_root vg0
lvcreate -L 16G -n lv_swap vg0
lvcreate -l100%FREE -n lv_home vg0 

Відформатуйте логічні томи

Я буду використовувати файлові системи ext4 для свого налаштування, тут ви можете використовувати щось інше (наприклад, btrfs).

Щоб відформатувати кореневий і домашній розділи в ext4:

1
2
mkfs.ext4 /dev/vg0/lv_root
mkfs.ext4 /dev/vg0/lv_home

Щоб відформатувати розділ підкачки та ввімкнути його:

1
2
mkswap /dev/vg0/lv_swap
swapon /dev/vg0/lv_swap

Монтування розділів

Цей крок потрібен для монтування створених розділів і інсталяції туди системи Arch Linux. Усі файлові системи мають бути змонтовані з урахуванням /mnt як кореневої файлової системи для майбутньої встановленої системи.

1
2
3
mount --mkdir /dev/vg0/lv_root /mnt
mount --mkdir /dev/vg0/lv_home /mnt/home
mount --mkdir /dev/nvme0n1p1 /mnt/boot

Встановлення базової системи

pacstrap -K /mnt base base-devel linux linux-firmware linux-headers

Створення fstab

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

Chroot у систему

arch-chroot /mnt

Створити локалізацію

Розкоментуйте en_US.UTF-8 UTF-8 та інші необхідні локалі у файлі /etc/locale.gen.

Потім згенеруйте локалі:

locale-gen

Щоб установити локаль системи:

echo "LANG=en_US.UTF-8" > /etc/locale.conf

Налаштуйте ім’я хоста

Насправді це аналог назви комп’ютера в Windows, у моєму випадку я назву його thinkpad.

echo "thinkpad" > /etc/hostname

Також додайте стандартні значення до файлу /etc/hosts:

1
2
3
4
# Static table lookup for hostnames.
# See hosts(5) for details.
127.0.0.1 localhost
::1 localhost

Налаштування часового поясу

Мій часовий пояс Europe/Kiev, тому в моєму випадку має бути створено це підсумкове посилання:

ln -s /usr/share/zoneinfo/Europe/Kiev /etc/localtime

А також рекомендую перевести апаратний годинник BIOS на UTC:

hwclock --systohc --utc

Налаштування initramfs

Встановіть пакет lvm2:

pacman -S lvm2

Відредагуйте файл /etc/mkinitcpio.conf і вставте хуки encrypt і lvm2 строго в цьому порядку між хуками block і filesystem, таким чином:

HOOKS=(base udev ... block encrypt lvm2 filesystems)

Потім повторно згенеруйте initramfs:

mkinitcpio -P

Створіть користувача та облікові дані

Спочатку рекомендується змінити пароль користувача root:

passwd root

Потім встановіть пакет sudo, щоб дозволити вашому користувачеві надавати привілеї:

pacman -S sudo

Потім відредагуйте файл sudoers:

sudo EDITOR=nano visudo

Розкоментуйте рядок %wheel ALL=(ALL:ALL) ALL і збережіть файл.

Створіть користувача, змініть пароль і додайте його в потрібні групи:

1
2
3
useradd -m shifthackz
passwd shifthackz
usermod -aG wheel,audio,video,storage shifthackz

Встановіть необхідні пакети та робоче середовище

Це необов’язковий крок, і ви можете зробити те саме після встановлення, але я хотів би мати можливість використовувати DE після встановлення.

У цьому прикладі я встановлю Gnome DE (на Wayland і PipeWire) з NetworkManager.

pacman -S gnome networkmanager gnome pipewire \
 pipewire-alsa pipewire-pulse pipewire-jack \
 wireplumber bluez bluez-utils 

Потім запустіть необхідні служби за замовчуванням

1
2
3
systemctl enable NetworkManager
systemctl enable gdm
systemctl enable bluetooth

Встановіть завантажувач

Я буду використовувати systemd-boot, щоб встановити його, запустіть:

bootctl install

Потім створіть конфігурацію завантажувача в /boot/loader/loader.conf, яка містить таке:

1
2
3
4
default @saved
timeout 3
console-mode max
editor no

Щоб завантажити мікрокод свого ЦП на початку завантажувача, встановіть пакет amd-ucode або intel-ucode, у моєму випадку у мене процесор Intel, тому команда така:

pacman -S intel-ucode

Потім визначте UUID вашого зашифрованого розділу LVM (у моєму випадку /dev/nvme0n1p2):

blkid /dev/nvme0n1p2

Потім створіть завантажувальний запис для вашої системи Arch Linux у /boot/loader/entries/arch.conf, обов’язково замініть UUID і виправте кореневий розділ у параметрі options:

1
2
3
4
5
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options cryptdevice=UUID=b574960c-1d6a-4363-bd8a-0e7345f23e06:luks root=/dev/vg0/lv_root rw

Нарешті перевірте bootctl і переконайтеся, що конфігурація правильна в bootctl list.

Перезавантажтесь у нову систему

Для перезавантаження потрібно:

  • введіть exit, щоб вийти з оболонки chroot.
  • потім виконайте umount -R /mnt, щоб відмонтувати ваші розділи.
  • нарешті введіть reboot
Всі права захищено.