Am o configurare a dispozitivului pe care nu știu cum să modelez corect cu systemd:
Pregatirea
Am urmatoarea configuratie:
---------
| montură | /mnt/*
---------
| A
4. umount /mnt/* | | 3. montați /dev/data/* /mnt/*
v |
---------
| LVM | /dev/mapper/data-*, /dev/data/*
---------
| A
5. vgchange -a n | | 2. automat sau `vgchange -a y`
v |
---------
| LUKS | /dev/mapper/decr_device
---------
| A
6. cryptsetup luksClose | | 1. cryptsetup luksOpen /dev/sdb decr_device...
/dev/mapper/decr_device v |
---------
| HDD | /dev/sdb
---------
Deci există mai multe etape ale dispozitivelor (artificiale). Pasul 1, 2 și 3 sunt necesari pentru a monta partițiile. Pasii 4, 5 și 6 sunt necesari pentru a cripta/luks Închideți HDD-ul din nou.
Problema
Vreau să efectuez toți pașii din systemd pe o bază per pas (deci fiecare pas devine o unitate proprie).
Systemd face pasul 1 și 6 mai puțin automat când ofer un corect /etc/crypttab
. De asemenea, efectuează corect pașii 3 și 4 atunci când ofer un corect /etc/fstab
. Cu toate acestea, nu am găsit posibilitatea de a introduce pașii 2 și 5 în systemd.
Am încercat:
systemctl add-requires dev-data-stuff.device systemd-cryptsetup@decr_device.service
care erori cu:
Nu s-a putut adăuga dependența: fișierul unitar dev-data-stuff.device nu există.
M-am gândit să (supra)scriu dev-data-stuff.device cu un script manual care apelează vgchange -a...
la pornire sau la ieșire, dar nu am găsit nicio documentație care să facă asta cu un fișier „dispozitiv”. Știi o cale?
Fapt amuzant: sistemul montează acest lucru deja automat. Presupun, pentru că systemd decriptează decr_device
, LVM creează apoi automat /dev/data/*
, care declanșează scriptul de montare cu ajutorul udev. Cu toate acestea, vreau să am lanțul de dependențe modelat în systemd în întregime pentru a le putea executa și manual. În prezent, există acum o modalitate (cu excepția manuală) de a dezasambla întregul material, adică executând pașii 4-6.