Недавно перешел с OpenRC на Systemd. Корень не зашифрован, но есть другой диск с LUKS. При загрузке Systemd запускает cryptsetup, который спрашивает пароль для этого диска, указанного в /etc/crypttab, и открывает его, создавая устройство /dev/mapper/crypt.
До этой точки всё работает.
Однако, в /etc/fstab есть запись для /dev/mapper/crypt, который должен смонтироваться на /mnt/crypt. Systemd автоматически создаёт юнит для монтирования - вместе с неявной зависимостью от dev-mapper-crypt.device.
И выходит так, что устройство /dev/mapper/crypt появляется, но юнит dev-mapper-crypt.device не срабатывает, поскольку ждёт события udev.
Но cryptsetup не посылает соответствующих событий udev для устройства /dev/mapper/crypt, и загрузка стопорится. Наглухо. Наличие /dev/mapper/crypt Systemd просто не видит.
Это как-то лечится? Умолчальные зависимости можно отключить с помощью строки DefaultDependencies=no, а вот неявные, судя по странице https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html - нельзя.