Назад | Перейти на главную страницу

Какая неисправная зависимость во время настройки криптографии systemd?

Я использую сервер Ubuntu 16.04 LTS на виртуальной машине с одним незашифрованным жестким диском для / и дополнительный зашифрованный LUKS для некоторых произвольных данных. Зашифрованный диск открывается и монтируется с паролем вручную в оболочке после правильной загрузки системы и входа в систему. Это работает, как ожидалось.

Проблема в том, что systemd пытается что-то сделать с этим зашифрованным диском уже во время загрузки, терпит неудачу, запускает таймауты и после этого перемещается вперед, что требует более минуты времени загрузки.

В предыдущих версиях Ubuntu он автоматически запрашивал ключ для разблокировки диска, но это уже не работало должным образом для UB 14.04 и не работает сейчас. systemd не печатает текст, в котором я должен ввести пароль, нет подсказки или чего-либо еще. Он просто распознает ошибки в том, что хочет сделать, и через некоторое время продолжает работу.

Я не понимаю, в чем на самом деле проблема и почему systemd вообще хочет что-то делать, даже если он не запрашивает пароль или что-то подобное. Было бы здорово, если бы кто-нибудь мог направить меня в правильном направлении: либо как заставить systemd правильно запрашивать пароль, либо заставить его вообще не делать то, что он делает с моим устройством. Не уверен, что предпочитаю сейчас. ;-)

Ошибка systemd выводит:

May  1 01:28:23 example.org systemd[1]: dev-disk-by\x2duuid-7d39d2ed\x2df91f\x2d456e\x2daa31\x2d851cfe48de1b.device: Job dev-disk-by\x2duuid-7d39d2ed\x2df91f\x2d456e\x2daa31\x2d851cfe48de1b.device/start timed out.
May  1 01:28:23 example.org systemd[1]: Timed out waiting for device dev-disk-by\x2duuid-7d39d2ed\x2df91f\x2d456e\x2daa31\x2d851cfe48de1b.device.
May  1 01:28:23 example.org systemd[1]: Dependency failed for Cryptography Setup for mnt_luks_crypt.
May  1 01:28:23 example.org systemd[1]: Dependency failed for dev-mapper-mnt_luks_crypt.device.
May  1 01:28:23 example.org systemd[1]: dev-mapper-mnt_luks_crypt.device: Job dev-mapper-mnt_luks_crypt.device/start failed with result 'dependency'.
May  1 01:28:23 example.org systemd[1]: systemd-cryptsetup@mnt_luks_crypt.service: Job systemd-cryptsetup@mnt_luks_crypt.service/start failed with result 'dependency'.
May  1 01:28:23 example.org systemd[1]: dev-disk-by\x2duuid-7d39d2ed\x2df91f\x2d456e\x2daa31\x2d851cfe48de1b.device: Job dev-disk-by\x2duuid-7d39d2ed\x2df91f\x2d456e\x2daa31\x2d851cfe48de1b.device/start failed with result 'timeout'.

Это что-то говорит о неудачных зависимостях, но я нигде не вижу, что это такое. Конечно, я не настраивал сам systemd для работы с этим устройством. Единственное, что я сделал, это добавил запись в /etc/fstab вроде следующего:

/dev/mapper/mnt_luks_crypt /mnt/luks ext4 errors=remount-ro,noauto 0 2

Я знаю, что systemd их обрабатывает, но из того, что я прочитал в документы это должно чтить noauto также. Так что-то не так с моими вариантами?

Еще не пробовал, но думаю, что могу обойти долгое время ожидания, используя следующие два варианта:

x-systemd.device-timeout=
x-systemd.mount-timeout=

Или есть способ отключить automount для этой строки в целом? x-systemd.automount кажется только флагом, ничего относительно false.

Спасибо!

Теперь я уверен, что noauto в /etc/fstab не был должным образом / полностью соблюден, потому что он не был указан для /etc/crypttab также:

https://www.freedesktop.org/software/systemd/man/crypttab.html#noauto

После добавления его туда же ошибка немного изменилась:

Aug 22 22:27:07 example.org systemd[1]: dev-disk-by\x2duuid-7d39d2ed\x2df91f\x2d456e\x2daa31\x2d851cfe48de1b.device: Job dev-disk-by\x2duuid-7d39d2ed\x2df91f\x2d456e\x2daa31\x2d851cfe48de1b.device/start timed out.
Aug 22 22:27:07 example.org systemd[1]: Timed out waiting for device dev-disk-by\x2duuid-7d39d2ed\x2df91f\x2d456e\x2daa31\x2d851cfe48de1b.device.
Aug 22 22:27:07 example.org systemd[1]: Dependency failed for Cryptography Setup for mnt_luks_crypt.
Aug 22 22:27:07 example.org systemd[1]: systemd-cryptsetup@mnt_luks_crypt.service: Job systemd-cryptsetup@mnt_luks_crypt.service/start failed with result 'dependency'.
Aug 22 22:27:07 example.org systemd[1]: dev-disk-by\x2duuid-7d39d2ed\x2df91f\x2d456e\x2daa31\x2d851cfe48de1b.device: Job dev-disk-by\x2duuid-7d39d2ed\x2df91f\x2d456e\x2daa31\x2d851cfe48de1b.device/start failed with result 'timeout'.

Строки, содержащие dev-mapper-mnt_luks_crypt.device ушли сейчас. Но что-то все еще происходит и происходит сбой, которого я не понимаю, и systemd не хватает подробностей для регистрации.

Для меня это была ошибочная строка в fstab. Неправильная строка была совершенно не связана с crypttab или зашифрованным томом, что еще больше сбивало с толку.

Попробуйте отменить все, что вы изменили, или закомментировать любую добавленную строку. Затем перезагрузитесь и вернитесь к редактированию fstab; перемонтируйте вручную, чтобы убедиться, что с вашими изменениями все в порядке.