
У меня зашифрованная установка 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 (в репозиториях, но не установлен по умолчанию)