Re: Ab wann sind USB-Geräte während des Bootens erreichbar
Hallo Joachim, Am Montag, 6. Januar 2020, 15:31:05 CET schrieb Joachim H.:
Hallo,
ich hatte mich vor ein paar Tagen mal gemeldet wegen einer USB-HDD die nicht in den Ruhezustand will.
Seitdem versuche ich, das irgendwie (automatisiert) hinzu kriegen, doch das klappt nicht.
Um die Zeitspanne einzustellen, nach der die Platte in standby soll, muss hdparm -S 120 /dev/disk/by-uuid/xyz abgesetzt werden. Am besten natürlich automatisch während des Bootens.
Ich habe es mit einem eigenen Service des systemd versucht oder etwas um die Ecke mit crontab. In allen Fällen kommt die Meldung, no such file or directory. Das device existiert daher noch nicht.
Hier mal mein Servicefile
--snip-- Description=My HDD Service After=multi-user.target ^^^
[Service] Type=idle ExecStart=/sbin/hdparm -S 120 /dev/disk/by-uuid/2dd875b8-388a-4808-9514-6829a8172dad 2>/home/joachim/boot.err
[Install] WantedBy=multi-user.target ^^^ Macht After und Wanted für dasselbe 'target' wirklich Sinn?
--snapp--
Ich dachte, nach multi-user müssten alle Laufwerke und damit auch die Partitionen (UUID geht ja nur auf Partitionen) erkannt sein. Ist aber wohl nicht so.
Wo sollte ich meinen Service hinlegen, damit das gewünschte Laufwerk über UUID angesprochen werden kann? Vielleicht könnte folgender Ansatz helfen: Warte bis ein Verzeichnis (auf dieser Platte oder für diese Platte in /usr/ disks/by-id/... ) existiert. Und führe das Kommando aus bis es geht. Klingt kompliziert, aber etwa so:
Ziel: Teste auf speziellen Einhängepunkt /data/hugo siehe man-page systemd.path systemd.service systemd-escape Spezielle Optionen in service Datei: RestartSec=5 Restart=on-failure Script /usr/local/bin/echo2tmp Rückgabewert 0 erfolgreich oder Fehler, info in /tmp natürlich systemctl enable start status #!/bin/bash f=/tmp/foo-echo2tmp` date +%s` echo 'echo2tmp called '$* >$f ls -lart $1 >> $f ls -lart $1 rc=$? echo 'RC=' $rc >> $f exit $rc In /etc/systemd/system ::::::::::::: data-hugo.path :::::::::::::: [Path] PathModified=/data/hugo :::::::::::::: data-hugo.service :::::::::::::: [Unit] Description=Start einen Versuch [Service] RestartSec=5 Restart=on-failure Type=simple ExecStart=/usr/local/bin/echo2tmp /data/hugo monitor disk [Install] WantedBy=multi-user.target Ich hoffe, das hilft als Idee. Viele Grüße Hugo Mahr -- 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
Moin Hugo, an so was ähnliches hatte ich auch schon gedacht. Es müsste aber doch einfacher gehen. Irgendwann während des Bootens müssen die USB-Module doch mal geladen werden. Das hdparm einfach und simple danach absetzen. Es scheint aber nicht wirklich jemand zu wissen (oder zu antworten), der weiß wann USB zugänglich ist, bzw. was unter "After" eintztragen ist. Joachim Am 10.01.2020 um 11:02 schrieb Hugo:
Hallo Joachim, Am Montag, 6. Januar 2020, 15:31:05 CET schrieb Joachim H.:
Hallo,
ich hatte mich vor ein paar Tagen mal gemeldet wegen einer USB-HDD die nicht in den Ruhezustand will.
Seitdem versuche ich, das irgendwie (automatisiert) hinzu kriegen, doch das klappt nicht.
Um die Zeitspanne einzustellen, nach der die Platte in standby soll, muss hdparm -S 120 /dev/disk/by-uuid/xyz abgesetzt werden. Am besten natürlich automatisch während des Bootens.
Ich habe es mit einem eigenen Service des systemd versucht oder etwas um die Ecke mit crontab. In allen Fällen kommt die Meldung, no such file or directory. Das device existiert daher noch nicht.
Hier mal mein Servicefile
--snip-- Description=My HDD Service After=multi-user.target ^^^ [Service] Type=idle ExecStart=/sbin/hdparm -S 120 /dev/disk/by-uuid/2dd875b8-388a-4808-9514-6829a8172dad 2>/home/joachim/boot.err
[Install] WantedBy=multi-user.target ^^^ Macht After und Wanted für dasselbe 'target' wirklich Sinn?
--snapp--
Ich dachte, nach multi-user müssten alle Laufwerke und damit auch die Partitionen (UUID geht ja nur auf Partitionen) erkannt sein. Ist aber wohl nicht so.
Wo sollte ich meinen Service hinlegen, damit das gewünschte Laufwerk über UUID angesprochen werden kann? Vielleicht könnte folgender Ansatz helfen: Warte bis ein Verzeichnis (auf dieser Platte oder für diese Platte in /usr/ disks/by-id/... ) existiert. Und führe das Kommando aus bis es geht. Klingt kompliziert, aber etwa so:
Ziel: Teste auf speziellen Einhängepunkt /data/hugo siehe man-page systemd.path systemd.service systemd-escape Spezielle Optionen in service Datei: RestartSec=5 Restart=on-failure
Script /usr/local/bin/echo2tmp Rückgabewert 0 erfolgreich oder Fehler, info in /tmp
natürlich systemctl enable start status
#!/bin/bash f=/tmp/foo-echo2tmp` date +%s` echo 'echo2tmp called '$* >$f ls -lart $1 >> $f ls -lart $1 rc=$? echo 'RC=' $rc >> $f exit $rc
In /etc/systemd/system ::::::::::::: data-hugo.path :::::::::::::: [Path] PathModified=/data/hugo
:::::::::::::: data-hugo.service :::::::::::::: [Unit] Description=Start einen Versuch
[Service] RestartSec=5 Restart=on-failure Type=simple ExecStart=/usr/local/bin/echo2tmp /data/hugo monitor disk
[Install] WantedBy=multi-user.target
Ich hoffe, das hilft als Idee. Viele Grüße Hugo Mahr
-- 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 (2)
-
Hugo
-
Joachim H.