Автоматическое монтирование раздела LUKS не удается при загрузке

Автоматическое монтирование раздела LUKS не удается при загрузке

У меня зашифрованная установка Ubuntu 14.04 Desktop. Зашифрованный корневой раздел создается с использованием параметров установщика Ubuntu по умолчанию (варианты «Стереть диск и установить Ubuntu» и «Зашифровать новую установку Ubuntu»). Эта часть работает отлично (запрашивает пароль при загрузке и открывает корневой раздел и раздел подкачки).

Позже я добавил второй диск, отдельно зашифрованный с помощью ключевого файла, хранящегося в корневом разделе. Намерение было сделать так, чтобы он открывался автоматически, как только открывается корневой раздел. Для этого второй диск был добавлен в crypttab (по UUID), а его зашифрованная файловая система — в fstab (по метке, точке монтирования /stg).

При загрузке, после ввода основного пароля дешифрования, получаю это:Произошла ошибка при монтировании /stg. Нажмите S, чтобы пропустить монтирование, или M для ручного восстановления.

Странно то, что если я нажмуМи просто запустить mount -a, он просто успешно монтируется. Я не вижу ничего подозрительного в /var/log/syslog.

Что с этим делать? Что я могу проверить, чтобы диагностировать проблему?


[UPD - добавлены некоторые подробности]На диске sdbесть таблица разделов MBR с одним разделом. Зашифрованная файловая система была инициализирована с помощью следующих команд:

cryptsetup luksFormat /dev/sdb1 /root/stg.key
cryptsetup luksOpen /dev/sdb1 stg_crypt -d/root/stg.key
mkfs.ext4 /dev/mapper/stg_crypt -Lstg-tmp

/etc/crypttab(фактические uuid заменены текстом "uuid-of-..." для краткости):

# this entry was created by Ubuntu installer
sda5_crypt UUID=uuid-of-sda5 none luks,discard

# this entry was added by me
stg_crypt  UUID=uuid-of-sdb1 /root/stg.key luks,discard

/etc/fstab:

# these entries were created by Ubuntu installer
/dev/mapper/ubuntu--vg-root   /      ext4 errors=remount-ro 0 1
UUID=uuid-of-sda1             /boot  ext2 defaults          0 2
/dev/mapper/ubuntu--vg-swap_1 none   swap sw                0 0

# this entry was added by me
LABEL=stg-tmp                 /stg   ext4 errors=remount-ro 1 2

решение1

Как ни странно, замена ссылки на метку fstabна путь к устройству решает проблему! То есть: LABEL=stg-tmpизменено на /dev/mapper/stg_crypt.

Я также попробовал ссылку UUID, это не сработало. Так что, по-видимому, ссылки LABEL и UUID во время загрузки работают для физических разделов, но не работают для зашифрованных разделов. Но они работают mount -aдля любых разделов.

Это не очень удовлетворительное решение (например, отсутствует объяснение), но оно решает рассматриваемую проблему, так что, думаю, на данный момент это нормально.

решение2

Первая мысль — intramfs НЕ видит ключевой файл (нормальное поведение)

Несколько исправлений включают в себя:

добавление/создание резервной парольной фразы для /stg, как указано здесь

Добавление отката к Luks (прокрутите вниз до раздела «Добавление резервной парольной фразы»)

добавление dd if=/dev/usbkey bs=512 skip=4 count=8 | cryptsetup luksOpen /dev/md0 luksVolume --key-file=- && mount /dev/mapper/luksVolume /mnt/

при создании или использовании cryptsetup-reencrypt (в репозиториях, но не установлен по умолчанию)

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