Arch-linux на lvm, приправленный EFI и шифрованием.

Team zBrain
zBrain
Published in
4 min readApr 20, 2020

Месье знает толк в извращениях, поэтому сегодня мы будем готовить Arch Linux с lvm, EFI и luks. Это безопасно, я сотню раз так делал… прежде чем оно получилось.

Итак, для начала нам понадобиться образ дистрибутива (спасибо, Кэп). Идём на https://www.archlinux.org/download/ и качаем заветный iso’шник. Записываем сиё чудо на флешку. Я не буду останавливаться на этом моменте. Если вы докатились до такой жизни до установки Arch с разделами и шифрованием, то, скорее всего, создавать загрузочную флешку уже умеете.

Если вы устанавливаете данную конструкция на VirtualBox, убедитесь, что в настройках машины включена поддержка EFI. Разумеется, если установка происходит на железо, то поддержка EFI тоже должна присутствовать.

Запускаемся с образа. Проверяем наличие Интернета (оно нам понадобиться в процессе установки) и доступность диска, над которым планируем поработать.

Далее, нам нужно разметить диск. Я использую cfdisk. Просто потому, что как true-нуб, я хорошо работаю только с этой утилитой.

сfdisk /dev/sda

Выбираем gpt (у нас же uefi 💪)

Первый раздел — EFI sytem Partition, я выделяю под него 256Mb

Второй раздел — boot, 512 Mb

Третий раздел будет зашифрован (нет, boot мы шифровать не будем, ибо запускаться и получать возможность ввода пароля на расшифровку нам как-то надо).

Для первого раздела выбираем тип EFI system, для остальных оставляем по умолчанию Linux filesystem.

Примечание, для тех, кто не использовал cfdisk, но очень хочет попробовать: что бы разметить новый раздел выбираем “Free spase” стрелочками вверх/вниз, затем выбираем “New” в меню внизу стрелочками право/лево. После выбора New появиться предложение ввести желаемый размер раздела. Что бы изменить тип, выделите требуемый раздел и выберите пункт “Type”.

Весь оставшийся размер диска размечаем под третью часть (на разделы мы его разобьём чуть позже). Выбираем внизу “Write” (это запишет изменения на диск), а затем “Quit”.

Переходем к шифрованию. Для начала подгрузим необходимые модули ядра (не пугайтесь, это не больно). В этом нам поможет утилита modprobe.

modprobe dm-crypt

modprobe dm-mod

Устанавливаем шифрование на наш раздел

cryptsetup luksFormat -v -s 512 -h sha512 /dev/sda3

Нас попросят подтвердить наше намерение заглавными буквами (то есть YES, а не yes или y), а далее ввести и подтвердить пароль. Во избежание проблем крайне не рекомендую этот пароль забывать.

Всё! Ловкость рук — и наш раздел зашифрован.

Открываем его (запросит установленный пароль):

cryptsetup open /dev/sda3 luks_lvm

И теперь разбиваем.

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

pvcreate /dev/mapper/luks_lvm

Создаём группу:

vgcreate arch /dev/mapper/luks_lvm

Создаём логические тома в меру своей испорченности

lvcreate -n root -L 8G arch

lvcreate -n home -L 5G arch

lvcreate -n var -L 10G arch

lvcreate -n tmp -L 5G arch

lvcreate -n swap -L 1G -C y arch

Разумеется, количество и размеры разделов зависят от ваших пожеланий и возможностей используемого “железа”.

Форматируем разделы. Я использую файловую систему ext4, но ничего не мешает вам использовать то, что больше по вкусу. Обратите внимание, что раздел EFI должен быть отформатирован в fat32 (!!!11адын!адын!)

mkfs.fat -F32 /dev/sda1

mkfs.ext4 /dev/sda2

mkfs.ext4 -L root /dev/mapper/arch-root

mkfs.ext4 -L home /dev/mapper/arch-home

mkfs.ext4 -L var /dev/mapper/arch-var

mkfs.ext4 -L tmp /dev/mapper/arch-tmp

mkswap /dev/mapper/arch-swap

Монтируем то, что получилось

mount /dev/mapper/arch-root /mnt

mkdir -p /mnt/{boot,home,var,tmp}

mount /dev/sda2 /mnt/boot

mkdir /mnt/boot/efi

mount /dev/sda1 /mnt/boot/efi

mount /dev/mapper/arch-home /mnt/home

mount /dev/mapper/arch-var /mnt/var

mount /dev/mapper/arch-tmp /mnt/tmp

swapon /dev/mapper/arch-swap

swapon -a; swapon -s

Если на данном этапе выполнить lsblk, мы увидим список наших созданных разделов.

Приступаем к установке Arch на наш свежеразделанный диск:

pacstrap /mnt base base-devel efibootmgr vim grub mkinitcpio linux linux-firmware lvm2 — noconfirm

Если вы всё ещё гуглите “Как выйти из vim”, то можно заменить vim на nano.

После запуска указанной команды можно идти пить чай.

Если враги не оборвали Интернет и всё прошло хорошо с установкой, генерируем fstab

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

И заходим внутрь нашей новенькой системы

arch-chroot /mnt /bin/bash

Конфигурируем mkinitcpio (что это такое и с чем это едят можно подглядеть на ArchWiki https://wiki.archlinux.org/index.php/Mkinitcpio_(Русский) )

vim /etc/mkinitcpio.conf

*для тех кто не умеет в vim — замените команду на nano /etc…

Находим строчку HOOKS и дописываем encrypt, lvm2 и другие необходимые параметры. Мой HOOKS выглядит, обычно, так:

HOOKS=(base udev autodetect keyboard keymap modconf block encrypt lvm2 filesystems fsck)

Обратите внимание — порядок имеет значение!

В приведённой мной конфигурации в MODULES я добавляю ext4 и, как счастливый обладатель NVIDIA, на случай установки X’ов — nouveau.

Получается нечто подобное:

MODULES=(ext4 nouveau)

Устанавливаем grub

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

Конфигурируем

vim /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=”quiet”

GRUB_CMDLINE_LINUX=”resume=/dev/mapper/arch-swap cryptdevice=/dev/sda3:luks_lvm root=/dev/mapper/arch-root”

Настраиваем привычный вам минимум: локали, часовой пояс, профиль пользователя, настройки сети, драйвера и т.п.

Гененрируем образ

mkinitcpio -v -p linux

Генерируем конфигурацию загрузчика

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

grub-mkconfig -o /boot/efi/EFI/arch/grub.cfg

Устанавливаем, при необходимости, X’ы и желаемое DE

pacman -S xorg-server xorg-apps

pacman -S deepin

systemctl enable lightdm

Выходим обратно в загрузочную флешку

exit

Размонтируемся

umount -R /mnt

Перезагружаемся, скрестив пальцы, что б взлетело (держим бубен на готове)

reboot

Если у вас возникли вопросы по установке которые вы не можете решить с помощью вики арча, а также загуглив, вы можете обратиться в наш чат телеграмм *nix для самых маленьких (ссылка)

--

--

Team zBrain
zBrain
Editor for

zBrain— онлайн школа для специалистов по кибербезопасности