Hallo Liste, ich habe hier ein ein etwas lästiges Problem: Meine "subjektiv wichtigen" Daten liegen auf einer verschlüsselten Platte. Das betrifft auch die daten von mysql. Soweit läuft alles seit vielen, vielen Monden perfekt.Nur ein Effekt ist äußerst lästig: Beim Systemstart muss ich natürlich die Passphrase eingeben. Während das system darauf wartet werden aber im Hintergrund diverse Dienste munter weiter gestartet. So auch mysql, welches dann aber nicht zu seinen Daten kommt und daher wieder beendet. Nach dem "fertigen" Systemstart läuft dann immer alles außer mysql. Den mysql server muss ich jedesmal "händisch" starten. Kann ich irgendwo "drehen", damit der Dienst mysql.service erst nach erfolgreicher Eingabe der passphrase gestartet wird? Und wenn ja, wo? Grüße, Norbert -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 07.10.2014 um 10:32 schrieb Norbert Zawodsky:
Hallo Liste,
ich habe hier ein ein etwas lästiges Problem:
Meine "subjektiv wichtigen" Daten liegen auf einer verschlüsselten Platte. Das betrifft auch die daten von mysql.
Soweit läuft alles seit vielen, vielen Monden perfekt.Nur ein Effekt ist äußerst lästig:
Beim Systemstart muss ich natürlich die Passphrase eingeben. Während das system darauf wartet werden aber im Hintergrund diverse Dienste munter weiter gestartet. So auch mysql, welches dann aber nicht zu seinen Daten kommt und daher wieder beendet.
Nach dem "fertigen" Systemstart läuft dann immer alles außer mysql. Den mysql server muss ich jedesmal "händisch" starten.
Kann ich irgendwo "drehen", damit der Dienst mysql.service erst nach erfolgreicher Eingabe der passphrase gestartet wird? Und wenn ja, wo?
Grüße, Norbert
Hi,
Du müsstest dem mysql.service sagen, dass er auf die Platte warten soll.
Das könnte so ähnlich klappen (in mysql.service):
After=
Am 07.10.2014 um 17:47 schrieb Hendrik Woltersdorf:
Am 07.10.2014 um 10:32 schrieb Norbert Zawodsky:
Hallo Liste,
ich habe hier ein ein etwas lästiges Problem:
Meine "subjektiv wichtigen" Daten liegen auf einer verschlüsselten Platte. Das betrifft auch die daten von mysql.
Soweit läuft alles seit vielen, vielen Monden perfekt.Nur ein Effekt ist äußerst lästig:
Beim Systemstart muss ich natürlich die Passphrase eingeben. Während das system darauf wartet werden aber im Hintergrund diverse Dienste munter weiter gestartet. So auch mysql, welches dann aber nicht zu seinen Daten kommt und daher wieder beendet.
Nach dem "fertigen" Systemstart läuft dann immer alles außer mysql. Den mysql server muss ich jedesmal "händisch" starten.
Kann ich irgendwo "drehen", damit der Dienst mysql.service erst nach erfolgreicher Eingabe der passphrase gestartet wird? Und wenn ja, wo?
Grüße, Norbert
Hi,
Du müsstest dem mysql.service sagen, dass er auf die Platte warten soll. Das könnte so ähnlich klappen (in mysql.service):
After=
.mount Den Namen der mount-Unit kann "systemctl list-units" liefern.
Alternativ gibts da noch Optionen ala:
ConditionPathExists=/path/to/encypted/disk
womit man die Existenz konkreter Verzeichnisse vor dem Start prüfen kann.
Viel Spaß beim Ausprobieren, Hendrik Hi Hendrik,
das wäre ja ein guter Tip. Die mount unit war gleich gefunden CryptHD.mount loaded active mounted /CryptHD Nur habe ich dann festgestellt dass es kein mysql.service gibt. Sondern nur das "gute alte" /etc/init.d/mysql. Gibts für die "alte" Variante eine ähnliche Möglichkeit? in /etc/init.d/mysql gibts ja oben in der init ifo den Eintrag Required-Start: $network $remote_fs Hmmmm... Norbert -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 07.10.2014 um 18:56 schrieb Norbert Zawodsky:
Am 07.10.2014 um 17:47 schrieb Hendrik Woltersdorf:
Am 07.10.2014 um 10:32 schrieb Norbert Zawodsky:
Hallo Liste,
ich habe hier ein ein etwas lästiges Problem:
Meine "subjektiv wichtigen" Daten liegen auf einer verschlüsselten Platte. Das betrifft auch die daten von mysql.
Soweit läuft alles seit vielen, vielen Monden perfekt.Nur ein Effekt ist äußerst lästig:
Beim Systemstart muss ich natürlich die Passphrase eingeben. Während das system darauf wartet werden aber im Hintergrund diverse Dienste munter weiter gestartet. So auch mysql, welches dann aber nicht zu seinen Daten kommt und daher wieder beendet.
Nach dem "fertigen" Systemstart läuft dann immer alles außer mysql. Den mysql server muss ich jedesmal "händisch" starten.
Kann ich irgendwo "drehen", damit der Dienst mysql.service erst nach erfolgreicher Eingabe der passphrase gestartet wird? Und wenn ja, wo?
Grüße, Norbert
Hi,
Du müsstest dem mysql.service sagen, dass er auf die Platte warten soll. Das könnte so ähnlich klappen (in mysql.service):
After=
.mount Den Namen der mount-Unit kann "systemctl list-units" liefern.
Alternativ gibts da noch Optionen ala:
ConditionPathExists=/path/to/encypted/disk
womit man die Existenz konkreter Verzeichnisse vor dem Start prüfen kann.
Viel Spaß beim Ausprobieren, Hendrik Hi Hendrik,
das wäre ja ein guter Tip. Die mount unit war gleich gefunden
CryptHD.mount loaded active mounted /CryptHD
Nur habe ich dann festgestellt dass es kein mysql.service gibt. Sondern nur das "gute alte" /etc/init.d/mysql.
Gibts für die "alte" Variante eine ähnliche Möglichkeit? in /etc/init.d/mysql gibts ja oben in der init ifo den Eintrag Required-Start: $network $remote_fs
Hmmmm...
Norbert
Sorry, aber mit den Mechanismen der "guten alten" Startskripts kenne ich mich nicht so aus. Da das aber "nur" Shellskripts sind, könnte man da entweder einfach ein fixes sleep einbauen oder eine kleine Schleife programmieren, die immer wieder prüft, ob $datadir existiert. mfg Hendrik -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Hendrik, hallo Norbert, hallo Leute, Am Dienstag, 7. Oktober 2014 schrieb Hendrik Woltersdorf:
Am 07.10.2014 um 18:56 schrieb Norbert Zawodsky:
das wäre ja ein guter Tip. Die mount unit war gleich gefunden
CryptHD.mount loaded active mounted /CryptHD
Nur habe ich dann festgestellt dass es kein mysql.service gibt. Sondern nur das "gute alte" /etc/init.d/mysql.
Gibts für die "alte" Variante eine ähnliche Möglichkeit? in /etc/init.d/mysql gibts ja oben in der init ifo den Eintrag
Required-Start: $network $remote_fs
aber mit den Mechanismen der "guten alten" Startskripts kenne ich mich nicht so aus.
Das Problem dürfte eher sein, dass in diesem Fall ein "altes" Startscript auf einen systemd.mount warten muss. Das ist bestimmt möglich, könnte aber etwas interessanter[tm] sein. Ungetestet: Lege eine Datei /etc/systemd/mysql.service.d/mysql-wait-for-crypto.conf an und schreib folgendes rein: [Unit] Requires=CryptHD.mount After=CryptHD.mount Anschließend systemctl daemon-reload Und sag mir bitte, ob das beim nächsten Booten geholfen hat ;-) Falls nicht:
Da das aber "nur" Shellskripts sind, könnte man da entweder einfach ein fixes sleep einbauen oder eine kleine Schleife programmieren, die immer wieder prüft, ob $datadir existiert.
Die einfachste Lösung ist, die verschlüsselte Partition früher zu mounten ;-) Dazu brauchst Du in /etc/crypttab einen Eintrag a la cr_home /dev/md1 none initrd Wichtig ist, dass in der 4. Spalte "initrd" steht. Nach dieser Änderung bitte mkinitrd aufrufen. Zukünftig wird dann die Passphrase schon von der initrd und damit deutlich früher abgefragt. Vorsicht: zu diesem Zeitpunkt ist noch das englische Tastaturlayout aktiv - es könnte also sein, dass manche Yeichen ;-) vertauscht sind. Gruß Christian Boltz -- Jaaaa! Und am besten den Rest des Desktops auch noch mit DHTML nachprogrammieren, ach was sag ich, JavaScript ist ja /die/ Sprache, um das ganze Betriebsystem neu zu entwickeln. [Ratti in fontlinge-devel] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 07.10.2014 um 20:49 schrieb Christian Boltz:
Hallo Hendrik, hallo Norbert, hallo Leute,
Am Dienstag, 7. Oktober 2014 schrieb Hendrik Woltersdorf:
Am 07.10.2014 um 18:56 schrieb Norbert Zawodsky:
das wäre ja ein guter Tip. Die mount unit war gleich gefunden
CryptHD.mount loaded active mounted /CryptHD
Nur habe ich dann festgestellt dass es kein mysql.service gibt. Sondern nur das "gute alte" /etc/init.d/mysql.
Gibts für die "alte" Variante eine ähnliche Möglichkeit? in /etc/init.d/mysql gibts ja oben in der init ifo den Eintrag
Required-Start: $network $remote_fs aber mit den Mechanismen der "guten alten" Startskripts kenne ich mich nicht so aus. Das Problem dürfte eher sein, dass in diesem Fall ein "altes" Startscript auf einen systemd.mount warten muss. Das ist bestimmt möglich, könnte aber etwas interessanter[tm] sein.
Ungetestet: Lege eine Datei /etc/systemd/mysql.service.d/mysql-wait-for-crypto.conf an und schreib folgendes rein:
[Unit] Requires=CryptHD.mount After=CryptHD.mount
Anschließend systemctl daemon-reload
Und sag mir bitte, ob das beim nächsten Booten geholfen hat ;-)
Falls nicht:
Da das aber "nur" Shellskripts sind, könnte man da entweder einfach ein fixes sleep einbauen oder eine kleine Schleife programmieren, die immer wieder prüft, ob $datadir existiert. Die einfachste Lösung ist, die verschlüsselte Partition früher zu mounten ;-)
Dazu brauchst Du in /etc/crypttab einen Eintrag a la
cr_home /dev/md1 none initrd
Wichtig ist, dass in der 4. Spalte "initrd" steht.
Nach dieser Änderung bitte mkinitrd aufrufen.
Zukünftig wird dann die Passphrase schon von der initrd und damit deutlich früher abgefragt. Vorsicht: zu diesem Zeitpunkt ist noch das englische Tastaturlayout aktiv - es könnte also sein, dass manche Yeichen ;-) vertauscht sind.
Gruß
Christian Boltz Hallo Christian,
bin derzeit sehr unter Druck und habe nicht wirklich den Kopf frei, für boot-experimente. Es könnte also ein paar Tage dauern bis ich es ausprobieren kann. ABER, systemctl liefert: rincewind:~ # systemctl --no-pager | grep mysql mysql.service loaded active running LSB: Start the MySQL database server rincewind:~ # Wo kommt dieses mysql.service her?? Ist das ein virtuelles ".service" dass von systemctl automagisch generiert wird weil es nur das init-script gibt? Oder gibt es doch irgendwo versteckt ein mysql.service und ich habs bloß nicht gefunden?? Wo sind eigentlich standardmäßig die .service Dateien versteckt? Gruß Norbert -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Norbert, hallo Leute, Am Mittwoch, 8. Oktober 2014 schrieb Norbert Zawodsky:
rincewind:~ # systemctl --no-pager | grep mysql mysql.service loaded active running LSB: Start the MySQL database server rincewind:~ #
Wo kommt dieses mysql.service her?? Ist das ein virtuelles ".service" dass von systemctl automagisch generiert wird weil es nur das init-script gibt?
Genau, das ist quasi ein "virtuelles" als Gegenstück zum Initscript. (zumindest bis einschließlich openSUSE 13.1 - in Factory und 13.2 gibt es ein "echtes" mysql.service)
Wo sind eigentlich standardmäßig die .service Dateien versteckt?
/usr/lib/systemd/system/ und /etc/systemd/system/ Dateien in /etc/ mit identischem Namen "überschrieben" die Dateien in /usr/ - falls Du also mal etwas an einer *.service in /usr/ ändern musst, kopiere sie nach /etc/ und mach dort Deine Änderungen. Hinterher systemctl daemon-reload nicht vergessen ;-) Und wenn wir schon dabei sind - mein Vorschlag mit /etc/systemd/mysql.service.d/mysql-wait-for-crypto.conf ist quasi ein "Plugin" für mysql.service. Das geht erst mit neueren systemd-Versionen, frag mich aber bitte nicht nach der genauen Versionsnummer ;-) Gruß Christian Boltz -- Da bewahrheitet sich ein alter Spruch, stell dem Chef einen PC hin aber schließ den bloß nicht ans Netzwerk an, lass das Stromkabel weg und warte mal ob er es überhaupt merkt. [Uwe Drießen in postfixbuch-users] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (3)
-
Christian Boltz
-
Hendrik Woltersdorf
-
Norbert Zawodsky