Arch-linux на lvm, приправленный EFI и шифрованием.
Месье знает толк в извращениях, поэтому сегодня мы будем готовить 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 для самых маленьких (ссылка)