Руководство по настройке Gentoo с полным шифрованием диска с использованием LUKS+LVM

Руководство по настройке Gentoo с полным шифрованием диска с использованием LUKS+LVM

Я ищу способ реализовать следующую настройку в Gentoo:

/dev/sda1 -> /boot (ext2)
/dev/sda2 -> Luks encrypted
|
+-lvm-vg1
  |
  +- /dev/mapper/root-fs -> / (ext4)
  +- /dev/mapper/swap    ->   (swap)

По сути, это та же настройка, которую использует Ubuntu при графической установке.

Я знаю, как вручную настроить LUKS и даже настройку LVM, но я застреваю, когда собираю их вместе при загрузке. Как мне сказать ядру и grub разблокировать раздел LUKS и смонтировать правильные разделы LVM?

решение1

Итак, я понял:

Я частично разбил диск, следуя инструкции:

# parted -a optimal /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted)mklabel gpt

(parted)unit mib

(parted)mkpart primary 1 3
(parted)name 1 grub
(parted)set 1 bios_grub on

(parted)mkpart primary 3 131
(parted)name 2 boot
(parted)mkpart primary 131 -1
(parted)name 3 lvm

(parted)set 2 boot on
(parted)q

Единственное изменение, которое я сделал, это не делал раздел подкачки и корневой раздел, а вместо этого создал один раздел и назвал его lvm (имя не имеет значения). Далее я настроил LUKS:

# Load the dm-crypt module (probably not nessesary)
modprobe dm-crypt

# Crypt the partition we named lvm (in my case that would be /dev/sda3)
cryptsetup -c aes-cbc-essiv:sha256 -v luksFormat -s 256 /dev/sda3

# Open the luks volume
cryptsetup luksOpen /dev/sda3 sda3-luks

# Setup a LVM physical volume 
lvm pvcreate /dev/mapper/sda3-luks

# Setup a volume group
lvm vgcreate vg0 /dev/mapper/sda3-luks

После этого настройте фактические объемы:

# Fist setup the swap volume
lvm lvcreate -L 2048M vg0
# Then check how many 'extends' are free (Free PE) using lvm vgdisplay
# use that number to use up the rest of the space:
lvm lvcreate -l 7809 vg0

В остальном мы в основном следуем руководству, за исключением тех случаев, когда вы обычно делаете что-то для /dev/sda3(swap) или /dev/sda4(root), теперь вы будете использовать /dev/mapper/vg0-lvol0(swap) и /dev/mapper/vg0-lvol1.

Важно, при генерации ядра (я использовал genkernelдля этого) сначала установить cryptsetup с помощью emerge -av cryptsetup., а затем запустить genkernelсо следующими параметрами:

genkernel --luks --lvm --busybox --menuconfig all

Обязательно настройте ядро ​​для поддержки LVM и выбранных алгоритмов хеширования и шифрования (в моем случае aesи sha256). Затем продолжайте следовать руководству, пока не запустите grub-config.

Перед запуском grub2-mkconfigнеобходимо отредактировать файл /etc/defaults/grub. (Должен отметить, что я не уверен, что это лучшее решение, но оно работает для меня).

В этом файле я поместил следующее (найдите и раскомментируйте параметр):

GRUB_CMDLINE_LINUX="crypt_root=UUID=<uuid of sda3> dolvm"

Вы можете найти правильный UUID, используя ls -l /dev/disk/by-uuid. После этого grub2-mkconfigвы должны найти ядро ​​и initramfs в /boot. Снова следуйте руководству, и после перезагрузки вы должны получить запрос на ввод пароля.

Надеюсь, это поможет кому-нибудь ещё.

Связанный контент