У меня есть настройка устройства, которую я не знаю, как правильно смоделировать с помощью systemd:
Установка
У меня есть следующая установка:
---------
| гора | /мнт/*
---------
| А
4. размонтировать /mnt/* | | 3. смонтировать /dev/data/* /mnt/*
в |
---------
| ЛВМ | /dev/mapper/data-*, /dev/data/*
---------
| А
5. vgchange -an | | 2. автоматический или `vgchange -a y`
в |
---------
| ЛУКС | /dev/картограф/decr_device
---------
| А
6. cryptsetup luksЗакрыть | | 1. cryptsetup luksOpen /dev/sdb decr_device ...
/dev/mapper/decr_device v |
---------
| Жесткий диск | /dev/sdb
---------
Итак, есть несколько этапов (искусственных) устройств. Шаги 1, 2 и 3 необходимы для монтирования разделов. Шаги 4, 5 и 6 необходимы для шифрования/улучшения. Закройте жесткий диск еще раз.
Эта проблема
Я хочу выполнять все шаги в systemd на пошаговой основе (чтобы каждый шаг стал отдельной единицей).
Systemd делает шаги 1 и 6 более менее автоматически, когда я предоставляю правильный /etc/crypttab
. Он также правильно выполняет шаги 3 и 4, когда я предоставляю правильный /etc/fstab
. Однако я не нашел возможности получить шаги 2 и 5 в systemd.
Я пытался:
systemctl add-requires dev-data-stuff.device systemd-cryptsetup@decr_device.service
какие ошибки с:
Не удалось добавить зависимость: файл модуля dev-data-stuff.device не существует.
Я решил (перезаписать) dev-data-stuff.device с помощью некоторого ручного сценария, который вызывает vgchange -a ...
при запуске или выходе, но не нашел никакой документации, чтобы сделать это с файлом «устройства». Вы знаете способ?
Забавный факт: система монтирует это уже автоматически. Я думаю, потому что systemd расшифровывает decr_device
, LVM затем автоматически создает /dev/данные/*
, которые запускают скрипт монтирования с помощью udev. Тем не менее, я хочу, чтобы цепочка зависимостей была смоделирована в systemd в целом, чтобы иметь возможность выполнять их вручную. В настоящее время есть способ (кроме ручного) разобрать все это, то есть выполнить шаги 4-6.