Erfolg von mount

Hast Du Probleme mit Hardware, die durch die anderen Foren nicht abgedeckt werden? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
wanne
Moderator
Beiträge: 7448
Registriert: 24.05.2010 12:39:42

Erfolg von mount

Beitrag von wanne » 14.04.2020 16:21:46

Ich habe in meinem Script in etwa sowas:

Code: Alles auswählen

mount /home/steam/ && echo OK
Und bin bis jetzt immer davon ausgegangen, dass das funktioniert.
Jetzt die große Überraschung. Die passende HDD war nicht angeschlossen und siehe da: Das Script sagt trotzdem OK.
Ich finde auch in keinem Log irgend eine Fehlermeldung...
Alles was mir halt auffällt, ist dass eben nicht geloggt wird, dass das device gemountet wurde und dass es nacher nicht gemountet ist...
Gibt es eine zuverlässigere Methode festzustellen, ob ein device gemountet wurde?
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
whisper
Beiträge: 3155
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Erfolg von mount

Beitrag von whisper » 14.04.2020 16:30:42

Ja, sollte mit exit status "$?" gehen
Also so ungefähr
mount /home/steam/
if [ "$?" -eq "0" ]
then
echo "OK"
fi

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Erfolg von mount

Beitrag von heisenberg » 14.04.2020 16:33:06

whisper hat geschrieben: ↑ zum Beitrag ↑
14.04.2020 16:30:42
Ja, sollte mit exit status "$?" gehen
Also so ungefähr
mount /home/steam/
if [ "$?" -eq "0" ]
then
echo "OK"
fi
Das ist genau das, was wanne tut.

@wanne:
* Du bekommst wirklich einen exit-Status 0 von mount zurück? Ist das per manuellem Befehl nochmal getestet?
* Irgend eine Fehlermeldung bei Ausführung von mount mit nicht angeschlossener Platte?
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Erfolg von mount

Beitrag von Meillo » 14.04.2020 16:35:39

whisper hat geschrieben: ↑ zum Beitrag ↑
14.04.2020 16:30:42
Ja, sollte mit exit status "$?" gehen
Also so ungefähr
mount /home/steam/
if [ "$?" -eq "0" ]
then
echo "OK"
fi
Der &&-Befehl von wanne ist bereits aequivalent dazu. Beide Codeschnipsel verhalten sich gleich.

Das Problem muss in mount(8) liegen. Dort wird ein Exit-Code von 0 zurueckgeliefert, obwohl scheinbar nicht gemountet wurde.
Use ed once in a while!

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Erfolg von mount

Beitrag von Meillo » 14.04.2020 16:37:49

heisenberg hat geschrieben: ↑ zum Beitrag ↑
14.04.2020 16:33:06
@wanne:
* Du bekommst wirklich einen exit-Status 0 von mount zurück? Ist das per manuellem Befehl nochmal getestet?
Teste es auch mal mit anderen nicht-existenten Mount-Points. Was kommt da fuer ein Exit-Code zurueck?
* Irgend eine Fehlermeldung bei Ausführung von mount mit nicht angeschlossener Platte?
`mount -v' ... hat mir schon manches Mal geholfen.
Use ed once in a while!

wanne
Moderator
Beiträge: 7448
Registriert: 24.05.2010 12:39:42

Re: Erfolg von mount

Beitrag von wanne » 14.04.2020 16:42:17

heisenberg hat geschrieben: ↑ zum Beitrag ↑
14.04.2020 16:33:06
* Du bekommst wirklich einen exit-Status 0 von mount zurück? Ist das per manuellem Befehl nochmal getestet?
Ja.

Code: Alles auswählen

# mount /home/steam/ 
# echo $?
> 0
heisenberg hat geschrieben: ↑ zum Beitrag ↑
14.04.2020 16:33:06
* Irgend eine Fehlermeldung bei Ausführung von mount mit nicht angeschlossener Platte?
Ich habe bestimmt eine halbe Stunde gesucht. Nirgends was gefunden. Nicht im journal. Nicht im Kernel log. Nicht im syslog. Und natürlich keine Ausgabe auf stdout oder stderr.
Und ich meine, das ist doch ein relativ üblicher Fall: Da war einfach der SATA-Stecker gezogen. (Sprich für den Rechner war die Platte schlicht nicht da. Kein fancy Setup. Dateisystem sollte xfs sein. Aber so weit dürfte das mount ja nicht kommen.)
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Erfolg von mount

Beitrag von heisenberg » 14.04.2020 16:44:03

man 8 mount #(debian buster)

Code: Alles auswählen

RETURN CODES
       mount has the following return codes (the bits can be ORed):
       0      success
       1      incorrect invocation or permissions
       2      system error (out of memory, cannot fork, no more loop devices)
       4      internal mount bug
       8      user interrupt
       16     problems writing or locking /etc/mtab
       32     mount failure
       64     some mount succeeded
       The command mount -a returns 0 (all succeeded), 32 (all failed), or 64 (some failed, some succeeded).
Also das ist schon alles so wie gedacht. Vielleicht doch ein Fehler im Script?

Kannst Du den Fehler manuell(ohne Script) erfolgreich nachstellen? (Platte anschließen, mounten, unmounten, Datenkabel trennen, erneut mounten?)

Evtl. mount nochmal mit strace ausführen?
Zuletzt geändert von heisenberg am 14.04.2020 16:47:41, insgesamt 1-mal geändert.
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

wanne
Moderator
Beiträge: 7448
Registriert: 24.05.2010 12:39:42

Re: Erfolg von mount

Beitrag von wanne » 14.04.2020 16:47:30

mount -v
Keine Ausgabe...
Teste es auch mal mit anderen nicht-existenten Mount-Points. Was kommt da fuer ein Exit-Code zurueck?
Danke für den Tipp. Jetzt kommen wir dem Problem näher:
Das Dateisystem wird mit nofail gemountet. Problem ist: Ich will das nicht raus machen, weil systemd sonst ja den boot anhält, wenn die Platte nicht da ist. Scheinbar regelt mount das mit exit 0 um Systemd zu verarschen. IMHO ein böser Hack.
Habt ihr ne Idee wie man das besser lösen kann? Ich will das die Platte gemountet wird, sobald sie eingesteckt wird. Früher hätte ich sowas mit udev gemacht und hätte auch kein nofail gebraucht. Aber jetzt killt sowas den Systemd.
Also das ist schon alles so wie gedacht. Vielleicht doch ein Fehler im Script?
s.o.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Erfolg von mount

Beitrag von heisenberg » 14.04.2020 16:48:30

autofs?

Da wird sie zwar nicht eingehängt sobald sie eingesteckt wird, sondern sobald sie benutzt wird, aber vielleicht ist das ja auch ok...

bzgl. udev

Ich habe das zwar noch nicht mit systemd gemacht, aber mir scheint das geht:

https://www.tecmint.com/udev-for-device ... -in-linux/
https://wiki.archlinux.org/index.php/Udev
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

TomL

Re: Erfolg von mount

Beitrag von TomL » 14.04.2020 16:54:55

wanne hat geschrieben: ↑ zum Beitrag ↑
14.04.2020 16:21:46
Ich habe in meinem Script in etwa sowas:

Code: Alles auswählen

mount /home/steam/ && echo OK
Und bin bis jetzt immer davon ausgegangen, dass das funktioniert. Jetzt die große Überraschung. Die passende HDD war nicht angeschlossen und siehe da: Das Script sagt trotzdem OK.
Ich würde jetzt ins Blaue schießen und sagen "absolut korrektes Verhalten". :lol: ... wobei ich mich natürlich auch total irren kann. Aber der Hinweis, dass es ein unvollständiges Mountstatement ist und somit einen fstab-Eintrag zugrunde legt, und weiterhin, dass für ein nicht zweifelsfrei vorhersehbares Medium vielleicht "nofail" in den fstab-mount-options enthalten sein könnte, ist m.M.n. der Return-Code 0 korrekt... eben auch dann, wenn nicht gemountet wurde.

Ich würde alternativ mal einen syntaktisch vollständigen und korrekten Mount im Terminal (also ohne fstab (und natürlich auch ohne nofail)) absetzen und mal gucken, wie da die Rückgabe ist, wenn die HD nicht angeschlossen ist.
Zuletzt geändert von TomL am 14.04.2020 17:02:27, insgesamt 1-mal geändert.

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Erfolg von mount

Beitrag von Lord_Carlos » 14.04.2020 16:59:28

Kannst du das mit einem systemd service loesen?

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Erfolg von mount

Beitrag von heisenberg » 14.04.2020 20:54:46

statt nofail kann man ja einfach noauto nehmen und dann per rc.local / systemd(type oneshot) mounten und den Exit-Status ignorieren.
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Erfolg von mount

Beitrag von habakug » 14.04.2020 21:00:39

Hallo,

man kann dem mount-Befehl bei der Arbeit zusehen:

Code: Alles auswählen

LIBMOUNT_DEBUG=0xffff mount [...]
Manchmal hilfts.

Gruss, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Erfolg von mount

Beitrag von Meillo » 14.04.2020 21:16:34

habakug hat geschrieben: ↑ zum Beitrag ↑
14.04.2020 21:00:39
man kann dem mount-Befehl bei der Arbeit zusehen:

Code: Alles auswählen

LIBMOUNT_DEBUG=0xffff mount [...]
Manchmal hilfts.
Danke fuer diesen Tipp! :THX:
Use ed once in a while!

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Erfolg von mount

Beitrag von Lord_Carlos » 14.04.2020 21:18:40

Gerade das hier gefunden. Also einfach ein grep "/home/steam/" /proc/mounts

Systemd hat auch ein paar nette sachen: https://www.golinuxcloud.com/mount-file ... md-rhel-8/

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

wanne
Moderator
Beiträge: 7448
Registriert: 24.05.2010 12:39:42

Re: Erfolg von mount

Beitrag von wanne » 15.04.2020 21:21:45

Das Sript läuft nicht als root und ich habe auch eigentlich keine Lust das zu ändern. (Lass es über Systemd laufen ist da nur eine verklausulierte Variante von.)
LIBMOUNT_DEBUG=0xffff gibt wohl ne ansatzweise passende Meldung aus.

Code: Alles auswählen

failed to prepare srcpath [rc=-5002]
mount: preparing failed
So wirklich parsbar ist das aber nicht.
Lord_Carlos hat geschrieben:

Code: Alles auswählen

grep "/home/steam/" /proc/mounts
Schön finde ich es irgend wie nicht. Aber das ist geschmackssache. Funktionieren tut es natürlich. Bleibe ich dabei. Defakto hatte ich den Check wenig später eh drin um einen ehemaligen Bug aus systemd zu umgehen. Hab den jetzt hoch gezogen.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
whisper
Beiträge: 3155
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Erfolg von mount

Beitrag von whisper » 20.04.2020 07:42:52

Meillo hat geschrieben: ↑ zum Beitrag ↑
14.04.2020 16:35:39

Der &&-Befehl von wanne ist bereits aequivalent dazu. Beide Codeschnipsel verhalten sich gleich.
:facepalm: Klar, verwende ich ja auch, zwar nie in Scripten, aber auf der Console

Antworten