usbmount - "illegales" Doppelmounten - fast ein Krimi

  • Hallo an alle,
    wollte heute nur mal die Speicherung von der internen SD-Karte auf einen USB-Stick umlenḱen ... hier die Problematik:
    Wollte mit

    Code
    sudo apt-get install usbmount
    sudo nano /etc/usbmount/usbmount.conf


    neue Zeile:

    Code
    FS_MOUNTOPTIONS="-fstype=vfat,gid=users,dmask=0007,fmask=0117"


    die Sache schnell erledigen, die Dateirechte entstehenden Verzeichnisses /media/usb0 waren jedoch nicht wie oben angegeben, sondern

    Code
    /dev/sda1 on /media/usb0 type vfat (rw,nodev,noexec,noatime,nodiratime,sync,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)


    auch nachträgliches ändern als root
    chmod go+w * oder 777 half nicht.

    Nun habe ich mich entschieden, usbmount zu löschen (einschliesslich purge) und über den Standardweg (fstab) zu gehen , z.B.
    http://www.raspberrypi-spy.co.uk/2014/05/how-to…e-raspberry-pi/
    Beim Anlegen des Mountpunktes in /media fiel ich vom Glauben ab: /media/usb0 war immer noch da!
    Als root kann ich drauf schreiben.

    Und nun kommt es:

    Code
    $ df -h /media/usb0
    Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
    /dev/root        30G    6,7G   22G   24% /


    Das ist die interne SD-Karte! Glücklicherweise habe ich nicht mit Macht versucht, das Ding zu killen ... meine backupkarte kommt nächste Woche ;)

    Code
    mount| grep root; mount|grep usb


    zeigen nichts an!

    Dh. sie System-SD-Karte ist "undercover" zusätzlich auf /media/usb0 gemountet! Und ich bekomme es nicht weg. Somit erklärt sich auch, warum [fmask=0022,dmask=0022, s.o.] sich nicht ändern liess.

    Ich werde nun einen anderen Mountpunkt anlegen und weiter machen.

    Trotzdem würde ich gern wissen, wie sich das reparieren lässt ... ich möchte schliesslich nicht, dass irgend welche Programme rumwerkeln, die ich nicht beauftragt habe. Wer weiss Rat?
    Ein schönes 2016 wünscht
    vdagamb


    _______
    Raspberrypi 2 mit aktuellem Jessie, PiNoir

  • usbmount - "illegales" Doppelmounten - fast ein Krimi? Schau mal ob du hier fündig wirst!

  • […]
    Dh. sie System-SD-Karte ist "undercover" zusätzlich auf /media/usb0 gemountet! Und ich bekomme es nicht weg. Somit […]


    Moment, das ist uU eine etwas voreilige Schlussfolgerung:
    Dein /-Dateisystem liegt ja auf der SD-Karte, das heißt solange nichts anderes unter /media/usb0 gemountet wird, ist es einfach nur ein weiteres normales Verzeichnis auf der SD-Karte. Dabei ist es imho nicht besonders ungewöhnlich, dass das Verzeichnis nach der Deinstallation von usbmount übriggeblieben ist und auch die Ausgabe von df sieht in dem Fall normal und richtig aus.
    Auch dass chown und chmod auf einem FAT-Dateisystem nicht funktionieren ist ganz normal. FAT kennt nun einmal weder Besitzer noch Dateirechte und was nicht da ist, lässt sich auch nicht ändern.


    Was bleibt ist einerseits die Frage wieso die fmask und dmask Optionen in usbmount wirkungslos geblieben sind, aber da kann ich kaum weiterhelfen, weil ich usbmount noch nie verwendet habe - eine Diagnose ist nach dem kompletten Entfernen von usbmount aber ohnehin nicht mehr möglich…

    …und andererseits vielleicht die Frage wieso der USB-Stick mit deinem neuen fstab-Eintrag (?) offensichtlich nicht gemountet wird. Um zu wissen was bei dir vor sich geht wäre vor allem die fstab interessant und die komplette Ausgabe von »mount«.

  • Hallo Smutbert,
    Dank Dir für Deine Gedanken. Die Sache mit dem USB-Stick habe ich gelöst. Das Problem ist das folgende:
    Die SD-Karte mit dem Jessie System, als /dev/mmcblk0p1, p2 an die diversen System directories gemountet.
    Zusätzlich, ist sie aber auch an /media/usb0 gemountet, was ich nur an Hand der Speichergrösse erkannt hatte.
    (Der USB-Stick liess sich nicht mounten, weil die SD-Karte schon an /media/usb0 war, die Attribute bezogen sich nämlich auf die SD-Karte).
    Die fstab und mount-Ausgabe folgen.

    Ciao,
    vdagamb

  • […] Zusätzlich, ist sie aber auch an /media/usb0 gemountet […]


    Genau das bezweifle ich trotz deiner Beteuerung immer noch:
    Dein root- bzw. /-Dateisystem liegt ja vermutlich auf der SD-Karte, dh alle Verzeichnisse unter denen nicht explizit ein anderen Dateisystem gemountet ist, liegen auch auf dem /-Dateisystem, was df auch für diese anderen Verzeichnisse auf dieselbe Weise kund getan hätte, zB vermutlich für /usr

    Code
    $ df -h /usr
    Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
    /dev/root        30G    6,7G   22G   24% /

    Aber selbst wenn du aus irgendeinem unerfindlichen Grund das /-Dateisystem ein zweites Mal unter /media/usb0 gemountet hättest, würde das nicht das Mounten eines weiteren Dateisystems - quasi darüber - verhindern. Sichtbare wäre nach einem Mounten des Dateisystems auf dem USB-Stick unter /media/usb0 nur mehr der Inhalt des USB-Sticks und nicht mehr der Inhalt des Dateisystems, das davor unter /media/usb0 gemountet wurde.

  • Hi Smutbert,
    das ist ja interessant, ich wusste nicht, dass man "drüber" mounten kann.
    Merkwürdiger Weise - das /media/usb0 Verzeichnis, das das Problem verursacht hatte, ist verschwunden. Der Rechner war längere Zeit aus, vorher nur immer reboot - vielleicht hat er dadurch noch etwas "vergessen". Unten die aktuellen mount-Informationen, das /media/usb0 war aber dort auch nicht aufgetaucht, als es vorhanden war und sich beschreiben liess.

    Danke Dir trotzdem für Deine Antwort. :danke_ATDE:

    Ich habe noch eine zwei Fragen:
    1. Wenn ich den USB-Stick automatisch mounten will, den Rechner aber auch ohne ihn hochfahren möchte, sollte ich da in fstab noch die Option -noauto hinzufügen?

    2. Ist es möglich, in fstab einen Eintrag zu machen, dass ein anderer ein anderer USB-Stick (vfat) automatisch nach Einstecken gemounted wird? Durch die -sync Option kann er ja problemlos abgezogen werden, wie ich verstanden habe.

    Ein gute erste Jahreswoche,
    vdagamb


  • zu 1.

    noauto sorgt dafür, dass der Stick beim Booten gar nicht gemountet wird. Die nofail wäre schon eher das was du suchst.
    Eine andere Option wäre vielleicht die Kombination der Mountoptionen noauto,x-systemd.automount wobei ich glaube, dass in der Konstellation noauto gar nicht notwendig ist und x-systemd.automount alleine auch genügt.
    Damit wird beim Hochfahren erst einmal nicht gemountet, aber bei einem Zugriff auf das angegebene Verzeichnis versucht systemd das Dateisystem zu mounten.

    zu 2.

    Nein, nur mit der fstab geht das nicht und ob die sync-Option grundsätzlich eine so gute Idee ist weiß ich nicht. Bei Schreibzugriffen auf das Dateisystem werden mit sync viel mehr Daten geschrieben, weil das Dateisystem immer in einem konsistenten Zustand gehalten wird, dh es werden möglicherweise kurz hintereinander Sektoren viele Male beschrieben, zB bei FAT das Herzstück die Dateizuordnungstabelle.
    Wenn du nicht viel auf den USB-Stick schreiben willst ist das egal, aber wenn doch verkürzt es uU die Lebensdauer des USB-Sticks sehr. Nur wenn man keine Möglichkeit hat den Stick vorher unzumounten dann gibt es halt keine bessere Möglichkeit...

    Zu automatischen Mounten hättest du mehrere Möglichkeiten. Dienste wie usbmount oder udevil kennst du ja schon.
    Recht beliebt ist es zB auch eine eigene udev-Regel anzulegen, die das Dateisystem mountet.

    Vielleicht gibt es aber noch eine Alternative und zwar einen fstab-Eintrag wie

    Code
    /dev/sda1    /media/usbstick    vfat    utf8,uid=pi,gid=pi,noatime,umask=0000,noauto,x-systemd.automount,x-systemd.idle-timeout=1min    0 0


    Dabei gehe ich davon aus, dass die angeschlossenen USB-Sticks über (mindestens) eine Partition verfügen und auf der ersten und meist wahrsheinlich einzigen Partition /dev/sda1 das Dateisystem liegt.
    Für noauto gilt das gleiche wie unter 1., dass ich nicht sicher bin, dass es notwendig ist. x-systemd.automount solle wie unter 1. dafür sorgen, dass das Dateisystem automatisch bei einem Zugriff auf den Mountpoint gemountet wird. Die Mountoption x-systemd.idle-timeout=1min schließlich soll dafür sorgen, dass das Dateisystem nach einer Minute ohne jeglichem Zugriff automatisch wieder ungemountet werden soll.
    Ich selbst habe diese Option noch nie ausprobiert, es kann aber leicht sein, dass es scheitert, weil zB irgendein Programm Dateien auf dem USB-Stick geöffnet hält oä. Dann kann es passieren, dass systemd das Dateisystem nicht geunmountet hat - da wäre dann vielleicht wieder sync interessant.
    Ich bin aber auch nicht sicher, dass danach neu angesteckte Sticks noch gemountet werden, zB könnte wenn das Entfernen der Hardware aus Software/Kernel-Sicht nicht sauber geklappt hat, der nächste angesteckte USB-Stick /dev/sdb, /dev/sdb1,… bekommen.

    Du kommst also wohl nicht drumherum auszuprobieren was für deinen Einsatzzweck am besten funktioniert.

    Einmal editiert, zuletzt von smutbert (4. Januar 2016 um 10:18)

  • Das sind ja viele Anregungen, ich werde mir das gelegentlich in Ruhe zu Gemüte führen, nochmals :danke_ATDE: !!
    LG,
    vdagamb
    Automatisch zusammengefügt:
    ES IST WIEDER DA!!!
    ich verzweifele

    [code]pi@raspberrypi2 /media $ df -h /media/usb0
    Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
    /dev/root 30G 6,7G 22G 24% /
    pi@raspberrypi2 /media $ df -h /usr
    Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
    /dev/root 30G 6,7G 22G 24% / [code]

    schiebe noch die Prozesse dazu, vielleicht erkennst Du ja was ...
    [code]pi@raspberrypi2 /media $ ps ax
    PID TTY STAT TIME COMMAND
    1 ? Ss 0:05 /sbin/init
    2 ? S 0:00 [kthreadd]
    3 ? S 1:49 [ksoftirqd/0]
    5 ? S< 0:00 [kworker/0:0H]
    7 ? S 0:46 [rcu_sched]
    8 ? S 0:00 [rcu_bh]
    9 ? S 0:00 [migration/0]
    10 ? S 0:00 [migration/1]
    11 ? S 0:04 [ksoftirqd/1]
    13 ? S< 0:00 [kworker/1:0H]
    14 ? S 0:00 [migration/2]
    15 ? S 0:06 [ksoftirqd/2]
    17 ? S< 0:00 [kworker/2:0H]
    18 ? S 0:00 [migration/3]
    19 ? S 0:07 [ksoftirqd/3]
    21 ? S< 0:00 [kworker/3:0H]
    22 ? S< 0:00 [khelper]
    23 ? S 0:00 [kdevtmpfs]
    24 ? S< 0:00 [netns]
    25 ? S< 0:00 [perf]
    26 ? S 0:00 [khungtaskd]
    27 ? S< 0:00 [writeback]
    28 ? S< 0:00 [crypto]
    29 ? S< 0:00 [bioset]
    30 ? S< 0:00 [kblockd]
    32 ? S< 0:00 [rpciod]
    33 ? S 0:00 [kswapd0]
    34 ? S 0:00 [fsnotify_mark]
    35 ? S< 0:00 [nfsiod]
    41 ? S< 0:00 [kthrotld]
    43 ? S< 1:32 [VCHIQ-0]
    44 ? S< 0:01 [VCHIQr-0]
    45 ? S< 0:00 [VCHIQs-0]
    46 ? S< 0:00 [iscsi_eh]
    47 ? S< 0:00 [dwc_otg]
    48 ? S< 0:00 [DWC Notificatio]
    51 ? S 0:01 [mmcqd/0]
    52 ? S 0:00 [VCHIQka-0]
    53 ? S< 0:00 [SMIO]
    54 ? S< 0:00 [deferwq]
    56 ? S 0:00 [jbd2/mmcblk0p2-]
    57 ? S< 0:00 [ext4-rsv-conver]
    59 ? S< 0:00 [kworker/2:1H]
    60 ? S< 0:00 [ipv6_addrconf]
    78 ? S< 0:00 [kworker/0:1H]
    97 ? S< 0:00 [kworker/3:1H]
    112 ? Ss 0:08 /lib/systemd/systemd-journald
    114 ? Ss 0:00 /lib/systemd/systemd-udevd
    131 ? S< 0:00 [kworker/1:1H]
    231 ? S 0:03 [wlan0]
    405 ? S< 0:00 [cfg80211]
    421 ? Ss 0:00 /usr/sbin/sshd -D
    423 ? Ss 0:00 /usr/sbin/cron -f
    426 ? Ss 0:00 /lib/systemd/systemd-logind
    435 ? S 59:44 python /home/pi/motioneye/motioneye.py
    445 ? Ss 1:09 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
    477 ? Ss 0:00 /usr/sbin/thd --daemon --triggers /etc/triggerhappy/triggers.d/ --socket /var/run/thd.socket --pidfile /v
    482 ? S 0:08 /usr/sbin/ifplugd -i eth0 -q -f -u0 -d10 -w -I
    501 ? S 0:10 /usr/sbin/ifplugd -i wlan0 -q -f -u0 -d10 -w -I
    502 ? Ss 0:03 /usr/sbin/ntpd -p /var/run/ntpd.pid -4 -g -c /var/lib/ntp/ntp.conf.dhcp -u 102:104
    513 ? Ssl 0:04 /usr/sbin/rsyslogd -n
    535 tty1 Ss 0:00 /bin/login -f
    539 ? Ss+ 0:00 /sbin/agetty --keep-baud 115200 38400 9600 ttyAMA0 vt102
    571 ? S 2:40 /usr/bin/python -O /usr/share/wicd/daemon/wicd-daemon.py
    583 ? Ss 0:00 /lib/systemd/systemd --user
    588 ? S 1:08 /usr/bin/python -O /usr/share/wicd/daemon/monitor.py
    592 ? S 0:00 (sd-pam)
    607 tty1 S+ 0:00 -bash
    696 ? Ss 0:00 wpa_supplicant -B -i wlan0 -c /var/lib/wicd/configurations/c025062d005f -Dwext
    14767 ? S 0:00 [scsi_eh_1]
    14768 ? S< 0:00 [scsi_tmf_1]
    16886 ? S 0:00 [kworker/u8:1]
    16913 ? S 0:01 [kworker/0:2]
    17366 ? S 0:00 [kworker/3:1]
    17625 ? S 0:00 [kworker/3:0]
    17809 ? S 0:00 [kworker/1:1]
    17823 ? S 0:00 [scsi_eh_2]
    17824 ? S< 0:00 [scsi_tmf_2]
    17825 ? S 0:00 [usb-storage]
    17826 ? S 0:00 [kworker/u8:2]
    17837 ? Sl 47:55 /usr/bin/motion -c /home/pi/motioneye/conf/motion.conf -n -d 1
    18057 ? S 0:00 [kworker/2:0]
    18421 ? Ss 0:00 sshd: pi [priv]
    18437 ? S 0:00 sshd: pi@pts/0
    18440 pts/0 Ss 0:00 -bash
    18476 ? S 0:00 [kworker/1:0]
    18517 ? S 0:00 [kworker/2:2]
    18526 ? S 0:00 [kworker/0:0]
    18761 ? S 0:00 [kworker/2:1]
    18830 pts/0 R+ 0:00 ps ax [code]

    Einmal editiert, zuletzt von vdagamb (4. Januar 2016 um 11:33)

  • Was sagt denn

    Code
    $ stat /media/usb0

    daran sollten wir erahnen können, wann das Verzeichnis angelegt wurde, ob es also wirklich wieder oder nicht vielleicht viel mehr noch immer da ist, was ich eigentlich eher vermuten würde, weil ich zumindest bei denen Prozessen nichts verdächtiges sehe.


  • Was sagt denn

    Code
    $ stat /media/usb0

    daran sollten wir erahnen können, wann das Verzeichnis angelegt wurde, ob es also wirklich wieder oder nicht vielleicht viel mehr noch immer da ist, was ich eigentlich eher vermuten würde, weil ich zumindest bei denen Prozessen nichts verdächtiges sehe.

    Sicher hast Du Recht. Nun stellt sich aber trotzdem die Frage - wie kann ich usb0 löschen, dh. den softlink (?) ohne die Datei (das Betriebssystem) zu zerstören?

    Code
    Datei: „/media/usb0“
      Größe: 4096           Blöcke: 8          EA Block: 4096   Verzeichnis
    Gerät: b302h/45826d     Inode: 540251      Verknüpfungen: 2
    Zugriff: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Zugriff    : 2016-01-01 13:34:33.880773045 +0100
    Modifiziert: 2016-01-01 19:37:04.191077315 +0100
    Geändert   : 2016-01-01 19:37:04.191077315 +0100
    Geburt    : -
  • Das ist ein ganz normales Verzeichnis. das zuletzt am 1.1.2016 verändert wurde (und wahrscheinlich auch an diesem Tag angelegt wurde, das zu überprüfen ist aber nicht ganz so einfach) - jedenfalls kann es gestern oder vorgestern eigentlich nicht vorübergehend verschwunden gewesen sein ☺

    Wie man ein Verzeichnis löscht weißt du wahrscheinlich

    Code
    # rmdir /media/usb0


    Wenn dir rmdir daraufhin mitteilen sollte, dass das Verzeichnis nicht leer ist, dann siehst du einfach mit

    Code
    $ ls -al /media/usb0


    nach welche Dateien sich darin befindest, löscht diese (und kopierst sie wahlweise zuerst woanders hin, wenn du erkennst, dass es etwas ist, das du noch brauchst) und wiederholst danach den ersten Befehl.

    Einmal editiert, zuletzt von smutbert (5. Januar 2016 um 10:24)

  • NNEEIINN!
    Du hast schon Recht, ich habe schon mal ne Datei gelöscht ;)
    Wie Du hieran siehst (von oben kopiert), und das kann ich wohl nicht rüber bringen, ist das meine SYSTEMSDKARTE - wie gesagt,seit 1.1.2016 an zwei Punkte gemountet. Ich denke es ist ein Link, den ich löschen müsste, weiss aber nicht wie ich es tun muss, ohne mein System zu zerschiessen (Siehe Überschrift)

    Code
    pi@raspberrypi2 /media $ df -h /media/usb0
    Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
    /dev/root 30G 6,7G 22G 24% /
    pi@raspberrypi2 /media $ df -h /usr
    Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
    /dev/root 30G 6,7G 22G 24% /
  • Wenn ich deine Ausgabe von mount, die du bereits gepostet hast


    (habe lediglich wegen der Übersichtlichkeit die Mountoptionen zurechtgestutzt) einmal zerpflücken darf, dann komme ich nicht umhin zu bemerken, dass du ein /-Dateisystem (ext4 auf /dev/root = /dev/mmcblk0p2) genau einmal gemountet hast und zwar unter /. Lässt man die ganzen virtuellen Dateisysteme wie proc, sysfs und die tmpfs im Hauptspeicher weg bleiben lediglich

    • /dev/root on / type ext4
    • /dev/mmcblk0p1 on /boot type vfat
    • /dev/sda1 on /media/usbstick32G type vfat


    da ist also alles in Butter und so wie es sich gehört.


    Ich glaube das Mißverständnis rührt daher, dass df immer die Informationen des Dateisystems anzeigt auf dem der Ordner liegt, denn du angegeben hast. Nachdem die Verzeichnishierarchie mit / anfängt liegen davon ausgehend erst einmal alle Dateien und Ordner auf dem /-Dateisystem, also dem ext4-Dateisystem auf der 2. Partition auf deiner Speicherkarte.
    Erst wenn du in irgendeinem Verzeichnis etwas anderes mountest, so wie es bei /boot der Fall ist liegen die darunter enthaltenen Dateien und Verzeichnisse auf diesem neuen Dateisystem, in dem Fall auf dem FAT-Dateisystem in der ersten Partition deiner Speicherkarte.

    Du kannst mir also ruhig glauben, dass ein

    Code
    # rmdir /media/usb0


    so gefahrlos ist wie ein Befehl nur sein kann. Der Befehl löscht ohnehin nur ein bereits leeres Verzeichnis. Erst wenn das fehlschlägt, sehen wir uns an was in dem Verzeichnis ist - es versteckt sich aber garantiert kein verschollener Dateisystemzwilling darin ;)

    edit:
    Übrigens sagt die Ausgabe von stat ganz eindeutig, dass es sich um ein normales Verzeichnis handelt und nicht etwa um einen Link oder etwas anderes.

    Einmal editiert, zuletzt von smutbert (5. Januar 2016 um 22:27)

  • Hi Smutbert ... jetzt ist alles erledigt :)
    und habe eine Menge gelernt.

    Das Problem war m.E der mount-Befehl in der fstab. habe dann einfach /dev/sda1 in die fstab eingetragen statt der ID der SD-Karte und dann die überzähligen links gelöscht (Deine Aussage bestätigt!!) ... und es funktionierTE, denn inzwischen ist das Gerät, quasi mitten im Installationsvorgang abgestürzt (defekter USB-Karten Leser) ... da noch keine Sicherung da war gings wieder von vorn los :-(. Mittlerweile ist er neu aufgesetzt, alle Befehle dokumentiert dass es demnächst auch per skript ginge und die Karte gesichert und dupliziert.

    Will den USB-Stick nicht wieder nehmen sondern eine Festplatte die an der Fritzbox (=Router) hängt, da läft wohl standardmässig ein ftp-Server. Da ich mit Jessie arbeite, da läuft systemd, der jedes Mal den Bootvorgang abbricht, wenn es irgendein mount problem gibt und den ssh-server nicht startet, kann ich den Raspberry erst später headless fahren...

    Den (entfernten) Server kann ich mit sshfs mounten, bei der Fritz-Box Platte bin ich noch am Suchen des richtigen Pfades.

    Das wärs für den Moment, nochmals 1000 DAnk!
    vdagamb

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!