• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Daemon (mountet Truecrypt-LW) startet nur manuell

Hallo zusammen,

ich habe ein init-Skript von der Datei /etc/init.d/skeleton abgeleitet, aber ich kriege es einfach nicht zum automatischen Starten beim Hochfahren! Manuell kann ich den Dienst problemlos ein- und ausschalten, also mit rcsupermounting start und rcsupermounting stop. Im Runlevel-Editor habe ich den Dienst für den automatischen Start im Runlevel 5 eingetragen. Ich habe wirklich alles, alles probiert und ewig dieses Forum und gefühlt den gesamten Rest des Internets durchgelesen - ohne Erfolg. Hier ist das Skript:

http://pastebin.com/9M5v1Thh

Wie man sieht, wird die Anwendung truecrypt gestartet, um ein verschlüsseltes Laufwerk einzubinden. Das ist trotz Klartext-Angabe des Passworts sicher, weil das Linux-System, also auch das init-Skript, auf einer verschlüsselten Partition liegen, die beim Booten (mit einem anderen Passwort) entschlüsselt wird, und weil das Init-Skript selbst nur von Root lesbar ist, wenn das System einmal läuft.

Kann irgendeiner von Euch Experten den Fehler in meinem init-Skript finden? Oder weigert sich truecrypt vielleicht, als Dienst gestartet zu werden?

Danke - Martin
 

lOtz1009

Moderator
Teammitglied
Ohne jetzt das Skript zu lesen: wie hast du den Dienst eingerichtet? Per insserv oder nur durch Kopieren des Skripts?
 
Ich habe die Ausgabe von dmesg hier ins Netz gestellt; allerdings finde ich darin keinen Hinweis auf mein init-Skript. Kann aber an mir liegen ;)

http://pastebin.com/uwN4ZJWE
 
@josef-wien: Ich habe jetzt $local_fs in die Requires reingenommen (es geht aber dennoch nicht). Allerdings weiß ich auch nicht, woran ich erkennen kann, wovon das Skript abhängt: Meiner Meinung nach ist zu Beginn des 5. Runlevels schon alles da, was truecrypt zum Entschlüsseln der Daten-Partition braucht.

Andererseits lässt sich der Dienst im vollständig hochgefahrenen System manuell starten - es scheint wohl dann etwas zur Verfügung zu stehen, was zu Beginn des 5. Runlevels noch nicht da ist. Aber wie finde ich heraus, was das ist?
 
Hast Du
insserv -r script
insserv script
oder "deaktivieren - aktivieren" in YaST ausgeführt, damit die Dateien /etc/init.d/.depend* aktualisiert werden? Wenn ja, sollte truecrypt wohl Meldungen zur Fehlererkennung in /var/log/boot.msg ausgeben.
 
Ich habe "deaktivieren - aktivieren" in YaST ausgeführt und neu gestartet. Der Inhalt der boot.msg ...

http://pastebin.com/E5iDZKzD

... enthält kein Schlagwort "truecrypt" oder "supermounting".

Meine .depend.start steht hier:

http://pastebin.com/5n9nqMvs

Kann man daraus vielleicht etwas über die Abhängigkeiten ablesen?
 
nitram888 schrieb:
Ich habe "deaktivieren - aktivieren" in YaST ausgeführt und neu gestartet.
So wie ich YaST einschätze, wirst Du dazwischen den Runlevel-Editor beenden müssen, denn sonst hat sich aus Sicht von YaST ja nichts geändert. Manchmal sind Konsole-Befehle doch die einfachere Lösung.

Bei mir kommt der Begriff in .depend.start 3mal und in .depend.stop 1mal vor, in meiner boot.msg finde ich mangels installiertem truecrypt
Code:
/usr/bin/truecrypt not installed
...
Skipped services in runlevel 5: supermounting
...
/usr/bin/truecrypt not installed
bzw.
Code:
Starting FOO startproc: cannot stat /usr/bin/truecrypt: No such file or directory
skipped
...
Skipped services in runlevel 5: supermounting
...
Shutting down FOO /etc/init.d/supermounting: line 384: /usr/bin/truecrypt: No such file or directory
failed
bei deaktiviertem test (die hohe Zeilennummer entsteht durch viele Kommentarzeilen beim Kopieren von pastebin, die Funktion DOWNLOAD habe ich zu spät entdeckt). Formal paßt also alles, sachlich kann ich zu truecrypt nichts beitragen.
 
Es läuft!

Das Problem war, dass truecrypt beim Starten im init-Skript noch einmal nach Keyfiles und einer Boolean-Variable (--protect-hidden) fragte, und zwar interaktiv. Als ich truecrypt zum ersten Mal als root ausgeführt habe, kamen diese Abfragen auch, aber danach nicht mehr, da sie bereits nach der dieser Abfrage in der Datei .TrueCrypt/Configuration.xml hinterlegt worden waren. Vermutlich werden die init-Skripte mit einem anderen (System-?) Benutzer ausgeführt, sodass hier die Konfigurationsdatei im Root-Heimatverzeichnis nix genützt hat. Nachdem ich die fraglichen Angaben dem truecrypt-Kommando als Parameter mitgegeben hatte, ging das Mounten im init-Skript. Mein Kommando sieht nunmehr so aus:
/usr/bin/truecrypt --mount /dev/sda5 /media/daten --password=meinextremgeheimesundunheimlichlangespasswort --fs-options="rw,sync,uid=1000,umask=007" --keyfiles="" --protect-hidden=no
Vielen Dank für Eure Hilfe, ganz besonders @josef-wien!
 
nitram888 schrieb:
Vermutlich werden die init-Skripte mit einem anderen (System-?) Benutzer ausgeführt
Der Benutzer ist root, wie Du z. B. im Skript mit /usr/bin/whoami feststellen kannst. Aber für die Init-Skripte ist eine eigene Systemumgebung vorhanden, so ist z. B. die Variable $HOME auf / gesetzt (bei Bedarf kannst Du ja die Ausgabe von set im jeweiligen Init-Skript mit der Ausgabe in einer Konsole vergleichen), und truecrypt sucht wohl kaum mit der genauen Angabe /root/.TrueCrypt/Configuration.xml.
 
Oben