Bug 26691 - Feature request: загрузка с зашифрованного корневого раздела
Summary: Feature request: загрузка с зашифрованного корневого раздела
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: make-initrd-luks (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-10 23:00 MSK by aebirukov
Modified: 2012-08-05 01:28 MSK (History)
9 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description aebirukov 2011-12-10 23:00:13 MSK
Можно ли сделать загрузку с зашифрованного корневого раздела с использованием ключа на внешнем носителе (без ввода пароля)? А еще лучше, чтобы /boot находился на том же внешнем носителе.
Comment 1 Alexey Gladkov 2011-12-10 23:54:35 MSK
Насчёт отдельного раздела /boot, это и так работает.
Comment 2 Alexey Gladkov 2011-12-12 17:01:00 MSK
Я думаю, ничего не мешает это реализовать. Сложностью будет то что для монтирования шифрованного раздела придётся ждать не один девайс, а два.
Comment 3 aebirukov 2011-12-13 23:00:37 MSK
Что нужно прописать в fstab, касающееся зашифрованного корневого раздела (luks), чтобы сгенерировать initrd и раздел примонтировался при загрузке?
Или, это как-то иначе делать?
Comment 4 Alexey Gladkov 2011-12-14 00:52:45 MSK
(В ответ на комментарий №3)
> Что нужно прописать в fstab, касающееся зашифрованного корневого раздела
> (luks), чтобы сгенерировать initrd и раздел примонтировался при загрузке?
> Или, это как-то иначе делать?

Пожалуйста поясните свой вопрос.
Comment 5 ildar 2011-12-14 08:06:51 MSK
что сделать, чтобы при загрузке монтировался LUKS / раздел ?
Comment 6 Alexey Gladkov 2011-12-14 14:16:06 MSK
(В ответ на комментарий №5)
> что сделать, чтобы при загрузке монтировался LUKS / раздел ?

Для корня на LUKS процедура создания не отличается от других схем:

* Создайте шифрованный рутовый раздел;
* Заполните там fstab;
* Установите туда make-initrd и make-initrd-luks;
* Смонтируйте туда /sys;
* Сделайте туда chroot;
* make-initrd.
Comment 7 aebirukov 2011-12-14 18:12:14 MSK
>* Заполните там fstab;
Строчку в fstab не подскажите?
Я добавил такую строчку:
UUID="a07e14e6-7bee-48ac-99ea-39aa168cd44d" / crypt_LUKS defaults 0 0
(подобная строка при "ручном" монтировании командой mount работает, но используется mount.crypt_LUKS)

make-initrd
вылетает с ошибкой
add-module: No module "crypt_LUKS" found for kernel 3.0.3-std-def-alt0.M60P.1

В этом-то и загвоздка, что в мануалах пишут про crypttab+fstab, а crypttab у нас то ли не работает, то ли я как то не так его "готовлю".
Comment 8 aebirukov 2011-12-14 18:45:05 MSK
Вот еще текст письма из рассылки:

Спасибо, но сложность, похоже, именно alt-specific
Такая строчка в /etc/crypttab
_dev_sdb2       UUID="a07e14e6-7bee-48ac-99ea-39aa168cd44d"     none    luks
устройства в /dev/mapper/ не создаёт.


Такая строчка в fstab

UUID="a07e14e6-7bee-48ac-99ea-39aa168cd44d" /mnt/sdb2  crypt_LUKS      defaults        0       0
позволяет монтировать устройство командой "mount /mnt/sdb2". Но используется, в данном случае, mount.crypt_LUKS из пакета pam_mount.

Но сгенерировать initrd командой make-initrd (соответственно точка монтирования -- корневой раздел)
не получается:
add-module: No module "crypt_LUKS" found for kernel

crypttab у нас обрабатывается? Если да, то какой формат записи? Если нет, то что писать fstab, чтобы make-initrd было понятно?
Comment 9 Alexey Gladkov 2011-12-14 19:49:08 MSK
(В ответ на комментарий №7)
> >* Заполните там fstab;
> Строчку в fstab не подскажите?

Сейчас предполагается, что в fstab будет уже /dev/mapper/... т.е. уже расшифрованный раздел.

> make-initrd
> вылетает с ошибкой
> add-module: No module "crypt_LUKS" found for kernel 3.0.3-std-def-alt0.M60P.1

Это понятно. make-initrd пытается по fstab узнать модуль файловой системы.
Я попробую определить его иначе, чтобы работало более железно.
Comment 10 aebirukov 2011-12-14 20:22:00 MSK
> Сейчас предполагается, что в fstab будет уже /dev/mapper/... т.е. уже
> расшифрованный раздел.
/etc/crypttab обрабатывается? Если нет, то где нужно прописать, что корневой раздел требует расшифровки?


> Это понятно. make-initrd пытается по fstab узнать модуль файловой системы.
> Я попробую определить его иначе, чтобы работало более железно.
Не могли бы вы описать как на данный момент (менее железно :)) можно настроить систему, чтобы при загрузке монтировался корневой раздел. Потому как в других системах зашифрованный раздел нужно прописывать в crypttab, а в ALT это эффекта не дало и непонятно как нужно делать.
Comment 11 Alexey Gladkov 2011-12-15 01:55:21 MSK
(В ответ на комментарий №10)

Прежде всего хотел бы оправдаться :)

Я не мантейнер cryptsetup:

$ giter acl sisyphus cryptsetup show
cryptsetup	naf shaba

я его использую, но не для рутового раздела и несколько нестандартно.

И второе, make-initrd-luks создавал kas@ для своих конфигураций, но некоторое время назад он покинул наш проект (sisyphus, altlinux). Я лишь создавал ядро make-initrd.

> /etc/crypttab обрабатывается? Если нет, то где нужно прописать, что корневой
> раздел требует расшифровки?

Статус /etc/crypttab стоит обсуждать не в этой баге :)

> Не могли бы вы описать как на данный момент (менее железно :)) можно настроить
> систему, чтобы при загрузке монтировался корневой раздел. Потому как в других
> системах зашифрованный раздел нужно прописывать в crypttab, а в ALT это эффекта 
> не дало и непонятно как нужно делать.

Можно обойтись без автодетекта и прописать всё руками, но если это не горит не наш метод :)
Comment 12 aebirukov 2011-12-15 12:18:24 MSK
(В ответ на комментарий №11)

Дело ясное, что дело тёмное :)

>Статус /etc/crypttab стоит обсуждать не в этой баге :)
На какие еще пакеты нужно развесить фич реквесты или баги, чтобы дело могло сдвинуться?

>Можно обойтись без автодетекта и прописать всё руками, но если это не горит не
>наш метод :)
Вы имеете ввиду образ initrd.img распаковать и внести изменения? Это интересно. Если не трудно, не могли бы вы описать какие изменения там нужно сделать?
Comment 13 Alexey Gladkov 2011-12-15 14:15:08 MSK
(В ответ на комментарий №12)
> На какие еще пакеты нужно развесить фич реквесты или баги, чтобы дело могло
> сдвинуться?

Вам стоит пообщаться с мантейнерами cryptsetup на тему поддержки crypttab.
 
> Вы имеете ввиду образ initrd.img распаковать и внести изменения? Это интересно.

Нет :) Я конечно не люблю людей, но не до такой степени.

> Если не трудно, не могли бы вы описать какие изменения там нужно сделать?

make-initrd на самом деле состоит из нескольких частей: автоугадав конфигурации и механизма, который собственно создаёт initrd. Сейчас у вас угадав не может автоматически определить конфигурацию, но это можно сделать вручную.

Для этого в /etc/initrd.mk укажите:

AUTODETECT = common resume
FEATURES = luks

# модуль для файловой системы
MODULES_ADD = ext4

# Алгоритм шифрования. Если у вас sha256, то можно это не писать.
LUKS_HASHES = twofish-generic 

и попробуйте сгенерировать inird с таким конфигом.
Comment 14 aebirukov 2011-12-15 19:09:18 MSK
> Для этого в /etc/initrd.mk укажите:
Попробую. А что в данном случае нужно писать в /etc/fstab?
/dev/mapper/что?
UUID?
Comment 15 Alexey Gladkov 2011-12-16 14:42:08 MSK
(В ответ на комментарий №14)
> > Для этого в /etc/initrd.mk укажите:
> Попробую. А что в данном случае нужно писать в /etc/fstab?

То что будет в fstab для make-initrd уже не важно. Он в него смотреть не будет.

> /dev/mapper/что?
> UUID?

Если вы пропишите UUID в fstab от /dev/mapper/что и укажете в fstab её файловую систему, то тогда если вы сделаете чрут на неё и выполние make-initrd, то автодетект определит, что у вас рут на зашифрованном разделе и тогда мой приведённый initrd.mk не нужен. Автоматика будет работать.
Comment 16 Kirill A. Shutemov 2011-12-16 16:04:37 MSK
Есть ещё один момент: текущая реализация (если я всё окончательно не забыл) будет пытаться расшифровать все разделы, что в общем случае не верно. Нужно на этапе автодетекта фиксировать какой путь нужно пройти что бы получить рашифрованый root.
Comment 17 Alexey Gladkov 2011-12-16 16:23:48 MSK
(В ответ на комментарий №16)
> Есть ещё один момент: текущая реализация (если я всё окончательно не забыл)
> будет пытаться расшифровать все разделы, что в общем случае не верно. Нужно на
> этапе автодетекта фиксировать какой путь нужно пройти что бы получить
> рашифрованый root.

На самом деле ты реализовал параметр luksdev, который если выставлен указывает какое устройство искать:

http://git.altlinux.org/people/legion/packages/make-initrd.git?p=make-initrd.git;a=blob;f=features/luks/data/lib/filters/luks;h=ea7fe7f7f2fe4eea9553854f84d59bf2a59b9247;hb=c914c9685dd20f4318848c1bf82512de0e3cbbab#l10

но забыл указать, что этот параметр нужно слушать. Поэтому сейчас его нельзя указать.
Comment 18 aebirukov 2011-12-16 18:44:33 MSK
> Если вы пропишите UUID в fstab от /dev/mapper/что и укажете в fstab её файловую
> систему, то тогда если вы сделаете чрут на неё и выполние make-initrd, то
> автодетект определит, что у вас рут на зашифрованном разделе и тогда мой
> приведённый initrd.mk не нужен. Автоматика будет работать.
Спасибо, почти получилось. Сделал как вы написали. Действительно автоматика сработала.
Теперь, при загрузке меня спрашивают пароль. Я его ввожу, но система не дожидаясь окончания ввода пишет:
No key available with this passphrase.
Проверил несколько раз. После первого введённого символа перескакивает на новую строку и "ругается".
Comment 19 aebirukov 2011-12-16 19:21:24 MSK
Если это как-то может помочь, то в последнем openSUSE зашифрованный корневой раздел монтируется корректно.
Comment 20 aebirukov 2011-12-16 20:22:45 MSK
В дополнение к комментарию №18
http://s014.radikal.ru/i326/1112/7b/c8550de1ffd9.jpg
Как видно из скриншота если продолжить и вручную сделать
cryptsetup luksOpen из под initramfs, то раздел подключается.
Баг?
Comment 21 Alexey Gladkov 2011-12-16 20:31:05 MSK
(В ответ на комментарий №20)
> cryptsetup luksOpen из под initramfs, то раздел подключается.
> Баг?

в момент монтирования выполняется команда:

cryptsetup --key-file=- luksOpen /dev/sda2 sda2-luks

не могли бы вы выполнить её вручную ?
Comment 22 aebirukov 2011-12-16 21:40:33 MSK
> cryptsetup --key-file=- luksOpen /dev/sda2 sda2-luks
Enter passphrase:
(initramfs) ls /dev/mapper
control sda2-luks

Пароль вводится, том подключается.

Кстати, а по поводу --key-file не могли бы уточнить? Где можно указать путь к key-file, чтобы initramfs сгенерировалась соответствующим образом для монтирования не по паролю, а по ключу?

Однако, конечно, хотелось бы решить вопрос с вводом пароля.
Comment 23 Alexey Gladkov 2011-12-17 02:40:11 MSK
(В ответ на комментарий №22)
> Пароль вводится, том подключается.

Скверно.
 
> Где можно указать путь к key-file, чтобы initramfs сгенерировалась
> соответствующим образом для монтирования не по паролю, а по ключу?

Это ещё предстоит реализовать.
 
> Однако, конечно, хотелось бы решить вопрос с вводом пароля.

Мне тоже интересно почему оно так себя ведёт
kas@ ?
Comment 24 Kirill A. Shutemov 2011-12-17 15:37:27 MSK
а что stdin в этом месте? попробуйте убрать --key-file=- вообще. он должен спросить с терминала по-умолчанию.
Comment 25 Alexey Gladkov 2011-12-17 16:19:20 MSK
(В ответ на комментарий №24)
> а что stdin в этом месте? попробуйте убрать --key-file=- вообще. он должен
> спросить с терминала по-умолчанию.

Кажется я знаю в чём дело. Сейчас я сделал так, что /dev/console открывалась сразу в init.

aebirukov@, вы можете проверить версию make-initrd из git ?
Comment 26 aebirukov 2011-12-17 21:43:55 MSK
Проверил. Не помогло.
Comment 27 Alexey Gladkov 2011-12-21 19:13:45 MSK
(В ответ на комментарий №26)
> Проверил. Не помогло.

Простите за задержку.

Сегодня создал зашифрованный с паролем раздел и загрузился с него в qemu. Пароль ввёлся весь.
Comment 28 aebirukov 2011-12-22 11:08:04 MSK
> Пароль ввёлся весь.
Странно. Посмотрите, пожалуйста, что не так.
Все действия из под VirtualBox.
Установлен ALTLinux 6.0, скопирован на зашифрованный раздел.
Затем, загрузился с livecd и:

[root@localhost ~]# mount /dev/sda2 /mnt/
Password: 
[root@localhost ~]# mount /dev/sda1 /mnt/boot/
[root@localhost ~]# mount --bind /dev/ /mnt/dev/
[root@localhost ~]# mount --bind /proc/ /mnt/proc/
[root@localhost ~]# mount --bind /sys/ /mnt/sys
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# chroot /mnt/
[root@localhost /]# rpm -q make-initrd
make-initrd-0.6.2-alt1
[root@localhost /]# rpm -q make-initrd-luks
make-initrd-luks-0.6.2-alt1
[root@localhost /]# make-initrd 
Guessed features: add-modules cleanup compress devmapper luks 
Adding LUKS support ...
Image is saved as /boot/initrd-3.0.3-std-def-alt0.M60P.1.img

[root@localhost /]# cat /etc/fstab
UUID="2829eb20-0787-499a-97e6-aceceeefb46a" /boot       ext2    defaults       00
# /dev/mapper/_dev_sdb2
UUID="7cda95cd-bc1a-4676-b91a-a1bcdf2e6b87"     / ext4  defaults        0      0

[root@localhost /]# grub-mkconfig -o /boot/grub/grub.cfg
Comment 29 aebirukov 2011-12-22 11:22:03 MSK
Дополнение:
Сейчас попробовал выбрать в меню grub (failsave mode)
Пароль ввёлся весь, но загрузка дальше не идёт. Остановилась на строчке:
initrd: udev: Running luks handler ...


http://s15.radikal.ru/i188/1112/2f/3727311ac805.jpg
Comment 30 aebirukov 2011-12-22 11:29:54 MSK
Еще дополнение:
http://s15.radikal.ru/i189/1112/b9/e219726673a6.jpg
Comment 31 Alexey Gladkov 2011-12-22 14:48:03 MSK
Я к сожалению не знаю про VirtualBox ... я проверял на qemu из сизифа.

Проверьте, правильный ли вы указали root=UUID=... т.е. указали ли вы UUID от /dev/mapper/... ?
Comment 32 aebirukov 2011-12-22 16:01:50 MSK
> Я к сожалению не знаю про VirtualBox ... я проверял на qemu из сизифа.
Вряд ли может быть разница. Тем более, что failsafe пароль вводить даёт. В чем же дело?

> Проверьте, правильный ли вы указали root=UUID=... т.е. указали ли вы UUID от
> /dev/mapper/... ?
Да, проверил.

/dev/sdb2: UUID="a07e14e6-7bee-48ac-99ea-39aa168cd44d" TYPE="crypto_LUKS" 
/dev/mapper/_dev_sdb2: UUID="7cda95cd-bc1a-4676-b91a-a1bcdf2e6b87" TYPE="ext4" 
[root@host-15 etc]# cat /etc/fstab|grep 7cda
UUID="7cda95cd-bc1a-4676-b91a-a1bcdf2e6b87"     / ext4  defaults        0       0

Вы проверяли на версии make-initrd из Сизифа или git? Или они сейчас одинаковые?
Comment 33 Alexey Gladkov 2011-12-22 16:12:53 MSK
(В ответ на комментарий №32)
> /dev/sdb2: UUID="a07e14e6-7bee-48ac-99ea-39aa168cd44d" TYPE="crypto_LUKS" 
> /dev/mapper/_dev_sdb2: UUID="7cda95cd-bc1a-4676-b91a-a1bcdf2e6b87" TYPE="ext4" 
> [root@host-15 etc]# cat /etc/fstab|grep 7cda
> UUID="7cda95cd-bc1a-4676-b91a-a1bcdf2e6b87"     / ext4  defaults        0      
> 0

Это всё хорошо, но что вы в bootloader'е прописываете в cmdline ?
Comment 34 aebirukov 2011-12-22 16:23:37 MSK
> Это всё хорошо, но что вы в bootloader'е прописываете в cmdline ?
Ничего, а надо что-то?
Comment 35 Alexey Gladkov 2011-12-22 16:43:05 MSK
(В ответ на комментарий №34)
> > Это всё хорошо, но что вы в bootloader'е прописываете в cmdline ?
> Ничего, а надо что-то?

Разумеется. Если вы выполните команду "cat /proc/cmdline" на загруженной системе, то увидите с какими параметрами было загружено ядро. В частности вы увидите, что передаётся параметр root=ЧТО_ТО, где ЧТО_ТО указывает тем или иным образом на корень. Эта информация не "прошивается" в initrd при его создании. Один и тот же initrd может использоваться для загрузки с разных источников корневой файловой системы.

Так же могут указываться другие параметры, которые управляют поведением initrd и/или последующей системой.

Пропишите в загрузчик параметр root=UUID=7cda95cd-bc1a-4676-b91a-a1bcdf2e6b87 (прямо как я указал).
Comment 36 aebirukov 2011-12-22 17:30:36 MSK
>(прямо как я указал).
Спасибо, огромное - с Божьей помощью и помощью legion@ мне удалось таки загрузиться с корневого зашифрованного раздела :)

В grub.cfg убрал опцию quiet=1, именно она не давала вводить пароль полностью.
Теперь всё работает.
Получается "автоматика" в части make-initrd работает хорошо. grub.cfg правильный автоматом не генерируется. Request сделать?

Теперь хотелось бы вернуться первоначальному вопросу. Вход по ключу, а не по паролю реально сделать? Пусть даже не автоматом пока. Где нужно что поправить?
Comment 37 Alexey Gladkov 2011-12-22 17:41:46 MSK
(В ответ на комментарий №36)
> Получается "автоматика" в части make-initrd работает хорошо. grub.cfg
> правильный автоматом не генерируется. Request сделать?

Это не задача make-initrd. У нас есть пакет bootloader-utils, утилиты которого вызываются при обновлении ядра и именно они обновляют записи в загрузчиках (grub или lilo). 

Когда вы руками меняете схему загрузки, то никакой автоматики не будет.

> Теперь хотелось бы вернуться первоначальному вопросу. Вход по ключу, а не по
> паролю реально сделать? Пусть даже не автоматом пока. Где нужно что поправить?

Пока это сделать нельзя т.к. make-initrd работает таким образом, что не может ждать нескольких устройств сразу. Я думаю над этой проблемой и багу не закрываю.
Comment 38 aebirukov 2011-12-22 22:19:58 MSK
>(grub или lilo).
Да, я это и имел ввиду.

На уже рабочей системе при попытке сгенерировать grub.cfg:
# grub-mkconfig -o /boot/grub/grub.cfg
/usr/sbin/grub-probe: error: cannot stat `/dev/sdb2-luks'.

Но если поставить символическую ссылку на /dev/mapper/sdb2-luks, то генерация проходит успешно. Машина загружается. (Правда у меня почему-то из под VirtualBox работает только когда vga=normal, надо вживую потестировать.)
Comment 39 aebirukov 2011-12-23 10:31:04 MSK
> Пока это сделать нельзя т.к. make-initrd работает таким образом, что не может
> ждать нескольких устройств сразу. Я думаю над этой проблемой и багу не
> закрываю.

А если ключ размещать на /boot разделе. А /boot раздел на flash накопителе?
Он ведь уже подмонтирован - его ждать не надо.

Вроде, удобно. Как вы считаете?
Comment 40 Alexey Gladkov 2011-12-23 11:01:58 MSK
Это зависит от задачи. На своём рабочем ноуте я держу /home на внешнем шифрованном носителе, а корень системы на обычном разделе.
Comment 41 aebirukov 2011-12-23 11:09:21 MSK
> Это зависит от задачи. На своём рабочем ноуте я держу /home на внешнем
> шифрованном носителе, а корень системы на обычном разделе.

Т.е. используя текущий make-initrd уже можно реализовать схему с ключом размещённым на разделе /boot?

Если не трудно, не могли бы вы описать как это сделать?
Comment 42 Alexey Gladkov 2011-12-23 12:56:24 MSK
(В ответ на комментарий №37)
> > Теперь хотелось бы вернуться первоначальному вопросу. Вход по ключу, а не по
> > паролю реально сделать? Пусть даже не автоматом пока. Где нужно что поправить?
> 
> Пока это сделать нельзя т.к. make-initrd работает таким образом, что не может
> ждать нескольких устройств сразу.

Средствами make-initrd реализовать схему с ключём пока нельзя.
Comment 43 aebirukov 2011-12-24 18:35:36 MSK
> Средствами make-initrd реализовать схему с ключём пока нельзя.
А мне это удалось.

# ls -l /etc/root.key
-rw------- 1 root root 56 Дек 23 21:05 /etc/root.key

# cat /etc/initrd.mk.d/key.mk 
include /etc/initrd.mk

IMAGE_SUFFIX = -key

PUT_FILES += \
        /etc/root.key

$ cat make-initrd-0.6.2/features/luks/data/lib/handlers/050-luks 
#!/bin/sh

. /scripts/functions

KEY="/etc/root.key"

nameluks=
password=
handler() {
        nameluks="${INIT_LUKS##*/}-luks"

        # skip if $nameluks has already exist
        dmsetup info "$nameluks" >/dev/null 2>&1 &&
                return 0 ||:


        if [ -e $KEY ]; then
             cryptsetup --key-file=$KEY luksOpen "$INIT_LUKS" "$nameluks"
        else
            cryptsetup luksOpen "$INIT_LUKS" "$nameluks"
        fi

        retcode="$?"

        if [ "$retcode" != "0" ]; then
                error "Unable to activate LUKS: $retcode"
                return 1
        fi
}

rc=0
for e in "$handler_eventdir"/luks/*; do
        [ -f "$e" ] || break                                                                                                                         
                                                                                                                                                     
        ( . "$e"; handler; ) ||
                rc=1
done

exit $rc

Как легко понять, принцип в том, что root.key запаковывается в образ initramfs, а там считывается слегка изменённым make-initrd-luks. Если root.key в образе найден не будет - система будет ожидать ввода пароля.

/boot следует размещать на внешнем носителе. Собственно, этот носитель и будет ключом.
Comment 44 Alexey Gladkov 2012-01-02 23:59:28 MSK
В git добавлена поддержка загрузки с шифрованным корнем на LUKS и ключём от этого раздела на внешнем носителе. Для этого добавлен ключ:

luks_key=<path>
luks_key=<path>:<keydev>
luks_key=<path>:<keydev>:<luksdev>

path - путь до ключа, если keydev не задан, то этот путь на самом initrd;
keydev - устройство на котором находится ключ. Оно задаётся как и root= т.е. UUID=<uuid> или LABEL=<label> ...
luksdev - раздел для которого нужно применить ключ.
Comment 45 aebirukov 2012-01-08 00:23:48 MSK
> path - путь до ключа, если keydev не задан, то этот путь на самом initrd;
> keydev - устройство на котором находится ключ. Оно задаётся как и root= т.е.
> UUID=<uuid> или LABEL=<label> ...
> luksdev - раздел для которого нужно применить ключ.

С ключом интегрированным в initrd -- работает.

USB накопитель с ключом что-то у меня не монтируется.

И по UUID и по LABEL пробовал
luks_key=/etc/root.key:UUID=00f42648-1a35-4c60-a7f3-59727e7c6834
luks_key=/etc/root.key:LABEL=bootkeyflash

Так хоть пишу?

Останавливается на udev: что-то там luks handler
Comment 46 Alexey Gladkov 2012-01-08 00:36:24 MSK
(В ответ на комментарий №45)
> USB накопитель с ключом что-то у меня не монтируется.

FEATURES += usb

?

> Так хоть пишу?

Да.
Comment 47 aebirukov 2012-01-08 15:18:54 MSK
> FEATURES += usb
Работает, Спасибо.
Comment 48 Alexey Gladkov 2012-08-05 01:28:40 MSK
Исправлено.