В этом посте я поделюсь результатами своих экспериментов с установкой Arch Linux. Цель была собрать систему со следующими параметрами:
- Без отдельного
/boot(просто директория в корте). - Корень (
/) на LVM. - LVM внутри LUKS-контейнера.
- Загрузка через UEFI.
- Работа в виртуальной машине.
Disclaimer: Это описание эксперимента, а не best practice руководство.
Разметка дисков#
Настраиваем время:
timedatectl set-ntp true && timedatectl set-timezone Europe/MoscowПроверяем диск:
fdisk -l /dev/vdaНам понадобится:
- FAT32 раздел для UEFI (
EFI System Partition). - LUKS контейнер на всём остальном пространстве.
Создаем таблицу разделов GPT и разделы через gdisk:
gdisk /dev/vda
# o (create new GPT)
# n (new partition), part 1, +512M, type EF00 (EFI System)
# n (new partition), part 2, rest of disk, type 8300 (Linux filesystem)
# w (write changes)Создание LUKS-контейнера и файловых систем#
Форматируем EFI раздел:
mkfs.vfat /dev/vda1Инициализируем LUKS контейнер на втором разделе:
cryptsetup -v luksFormat /dev/vda2
# Подтверждаем и вводим парольОткрываем контейнер:
cryptsetup luksOpen /dev/vda2 containerТеперь внутри расшифрованного контейнера (/dev/mapper/container) создаем LVM:
pvcreate /dev/mapper/container
vgcreate rootvg /dev/mapper/container
lvcreate -L1G -n swap rootvg
lvcreate -L5G -n root rootvg
lvcreate -L2G -n home rootvgФорматируем тома:
mkfs.ext4 -L root /dev/mapper/rootvg-root
mkfs.ext4 -L home /dev/mapper/rootvg-home
mkswap -L swap /dev/mapper/rootvg-swapМонтируем для установки:
mount /dev/mapper/rootvg-root /mnt/
mkdir -p /mnt/{home,boot/efi}
mount /dev/vda1 /mnt/boot/efi/
mount /dev/mapper/rootvg-home /mnt/home/
swapon /dev/mapper/rootvg-swapДалее следует стандартная процедура установки Arch Linux (pacstrap, настройки загрузчика), но с учетом особенностей шифрования в хуках mkinitcpio и параметрах ядра.
Looking for a Senior DevOps or DevSecOps?
I help companies modernize their infrastructure, optimize Cloud/On-Premise costs, and build secure DevSecOps cultures.
