[SOLVED] Установка gentoo на шифрованный раздел (luks) + LVM
alexxnight 29 октября, 2014 - 23:27
Добрый день, коллеги. Вкратце:
Подготавливаю диск для установки gentoo:
1 раздел 2мб (grub)
2 раздел 256 мб (boot)
3 раздел до конца диска. (luks + LVM)
Затем 3 раздел шифрую cryptsetup
Создаю LVM на 3 разделе:
swap
root
Делаю установку далее. Компиляция ядра вручную. Включаю:
Crypt target support
Cryptoloop Support
SHA224 and SHA256 digest algorithm
SHA384 and SHA512 digest algorithms
Компелирую ядро, initramfs: genkernel --luks --lvm --install initramfs
Устанавливаю grub: grub2-install --modules="luks lvm" /dev/sda
...
Загрузка идет, пароль на зашифрованный раздел не спрашивает.
Естественно, root раздел не находит...
Кто делал подобное, подскажите, может есть решение.
Заранее Спасибо.
»
- Для комментирования войдите или зарегистрируйтесь
Покажите строку параметров
Покажите строку параметров ядра.
Строка в GRUB 2.02
linux /vmlinuz-3.16.5-gentoo root=/dev/mapper/vg0-root ro
initrd /initramfs-genkernel-x86_64-3.16.5-gentoo
А с чего вы решили, что
А с чего вы решили, что сценарий init в initramfs (genkernel) сам разберётся, что вы пытаетесь смонтировать шифрованный корень?
Вы хоть 'man genkernel' открывали?
Да, Вы правы,
Да, Вы правы, указал
crypt_root=/dev/sda3
GRUB пароль при запуске спросил, но не загрузился. Сказал, что нет root раздела - не нашел.
Перешел в sell, попробовал вручную подключится, выдал:
"... chek that kernel support aes-xts-plain64..."
когда компилировал ядро, указал:
-*- Cryptographic API --->
<*> SHA224 and SHA256 digest algorithm
<*> SHA384 and SHA512 digest algorithms
может их надо было модулем поставить? Вот так:
<М> SHA224 and SHA256 digest algorithm
<М> SHA384 and SHA512 digest algorithms
cryptsetup status lvm0
type: LUKS1
cipher: aes-xts-plain64
device: /dev/sda3
ну и так далее
Цитата: GRUB пароль при
Спрашивает пароль не grub, а init сценарий в initramfs.
А вы его указали?
Смотрим ешё раз, вы изначально сказали, что у вас такие параметры передаются ядру:
А так же сказали:
Значит, для того, что бы смонтировать корень вам нужно вначале расшифровать раздел, затем активировать группу томов, а затем уже ядро смонтирует lvm том в качестве корня, т.е. параметры ядра должны быть такими:
Ещё раз, читайте 'man genkernel'.
Цитата: Значит, для того,
Все верно, последняя моя запись была именно такая. Проблема в том, что init не может расшифровать /dev/sda3.
Запрос пароля идет, а затем:
device-mapper: reload ioctl on failed: No such file or directory
Fdiled to setup dm-crypt key mapping for device /dev/sda3
Check that kernel support aes-xts-plain64 cipher (check syslog)
т.е. оказывается, что в ядре нет поддержки шифрования.
Хотя я выбирал при компиляции ядра.
Только не модулем а в ядро. Может в этом косяк?
Цитата: device-mapper:
да нет, скорее всего, вы неправильно собрали ядро и попросту не задействовали в ядре поддержку контроллера жёстких дисков.
Покажите вывод
с LiveCD и выложите на pastebin сервис конфиг вашего ядра.
Это виртуальная машина на
Это виртуальная машина на VirtualBox...
но если надо, я сделаю lspci -k :)
конфиг ядра сейчас посмотрю...
выложил на dropbox
https://www.dropbox.com/s/xhhyd6a2dt1xe66/conf?dl=0
Спасибо Вам, что Вы со мной разбираетесь :)
а вот посмотрел я конфиг, а там
# CONFIG_CRYPTO_XTS is not set
уж не оно ли?
Как шифровали раздел,
Как шифровали раздел, приведите точную команду.
Покажите также
Без доп параметров
cryptsetup luksFormat /dev/sda3
без доп параметров, все по умолчанию.
LUKS header information for /dev/sda3
Version: 1
Cipher name: aes
Cipher mode: xts-plain64
Hash spec: sha1
Payload offset: 4096
MK bits: 256
MK digest: ca e2 dd 31 c0 87 af 5b cf 0d 3e ad 61 16 1f 53 10 93 dc d9
MK salt: b1 4b 53 1e 68 93 d1 2e 54 13 4a d0 3e 5e 86 19
21 6a 18 2b 65 13 d8 d2 9c af b6 6e f6 b9 2d 52
MK iterations: 35875
UUID: 24b37f48-5f65-493e-9838-c7f961b2a94b
Key Slot 0: ENABLED
Iterations: 145454
Salt: b4 02 2d 7b c8 f9 c4 7a b8 43 dc 7e 7e 33 2f 53
da 85 59 ca ab ef 76 15 30 23 2a 73 c6 84 f9 44
Key material offset: 8
AF stripes: 4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED
В общем, все заработало после
В общем, все заработало после использования cipher twofish при шифровании раздела (я думаю, что и другие методы тоже поддерживает, но надо пробовать какие). Последние раз 5 ставил на реальный сервер, а не на виртуальную машину. Видимо genkernel, когда создает initramfs, не включает поддержку всех методов шифрования.
cryptsetup /dev/sda3 -c twofish-xts-plain:wd512 -s 512
Спасибо kostik87 за поддержку и направление в нужное русло :)