Сбой автозагрузки раздела LUKS при загрузке
У меня есть зашифрованная установка Ubuntu 14.04 Desktop. Зашифрованный корневой раздел создается с использованием параметров по умолчанию установщика Ubuntu (варианты "Стереть диск и установить Ubuntu" и "Зашифровать новую установку Ubuntu"). Эта часть работает нормально (она запрашивает пароль при загрузке и открывает разделы root и swap).
Позже я добавил второй диск, отдельно зашифрованный с помощью ключевого файла, хранящегося в корневом разделе. Предполагалось, что он будет открыт автоматически, как только откроется корневой раздел. Для этого второй диск был добавлен в crypttab (по UUID), а его зашифрованная файловая система - в fstab (по метке, точке монтирования). /stg
).
При загрузке, после ввода основного пароля расшифровки, я получаю следующее: Произошла ошибка при монтировании / stg. Нажмите S, чтобы пропустить монтаж, или M, чтобы восстановить вручную.
Странная вещь, если я нажимаю 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 (фактические uuids для краткости заменены текстом "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
2 ответа
Как ни странно, замена ссылки на ярлык в fstab
с путем к устройству исправляет проблему! То есть: LABEL=stg-tmp
изменился на /dev/mapper/stg_crypt
,
Я также попробовал ссылку UUID, она не работала. Таким образом, очевидно, что ссылки LABEL и UUID во время загрузки работают для физических разделов, но не работают для зашифрованных разделов. Но они работают в mount -a
для любых перегородок.
Это не очень удовлетворительно, поскольку решения идут (например, ему не хватает объяснения), но это решает проблему под рукой, поэтому я думаю, что пока все нормально..
Первая мысль: 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 (в репозитории, но не по умолчанию установлено)