LINUX.ORG.RU

Debian: cryptsetup в initramfs

 , ,


0

1

Имею /root на lvm на зашифрованном luks физическом разделе (/dev/sda2), на другом физическом разделе стоит /boot (/dev/sda1, незашифрованный). Нужно настроить в initramfs скрипт для ввода пароля для /dev/sda2, но столкнулся с несколькими проблемами (хуки настроил, cryptsetup в initramfs загружен).

В линуксе не эксперт, поэтому сначала попробовал самый топорный метод, а именно создать в local-top скрипт со следующем содержимым:

#!/bin/sh
PREREQ=""
prereqs()
{
	echo "$PREREQ"
}

case $1 in
prereqs)
	prereqs
	exit 0
	;;
esac

cryptsetup open /dev/sda2 cryptlvm
vgchange -ay

Но при загрузке и выдаче запроса пароль не вводится, а каждый введеный символ переносит на новую строку. Я так понимаю надо настроить ввод с клавиатуры, но как это сделать в debian не совсем понимаю, в арче всего то надо было в mkinitcpio.conf перенести хук keyboard перед cryptsetup.

Ответ на: комментарий от Thom

Почитал логи от этого initramfs’а, ему оказывается не хватало 4-го аргумента (по crypttab формату) для выполнения, у меня было изначально вот это:

GRUB_CMDLINE_LINUX_DEFAULT="quiet root=/dev/Linux/debian-root cryptopts=target=cryptlvm,source=/dev/sda2,key=none"

Так как всякие cipher и size у меня стандартные я их и не вписал. Поменял на:

GRUB_CMDLINE_LINUX_DEFAULT="quiet root=/dev/Linux/debian-root cryptopts=target=cryptlvm,source=/dev/sda2,key=none,cipher=aes-xts-plain64,size=256,hash=sha256"

Хотя работает, даже если чушь вписать после key=none, он просто варнинги выдаст и будет работать со стандартными опциями

yachmenka ()