Современный мир, порой, подкидывает различные фортеля.
Calculate Linux позволяет “обезопасить” своих пользователей от ряда возможных последствий.
В этой мини-статье рассказывается как установить Calculate на современное железо, которое не знает за Legacy и умеет только в UEFI, и не бояться!
Эта статья актуализирует предыдущую тему Установка Calculate на LUKS
Итак, тестовый стенд - обычная виртуалка в Virtualbox, но с включенным режимом EFI.
Исходный образ - cldx-20191115-x86_64.iso
Грузимся. Разбиваем диск любимым способом примерно вот так:
Кратко поясню:
Разметка GPT
Первые 2 МиБ (можно и 1 МиБ) - оставим на вырост GPT
Раздел 1 - имеет тип 0xEF00 EFI System - раздел, куда GRUB положит файл прошивки для UEFI
Раздел 2 - будущий /boot раздел.
Раздел 3 - раздел, который будем шифровать, устанавливать в него систему, хранить пользовательские данные.
Примечание: раздел 3 имеет такой размер просто для примера. Для хранения реальных пользовательских данных может потребоваться много больше места
Итак, едем дальше.
Устанавливаем пакет sys-fs/cryptsetup если он не установлен.
На исходном образе эта утилита присутствует.
Затираем раздел, который будем шифровать.
dd bs=1M if=/dev/urandom of=/dev/sda3
Шифруем раздел
cryptsetup luksFormat -v --type luks -c aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 4096 --use-urandom /dev/sda3
Подключаем зашифрованный диск
cryptsetup luksOpen /dev/sda3 cl_encrypted
В подключенном контейнере создаем LVM и нарезаем будущие разделы.
pvcreate /dev/mapper/cl_encrypted
vgcreate cl_vg_enc /dev/mapper/cl_encrypted
lvcreate -n swap -L 4G cl_vg_enc
lvcreate -n root -l 95%FREE cl_vg_enc
Получившиеся разделы можно не форматировать. Пусть об этом заботится установщик.
Устанавливаем Calculate Linux любимым способом.
Например вот так:
cl-install --uefi /dev/sda1 -d /dev/sda2:/boot:ext4:on \
-d /dev/mapper/cl_vg_enc-root:/:ext4:on -d /dev/mapper/cl_vg_enc-swap:swap \
-l en_US --timezone Europe/Moscow --keymap ru_RU --hwclock UTC \
–netconf openrc --iface eth0:dhcp --hostname cl-box.local --dns 77.88.8.8 --audio alsa \
–grub-terminal gfxterm --grub-passwd on --root-password -u user:all -a off -o on
Система установлена.
Теперь необходимо поправить пару системных настроек в установленной системе и всё!
Чрутимся в установленную систему:
mkdir /tmp/r
mount /dev/mapper/cl_vg_enc-root /tmp/r
mount /dev/sda2 /tmp/r/boot
for d in /dev{,/shm,/pts} /sys /proc ; do
mount --bind -v $d /tmp/r/$d
done
/bin/chroot /tmp/r /bin/bash
env-update && source /etc/profile
Добавляем в настройки dracut сведения о том, что нам необходим в будущем модуль crypt и обновляем initramfs системы. На всякий случай. Так как при использовании исходного образа, я убедился в том, что dracut использует модуль crypt по-умолчанию. Но, в мире Linux, умолчания, иногда меняются…
echo ‘add_dracutmodules+=" crypt"’ > /etc/dracut.conf.d/10-crypt.conf
dracut --force
Примечание: при использовании исходного образа этот шаг можно не выполнять.
Теперь необходимо будет на этапе загрузки сообщать ядру (точнее dracut’у) о нашем зашифрованном разделе. Это можно сделать добавив параметр rd.luks.uuid с UUID зашифрованного раздела (в нашем случае это /dev/sda3).
Для этого, узнаем UUID раздела
blkid /dev/sda3 -o udev | sed -nr ‘s/^ID_FS_UUID=(\S+)$/\1/p’
Сохраняем полученное значение, в нашем случае 79efff15-b566-4adc-8a3f-a00f3144d159
Открываем /etc/default/grub. Ищем строчку GRUB_CMDLINE_LINUX и добавляем в неё, в нашем случае, rd.luks.uuid=79efff15-b566-4adc-8a3f-a00f3144d159
Сохраняем файл и “запрещаем” изменения файла шаблонами Calculate
cp /etc/default/grub /etc/default/grub.clt
Обновляем конфиг grub
grub-mkconfig -o /boot/grub/grub.cfg
Кстати, сейчас в установленную, но ещё не загруженную систему, можно установить/обновить/удалить пакеты, например, с прошивками ваших устройств, с драйверами видео и прочими радостями. Также при необходимости, сразу подкрутить конфиг Xorg…
А теперь перегружаемся и наслаждаемся результатом
P.S.: можно создать в комментариях другую мини-статью с добавлением в такую конфигурацию возможности “ввода” пароля для расшифровки по ssh.
P.P.S.: так же можно написать краткую инструкцию как подготовить свой собственный образ Calculate готовый к использованию в том же VirtualBox, с установленными и настроенными дополнениями.