cryptsetup, die zweite

Andreas Mueller mailinglists at andreas-mueller.com
Thu Jul 15 22:31:20 UTC 2004


Hallo,

Roland Wolters wrote:
[snip]
> nun habe ich da aber zwei Probleme:
> - rcS.d gibt es bei Fedora nicht, welches Verzeichnis ist dort das
> entsprechende? Wie gesagt, es soll for fstab geschehen.

Es gibt für jedes Runlevel eigene Verzeichnisse in /etc/rc.d/:

$ ll /etc/rc.d/
insgesamt 68
drwxr-xr-x  2 root root  4096 14. Jul 00:03 init.d
-rwxr-xr-x  1 root root  2352 17. Mär 00:43 rc
drwxr-xr-x  2 root root  4096 14. Jul 00:03 rc0.d
drwxr-xr-x  2 root root  4096 14. Jul 00:03 rc1.d
drwxr-xr-x  2 root root  4096 14. Jul 00:03 rc2.d
drwxr-xr-x  2 root root  4096 14. Jul 00:03 rc3.d
drwxr-xr-x  2 root root  4096 14. Jul 00:03 rc4.d
drwxr-xr-x  2 root root  4096 14. Jul 00:03 rc5.d
drwxr-xr-x  2 root root  4096 14. Jul 00:03 rc6.d
-rwxr-xr-x  1 root root   220 23. Jun 2003  rc.local
-rwxr-xr-x  1 root root 25402 12. Jul 21:36 rc.sysinit

In rc.local kannst du das leider nicht eintragen, da diese Datei nach 
allen anderen aufgerufen wird, es in rc.sysinit einzutragen wäre 
"unsauber". Dein Skript muss also für jedes Runlevel (bis auf 0 und 6) 
gestartet werden, und somit musst du je einen Link in den 
entsprechenden Verzeichnissen erstellen. Dumm ist dabei nur, dass 
einmal beim booten starten ja ausreicht, so würde das Skript bei jedem 
Runlevel-Wechsel gestartet werden.

Hat da jemand noch andere Ideen?

> - wie muss ich das Skript verändern, damit auch beim runterfahren
> cryptsetup remove maildir
> ausgeführt wird? Damit ich es also als K99cryptinit in das rcS.d
> Äquivalent legen kann?

da könntest du zwei Links erstellen (in /etc/rc.d/rc0.d 
und /etc/rc.d/rc6.d), die zum Beispiel K99cryptinit heißen. Im Skript 
selbst steht in der Variable $0 das Kommando, mit dem es aufgerufen 
wurde. Wenn das Skript über den Link aufgerufen wurde z.B. 
"/etc/rc.d/rc0.d/K99cryptinit" (bzw. rc6.d).

Entsprechend modifiziertes Skript (/etc/init.d/cryptinit):

if [ -b /dev/mapper/maildir ]; then 
   /usr/bin/cryptsetup remove maildir
fi 
if [ -z `echo $0 | grep "K99cryptinit" ]; then
   /usr/bin/cryptsetup create maildir /dev/sda9 
fi

Die if-Abfrage bewirkt, dass "cryptsetup create maildir" nur aufgerufen 
wird, wenn das Skript *nicht* mit "K99cryptinit" gestartet wird.

Alternativ kannst du natürlich auch ein zweites Skript erstellen, das 
nur für Shutdown/Reboot zuständig ist.

> Wie üblich für jede Hilfe dankbar,
> Roland

Ich hoffe, dass das halbwegs verständlich war. Ansonsten nochmal 
nachfragen...

Grüße,
Andreas

P.S.
Muss cryptsetup überhaupt beim Runterfahren aufgerufen werden? Ich kenne 
mich damit nicht aus.





More information about the de-users mailing list