1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Talk USB Stick Platten automatisch mit iSerial einbinden

Dieses Thema im Forum "CS Root & Vserver" wurde erstellt von Grobi1, 3. Dezember 2012.

  1. Grobi1
    Offline

    Grobi1 Newbie

    Registriert:
    18. April 2009
    Beiträge:
    29
    Zustimmungen:
    8
    Punkte für Erfolge:
    3
    Würde gerne das Thema nochmal erweitern, aragorn schreibst hier

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?

    :
    Könnten wir da noch einmal genauer drauf eingehen?
    Würde es gerne so machen das ich verschiedenen Festplatten oder USB Sticks an den Igel stecke und
    diese dann über die iSerial automatisch mountet und beim Abziehen umountet werden.
    Das umounten würde glaub ich dann über ein Script funktionieren das alle 20sec oder so abfragt ob der Stick oder Platte noch vorhanden ist
    und diese dann umountet wenn nicht mehr vorhanden.Aber soweit sind meine Kentnisse noch nicht um so etwas mit einem Script umzusetzen.

    Mit usbmount werden USB Platten und Sticks zwar in die vordefinierten Verzeichnisse usb1 usb2 usw gemountet
    allerdings nicht immer in den gleichen Pfad da hier das umounten nicht funktioniert und so beim 2ten einstecken
    in den nächste freien Pfad gemountet wird. Hab das zwar so umgebogen das beim 2ten einstecken erst der angelegte Symlink
    gelöscht wird wenn es der gleiche Stick oder Platte ist und dann neu angelegt wird, ist aber nicht
    die allerbeste Lösung, da beim abziehen ja der Symlink erhalten bleibt und irgenwann die angelegten usb Pfade
    erschöpft sind und erst nach einem Reboot wieder zur Verfügung stehen.
     
    #1
  2. phantom

    Nervigen User Advertisement

  3. aragorn
    Offline

    aragorn Guest

    AW: USB Stick Platten automatisch mit iSerial einbinden

    hm? ne, es gibt einmal fürs einhängen ein script und einmal fürs wieder herrausziehen.. in meinem post ist das aber nur ein script was über das paramater "mount" oder "umount" die entsprechende aktion durchführt..

    der kernel merkt "da wird ein neues gerät eingehängt" und darauf reagiert udev:
    das versteh ich jetzt nicht so recht was du da gebastelt hast :)

    wichtig ist das beim herraus ziehen des gerätes der mountpoint auch entfernt wird da es sonst haufenweise fehlermeldungen im syslog gibt (ala cant access /mnt o.ä.)

    sofern du nicht mehrere partitionen auf der festplatte hast, kannst du den von mir beschriebenen weg benutzen - poste doch mal bitte deine bisherigen versuche (udev rules und scripts)
     
    #2
  4. Grobi1
    Offline

    Grobi1 Newbie

    Registriert:
    18. April 2009
    Beiträge:
    29
    Zustimmungen:
    8
    Punkte für Erfolge:
    3
    AW: USB Stick Platten automatisch mit iSerial einbinden

    Anders gesagt möchte ich "einfach" nur das wenn ich einen USB Stick oder eine USB Platte
    anstecke diese mit der Serial in ein Verzeichniß (z.B. media das mit Samba freigegeben ist) gemountet wird
    und beim abziehen wieder umountet wird und wieder verschwunden ist.

    Beispiel:
    Kommt ein Kumpel mit seiner Platte -> anstecken -> automatisch mounten -> Verzeichnis ist
    im Samba freigegeben mit lese und schreibrecht-> Bilder oder Filme kopieren oder Filme Bilder ansehen oder drauf kopieren ->
    abziehen und Symlink wird wieder entfernt.

    Hab nun mal mit hal und pmount getestet
    ob das so 100% funktioniert kann ich noch nicht sagen.
    Setzte System gerade neu auf.
    Hoffe bin auf dem richtigen Weg.
    Bin halt noch relativer Anfänger was Linux betrifft.
     
    #3
  5. aragorn
    Offline

    aragorn Guest

    AW: USB Stick Platten automatisch mit iSerial einbinden

    das problem dabei ist aber das man die iSerial der festplatte, oder andere merkmale die sie von anderen unterscheiden würde, kennen muss

    also die platte von deinem kumpel musst du dann erst mal vorort haben, oder wenn er auch einen linux rechner hat; dir die ausgabe von "lsusb -v" schicken (du willst die ja über usb anschliesen oder nicht?)



    aber ansonsten versteh ich nicht wieso du es nicht über den von mir beschriebenen weg probierst? also wozu hal oder pmount usw?
     
    #4
  6. Grobi1
    Offline

    Grobi1 Newbie

    Registriert:
    18. April 2009
    Beiträge:
    29
    Zustimmungen:
    8
    Punkte für Erfolge:
    3
    AW: USB Stick Platten automatisch mit iSerial einbinden

    Hab es nun so realisiert:
    90-usb.rules (etwas abgeändert):
    KERNEL=="sda1", ACTION=="add", SYMLINK+="USBPorta1", RUN+="/bin/sticka1 mount"
    KERNEL=="sda1", ACTION=="remove", RUN+="/bin/sticka1 umount"
    #
    KERNEL=="sda2", ACTION=="add", SYMLINK+="USBPorta2", RUN+="/bin/sticka2 mount"
    KERNEL=="sda2", ACTION=="remove", RUN+="/bin/sticka2 umount"
    #
    KERNEL=="sdb1", ACTION=="add", SYMLINK+="USBPortb1", RUN+="/bin/stickb1 mount"
    KERNEL=="sdb1", ACTION=="remove", RUN+="/bin/stickb1 umount"
    #
    KERNEL=="sdb2", ACTION=="add", SYMLINK+="USBPortb2", RUN+="/bin/stickb2 mount"
    KERNEL=="sdb2", ACTION=="remove", RUN+="/bin/stickb2 umount"
    #
    #
    KERNEL=="sdc1", ACTION=="add", SYMLINK+="USBPortc1", RUN+="/bin/stickc1 mount"
    KERNEL=="sdc1", ACTION=="remove", RUN+="/bin/stickc1 umount"
    #
    KERNEL=="sdc2", ACTION=="add", SYMLINK+="USBPortc2", RUN+="/bin/stickc2 mount"
    KERNEL=="sdc2", ACTION=="remove", RUN+="/bin/stickc2 umount"
    #
    #
    KERNEL=="sdd1", ACTION=="add", SYMLINK+="USBPortd1", RUN+="/bin/stickd1 mount"
    KERNEL=="sdd1", ACTION=="remove", RUN+="/bin/stickd1 umount"
    #
    KERNEL=="sdd2", ACTION=="add", SYMLINK+="USBPortd2", RUN+="/bin/stickd2 mount"
    KERNEL=="sdd2", ACTION=="remove", RUN+="/bin/stickd2 umount"
    #
    #
    KERNEL=="sde1", ACTION=="add", SYMLINK+="USBPorte1", RUN+="/bin/sticke1 mount"
    KERNEL=="sde1", ACTION=="remove", RUN+="/bin/sticke1 umount"
    #
    KERNEL=="sde2", ACTION=="add", SYMLINK+="USBPorte2", RUN+="/bin/sticke2 mount"
    KERNEL=="sde2", ACTION=="remove", RUN+="/bin/sticke2 umount"
    scripte:

    sticka1
    #!/bin/bash
    FROMdevice="/dev/USBPorta1"
    TOdir="/mnt/USB_Disk_0_1"
    #mountOPT="auto"
    #
    [ -z "$1" ] && echo "Usage: $0 [mount|umount]" && exit 0
    if [ $1 == "mount" ]; then
    [ ! -d $TOdir ] && mkdir -p $TOdir
    mount $mountOPT $FROMdevice $TOdir
    elif [ $1 == "umount" ]; then
    umount $TOdir
    rmdir $TOdir
    fi
    exit 0
    sticka2
    #!/bin/bash
    FROMdevice="/dev/USBPorta2"
    TOdir="/mnt/USB_Disk_0_2"
    #mountOPT="auto"
    #
    [ -z "$1" ] && echo "Usage: $0 [mount|umount]" && exit 0
    if [ $1 == "mount" ]; then
    [ ! -d $TOdir ] && mkdir -p $TOdir
    mount $mountOPT $FROMdevice $TOdir
    elif [ $1 == "umount" ]; then
    umount $TOdir
    rmdir $TOdir
    fi
    exit 0
    stickb1
    #!/bin/bash
    FROMdevice="/dev/USBPortb1"
    TOdir="/mnt/USB_Disk_1_1"
    #mountOPT="auto"
    #
    [ -z "$1" ] && echo "Usage: $0 [mount|umount]" && exit 0
    if [ $1 == "mount" ]; then
    [ ! -d $TOdir ] && mkdir -p $TOdir
    mount $mountOPT $FROMdevice $TOdir
    elif [ $1 == "umount" ]; then
    umount $TOdir
    rmdir $TOdir
    fi
    exit 0
    usw.
    zwar nicht mit Serial oder Plattenbezeichnung
    allerdings werden die Platten beim einstecken gemountet
    und beim abziehen wieder umountet.
    Wollte eigentlich gar nicht mehr haben.
    Außer der Bezeichnung wohin die Partitionen gemountet werden
    wie:
    UBPlatte_Serial0123456789_Part1
    UBPlatte_Serial0123456789_Part2
    UBPlatte_Serial9876543210_Part1
    UBPlatte_Serial9876543210_Part2
    oder
    USBPlatte_Name_Partition_Part1
    USBPlatte_Name_Partition_Part2
    usw.
    oder kann man da noch was im Script ändern das dort (rot)
    noch irgenwie eine Serial oder Name der Platte mit eingebracht werden kann.
    Aber Danke für deine Mühe, Hilfe und deine Scripte. Hat mir auf jeden Fall geholfen.
     
    #5
    1 Person gefällt das.
  7. aragorn
    Offline

    aragorn Guest

    AW: USB Stick Platten automatisch mit iSerial einbinden

    ja, du kannst auch ein einziges script benutzen was wie folgt aussieht:

    -> /bin/MOUNT
    Code:
    #!/bin/bash
    
    [ "$#" != "2" ] && echo "Usage: $0 [mount|umount] [device name]" && exit 0
    
    #
    FROMdevice="/dev/$2"
    TOdir="/mnt/USB_$2"
    mountOPT=""
    #
    if [ $1 == "mount" ]; then
        [ ! -d $TOdir ] && mkdir -p $TOdir
        mount $mountOPT $FROMdevice $TOdir
    elif [ $1 == "umount" ]; then
        umount $TOdir
        #rm -rf $TOdir
    fi
    
    exit 0
    und dann auch nur eine einzige udev-rule die dann so aussehen:
    Code:
    SUBSYSTEMS=="usb", KERNEL=="sd*", ACTION=="add", RUN+="/bin/MOUNT mount $name"
    SUBSYSTEMS=="usb", KERNEL=="sd*", ACTION=="remove", RUN+="/bin/MOUNT umount $name"
    (subsystem solltest du drin lassen da sonst die rule auch auf das systemlaufwerk zutrifft)
     
    Zuletzt von einem Moderator bearbeitet: 4. Dezember 2012
    #6
  8. Grobi1
    Offline

    Grobi1 Newbie

    Registriert:
    18. April 2009
    Beiträge:
    29
    Zustimmungen:
    8
    Punkte für Erfolge:
    3
    AW: USB Stick Platten automatisch mit iSerial einbinden

    Ja danke funktioniert so bestens.:good:
     
    #7

Diese Seite empfehlen