usb hdd automount udev

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Liebe Freunde des gepflegten Raspbians,

    Aufgabenstellung:
    Ich möchte gerne eine USB-Festplatte zu Backup-Zwecken automatisch mounten.
    Dies würde ich gerne mittels udev-Regeln machen wollen. Bevor ich loslege, möchte ich das Ganze mal theoretisch durchgehen.
    Mein Problem ist, bisher habe ich immer nur USB-Platten mit einer Partition mit udev eingebunden...

    Hier einige einschlägige Systeminformationen

    Code
    ls /dev/sda*
    /dev/sda  /dev/sda1  /dev/sda2
    Code
    sudo parted -l /dev/sda
    Model: Samsung D3 Station (scsi)
    Disk /dev/sda: 4001GB
    Sector size (logical/physical): 4096B/4096B
    Partition Table: gpt
    
    
    Number  Start   End     Size    File system  Name  Flags
     2      1049kB  3967GB  3967GB
     1      3967GB  4001GB  33,6GB
    Code
    sudo blkid /dev/sda1
    /dev/sda1: LABEL="usbhdd32gbntfs" UUID="XXXXXXXXXXXX5C16" TYPE="ntfs"
    sudo blkid /dev/sda2
    /dev/sda2: LABEL="usbhdd4tbext4" UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX74f3" TYPE="ext4"
    Code
    sudo mkdir -p /media/samsung/4TBext4
    sudo mkdir -p /media/samsung/32GBntfs
    sudo chmod 777 /media/samsung
    Code
    sudo vi /etc/fstab


    dort füge ich folgendes hinzu:

    Code
    UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX74f3 /media/samsung/4TBext4 auto defaults,auto,umask=000,users,rw,uid=pi,gid=pi 0 0
    UUID=XXXXXXXXXXXX5C16 /media/samsung/32GBntfs ntfs-3g defaults,auto,umask=000,users,rw 0

    Wenn ich jetzt nur eine Partition hätte, dann würde ich folgende Regel erstellen:

    Code
    sudo sh -c 'echo "KERNEL==\"sda\", RUN+=\"/bin/mount /media/samsung\"" >> /etc/udev/rules.d/99-mount.rules'

    Allerdings habe ich zwei Partitionen...Ich müsste also zwei udev-rules erstellen...mmmhhh

    Hat da einer eine Idee? Danke im Voraus!

  • Ich verstehe den Sinn nicht? Wenn du die beiden Partitionen in der fstab drin hast, werden doch beide gemountet. Wozu dann noch ne Regel?

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • Also hier wird das Problem für vfat bzw. ntfs ebenfalls mit udev gelöst und so habe ich das bereits gemacht. Allerdings würde ich es wie gesagt gerne für 2 Partitionen anpassen, wovon eine ntfs und die andere vfat ist.
    https://debianforum.de/forum/viewtopi…it=udev+usb+hdd

    Aber ich glaube du hast recht, ich darf es nicht in der fstab stehen haben, ausser mit der fail-Option, die ich aber nicht mehr im Kopf habe und sollte es nur mit udev machen...

    Aber wie unmounte ich denn dann auch automatisch?

    Danke im Voraus!

  • Danke meigrafd, ich habe nun gesehen, dass Du dieses Thema schon ein paar Mal bearbeitet hast...
    In dem Thread schreibst Du zwar von sda1 und sdc1 aber irgendwie bekomme ich das transfermäßig nicht so gut hin...

    Ich habe noch einmal zwei skripts gefunden, die mir ebenfalls ganz gut zu passen scheinen...

    • Variante1
      http://www.axllent.org/docs/view/auto-mounting-usb-storage/
    • Variante2

      http://hakerdefo.blogspot.in/2014/06/how-to…d-memory_3.html


    • Variante3
      Last but not least, Deine Lösung:
      HDD mounten dynamisch

      Code
      nano /etc/udev/rules.d/90-usbautomount.rules
      Code
      ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="sd*", RUN+="/bin/bash /bin/usbmount.sh mount /dev/%k"
      ACTION=="remove", SUBSYSTEMS=="usb", KERNEL=="sd*", RUN+="/bin/bash /bin/usbmount.sh umount /dev/%k"
      Code
      nano /bin/usbmount.sh && chmod +x /bin/usbmount.sh
  • Und deine Frage ist... :huh:

    Meine Lösung ist halt wesentlich einfacher zu verstehen - find ich..
    In besagtem Tutorial findest du auch Angaben die wichtig sein könnten um sicherzustellen das nur die eine Partition als "Backup Partition" erkannt wird und vom Script genutzt wird (zB die blkid)


    Bitte konkretisiere dein Problem oder deine Frage etwas mehr... denn ich hab keine Ahnung was ich dir jetzt noch schreiben könnte ;)

  • ok bash skripting ist nicht ganz meine Stärke, aber ich versuche es mal zu verstehen und hoffe dabei auf Deine/Eure Erklärungen...

    Was mir jetzt noch fehlt in diesem Skript, soweit ich es verstehe:
    1. es richtet sich nur an Festplatten mit einer Partition
    2. Es arbeitet so weit ich das verstehe, nicht mit eindeutigen Bezeichnungen der Partitionen (UUID)
    3. die angelegten Mountpoints werden nicht aufgeräumt (rm -rf)
    4. was passiert mit unterschiedlichen Dateisystemen? In meinem Fall ext4 und ntfs, aber vielleicht auch mal ein usb-stick fat32/vfat
    5. Inwiefern können Rechte angepasst werden?
    6. Eventuell wäre es auch schön, die Partitionslabel als mountpoints zu nehmen...was passiert insbesondere bei usb-sticks, wenn frisch angesteckte gleich heissen?

    Ich hoffe, das ist nicht zu aufwändig...;-)
    Danke auf jeden Fall schon einmal für Deinen bisherigen input!

  • Ich glaube es müsste jetzt einfach so klappen:

    Code
    udevadm info -a --p $(udevadm info -q path -n /dev/sda) | grep -i serial
    
    
    ATTRS{serial}=="000000000XXXXA49"
        ATTRS{serial}=="bcm2708_usb"


    Code
    sudo vi /etc/udev/rules.d/99-mount.rules
    ACTION=="add", SUBSYSTEMS=="usb", ATTRS{serial}=="000000000XXXXA49", RUN+="/bin/mkdir -p /media/samsung/sda1"
    ACTION=="add", SUBSYSTEMS=="usb", ATTRS{serial}=="000000000XXXXA49", RUN+="/bin/mkdir -p /media/samsung/sda2"
    ACTION=="add", SUBSYSTEMS=="usb", ATTRS{serial}=="000000000XXXXA49", RUN+="/bin/mount -t auto -o defaults /dev/sda1 /media/samsung/sda1"
    ACTION=="add", SUBSYSTEMS=="usb", ATTRS{serial}=="000000000XXXXA49", RUN+="/bin/mount -t ntfs-3g -o defaults /dev/sda2 /media/samsung/sda2", OPTIONS="last_rule"
    ACTION=="remove", SUBSYSTEMS=="usb", ATTRS{serial}=="000000000XXXXA49", RUN+="/bin/umount /media/samsung/sda1"
    ACTION=="remove", SUBSYSTEMS=="usb", ATTRS{serial}=="000000000XXXXA49", RUN+="/bin/umount /media/samsung/sda2"
    ACTION=="remove", SUBSYSTEMS=="usb", ATTRS{serial}=="000000000XXXXA49", RUN+="/bin/rmdir /media/samsung/sda1"
    ACTION=="remove", SUBSYSTEMS=="usb", ATTRS{serial}=="000000000XXXXA49", RUN+="/bin/rmdir /media/samsung/sda2", OPTIONS="last_rule"

Jetzt mitmachen!

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