Page 1 of 3 123 LastLast
Results 1 to 10 of 26

Thread: automatisch mount externe USB - Festplatte

  1. #1
    Join Date
    Nov 2010
    Location
    Germany, Stade
    Posts
    24

    Default automatisch mount externe USB - Festplatte

    Ich habe:
    openSUSE 11.3 (i586)
    1 eingebaute Festplatte, Standartpartition
    1 externe USB - Festplatte, mit ext4 formatiert 125,0 GiB, davon 105,1 GiB frei,
    und noch einmal ntfs formatiert 100,0 GiB davon 60, 0 GiB frei,
    also 2 Partitionen

    Die erste Partition der externen USB - Festplatte dient zum sichern der Home – Verzeichnisse. Gesichert wird mit rsync per Batchjob. Im Batchjob sind die Quell.- und Zielpfade fest definiert.
    Bisher war es so, wenn ich die externe Festplatte einschalte, openSUSE wird bereits ausgeführt, wird Sie als /media/Disk automatisch gemountet. Der Batchjob erwarte auch als Ziel /media/Disk/.

    Plötzlich ist es so, das nach jedem einschalten der Mountpunkt einen anderen Namen bekommt.
    Also:
    /media/Disk
    /media/Disk-1
    /media/Disk-2
    /media/Disk-3
    u.s.w.
    Aus der 2. ntfs-Partition wird:
    /media/extern
    /media/extern-1
    u.s.w.

    Die Mountpunkte werden einfach hochgezählt und mein Batchjob funzt nicht mehr, er kennt ja nur /media/Disk.

    Habe ich irgend was Systemtechnisch verändert? Nein!
    Updates aus dem Internet? Nein!
    Neue Software? Nein!

    Ich vermute, das an einer bestimmten Stelle im System ein umount (beim ausschalten der externen Festplatte oder beim herunterfahren de Systems) nicht richtig funktioniert!
    Hat einer ein Tip für mich, wie / wo ich den Fehler finden kann, damit es immer bei /media/Disk bleibt?

    Vorab schon einmal vielen Dank!

  2. #2
    Join Date
    Dec 2008
    Location
    Hamburg
    Posts
    458

    Default Re: automatisch mount externe USB - Festplatte

    Hallo zusammen,

    Quote Originally Posted by horstschulz View Post
    Hat einer ein Tip für mich, wie / wo ich den Fehler finden kann, damit es immer bei /media/Disk bleibt?
    Dein Freund heißt udev. Das wird aber Hardcore-Linux. So richtig schön auf der Konsole wie in guten alten Zeiten. Im Prinzip funktioniert das so: Der Daemon udev ersetzt den alten devfs. Er ist dafür zuständig, die Geräte in das Pseudodateisystem /dev einzubinden. Wird ein neues Gerät erkannte (hier Deine Festplatte und ihre Partitionen) dann wird das udev mitgeteilt und udev erzeugt einen Eintrag in /dev. Wenn Deine Platte nun eingebunden wird, dann erzeugt udev normalerweise /dev/sdb /dev/sdb1 und /dev/sdb2 bzw. /dev/sdb5 und /dev/sdb6, sofern sich die Partitionen in einer erweiterten befinden. Dann kommt der Automounter und mountet die nach /media/Disk und /media/Disk1.

    Das muss aber nicht so sein. Gibt es /dev/sdb schon, dann wird Deine Platte eben /dev/sdc. Dann bekommen natürlich auch die Partitionen einen anderen Namen und schon ist der Automounter verwirrt und mountet das evtl. woanders hin. Das Problem löst udev. Anders als bei seinem Vorgänger können udev Regeln übergeben werden, die beim Anschließen zu beachten sind. So kann ich dafür sorgen, dass ein Gerät immer denselben Namen bekommt. Die Partitionen könnten ja auch /dev/mobil/backup heißen und /dev/mobil/ntfs oder wie immer Du willst (im Rahmen der zulässigen Zeichen und Längen).

    Dann kann ich noch Programme ausführen lassen. So kann ich nach dem Benennen der Partition sie auch gleich an die richtige Stelle mounten. Dazu bedarfs es eines Eintrag in /etc/fstab und einer weiteren udev-Regel. Und schon klappt das . Die Platte ist immer da, wo sie das Skript erwartet, nachdem Du das Skript auf den neuen Mountpoint angepasst hast.

    Dazu müssen wir allerdings noch ein paar Sachen wissen. Wenn Du Lust hast, das zu lernen, dann mache ich weiter. Aber Du musst mitarbeiten.

    Liebe Grüße

    Erik

  3. #3
    Join Date
    Jan 2009
    Location
    Switzerland
    Posts
    1,529

    Default Re: automatisch mount externe USB - Festplatte

    Falls Ihr hier weitermacht, dann gibt es zumindest einen interessierten Mitleser. Ich versuche schon seit längerem, hinter die Geheimnisse von udev zu kommen.
    Technology is 'stuff that doesn't work yet.' -- Bran Ferren

  4. #4
    Join Date
    Dec 2008
    Location
    Hamburg
    Posts
    458

    Default Re: automatisch mount externe USB - Festplatte

    Hallo zusammen,

    nee, nicht mitlesen. Mitmachen. udev ist echt klasse. Damit kann man Windoof-Nutzer echt beeindrucken. Aber ich mache mal weiter.

    Der erste Schritt ist, sich darüber zu informieren, was udev denn so über das Gerät weiß. Dazu schließen wir das Gerät an, wechseln auf eine Konsole, verschaffen uns root-Rechte und geben folgenden Befehl ein:

    Code:
    udevadm info --name=/dev/geraet --query=all --attribute-walk
    Der Befehl udevadm dient zum Administrieren des udev. Daher der Name. Mit info geben wir an, dass wir was wissen wollen. Mit --name (oder für schwere Fälle --path) geben wir an, welches Gerät wir meinen. Das --query gibt an, was wir wissen wollen. Wir sind neugierig, wir wollen alles wissen. Und zum Schluß soll er durch die Attribute auch der Elterngeräte wandern und sie uns anzeigen. Bei der Ausgabe staunt der Windoof-User Bauklötze. *g*

    Code:
      looking at device '/devices/pci0000:00/0000:00:1d.7/usb5/5-4/5-4:1.0/host6/target6:0:0/6:0:0:0/block/sdb/sdb5':
        KERNEL=="sdb5"
        SUBSYSTEM=="block"
        DRIVER==""
        ATTR{start}=="4096"
        ATTR{size}=="1953519616"
        ATTR{stat}=="      74       56     1034      172        1        0        8        4        0      148      176"
    
      looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-4/5-4:1.0/host6/target6:0:0/6:0:0:0/block/sdb':
        KERNELS=="sdb"
        SUBSYSTEMS=="block"
        DRIVERS==""
        ATTRS{range}=="16"
        ATTRS{removable}=="0"
        ATTRS{ro}=="0"
        ATTRS{size}=="1953525168"
        ATTRS{capability}=="12"
        ATTRS{stat}=="      92      118     1662      284        1        0        8        4        0      252      288"
    
      looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-4/5-4:1.0/host6/target6:0:0/6:0:0:0':
        KERNELS=="6:0:0:0"
        SUBSYSTEMS=="scsi"
        DRIVERS=="sd"
        ATTRS{device_blocked}=="0"
        ATTRS{type}=="0"
        ATTRS{scsi_level}=="3"
        ATTRS{vendor}=="SAMSUNG "
        ATTRS{model}=="HD103SI         "
        ATTRS{rev}=="    "
        ATTRS{tgps}=="0"
        ATTRS{state}=="running"
        ATTRS{timeout}=="30"
        ATTRS{iocounterbits}=="32"
        ATTRS{iorequest_cnt}=="0x6b"
        ATTRS{iodone_cnt}=="0x6b"
        ATTRS{ioerr_cnt}=="0x0"
        ATTRS{modalias}=="scsi:t-0x00"
        ATTRS{evt_media_change}=="0"
        ATTRS{queue_depth}=="1"
        ATTRS{queue_type}=="none"
        ATTRS{max_sectors}=="240"
    [...]
      looking at parent device '/devices/pci0000:00/0000:00:1d.7':
        KERNELS=="0000:00:1d.7"
        SUBSYSTEMS=="pci"
        DRIVERS=="ehci_hcd"
        ATTRS{vendor}=="0x8086"
        ATTRS{device}=="0x293a"
        ATTRS{subsystem_vendor}=="0x1043"
        ATTRS{subsystem_device}=="0x1877"
        ATTRS{class}=="0x0c0320"
        ATTRS{irq}=="23"
        ATTRS{local_cpus}=="00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000003"
        ATTRS{local_cpulist}=="0-1"
        ATTRS{modalias}=="pci:v00008086d0000293Asv00001043sd00001877bc0Csc03i20"
        ATTRS{numa_node}=="0"
        ATTRS{enable}=="1"
        ATTRS{broken_parity_status}=="0"
        ATTRS{msi_bus}==""
    
      looking at parent device '/devices/pci0000:00':
        KERNELS=="pci0000:00"
        SUBSYSTEMS==""
        DRIVERS==""
    Ich habe das ein wenig gekürzt. Wie wir sehen, fängt er beim Gerät an, das wir angegeben haben und hangelt sich dann Elterngerät für Elterngerät durch, bis er bei der Kernel-Schnitstelle angelangt ist. Jedes dieser Attribute kann benutzt werden, um eine udev-Regel zu schreiben. Aber nicht alle sind sinnvoll. Deshalb suchen wir in der Ausgabe z. B. nach Modellbezeichnung, Hersteller oder, was ich bevorzuge, da es eindeutig ist, nach Seriennummern. Einfach mal in der Ausgabe blättern und nach verdächtigen Kandidaten suchen.

    Aber vorsicht! Nicht jede Seriennummer eignet sich. Erwische ich z. B. die vom Host-Controller und nicht eine von denen, die sich auf das angeschlossene Gerät beziehen, dann gilt die Regel immer, wenn etwas an den Controller angeschlossen wird. Je nach dem, was wir dann ausführen lassen, kann das fatale Folgen haben. Also suchen wir erstmal nach der Festplatte und finden folgende Zeilen:

    Code:
      looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-4/5-4:1.0/host6/target6:0:0/6:0:0:0':
        KERNELS=="6:0:0:0"
        SUBSYSTEMS=="scsi"
        DRIVERS=="sd"
        ATTRS{device_blocked}=="0"
        ATTRS{type}=="0"
        ATTRS{scsi_level}=="3"
        ATTRS{vendor}=="SAMSUNG "
        ATTRS{model}=="HD103SI         "
        ATTRS{rev}=="    "
        ATTRS{tgps}=="0"
        ATTRS{state}=="running"
        ATTRS{timeout}=="30"
        ATTRS{iocounterbits}=="32"
        ATTRS{iorequest_cnt}=="0x6b"
        ATTRS{iodone_cnt}=="0x6b"
        ATTRS{ioerr_cnt}=="0x0"
        ATTRS{modalias}=="scsi:t-0x00"
        ATTRS{evt_media_change}=="0"
        ATTRS{queue_depth}=="1"
        ATTRS{queue_type}=="none"
        ATTRS{max_sectors}=="240"
    So sieht das bei meiner externen Platte aus. Aus irgend einem Grund steht da aber leider die Seriennummer der Platte nicht. Also suche ich bei den Elterngeräten weiter und stoße auf folgendes:

    Code:
      looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-4':
        KERNELS=="5-4"
        SUBSYSTEMS=="usb"
        DRIVERS=="usb"
    [...]
        ATTRS{speed}=="480"
    [...]
        ATTRS{manufacturer}=="Sunplus Innovation Technology."
        ATTRS{product}=="USB to Serial-ATA bridge"
        ATTRS{serial}=="FAFFFFF0FDF1FFF9EF80712"
    Ich habe das auf die nötigen Informationen gekürzt. Die ersten Zeilen sagen uns, dass es sich um ein Gerät am USB handelt. Beruhigend ist, dass es mit 480 Mbit/s läuft. Die letzten drei Zeilen sind der Hersteller, die Produktbezeichnung und die Seriennummer. Wir haben jetzt eine eindeutige Bezeichnung des Geräts, mit der wir arbeiten können. Nun seid Ihr dran. Guckt mal selbst nach und sucht nach einer solchen Nummer.

    Ich bevorzuge übrigens deshalb die Seriennummern, da ich dann auch zwei baugleiche Geräte erkennen und getrennt behandeln kann. Vielleicht kaufe ich mir noch so eine Platte. Das Teil war billig und wie udev mir verrät, ist trotzdem gute HW verbaut.

    Liebe Grüße

    Erik

  5. #5
    Join Date
    Nov 2010
    Location
    Germany, Stade
    Posts
    24

    Default Re: automatisch mount externe USB - Festplatte

    hallo,
    es freud mich, das sich einer so viel Mühe macht und nicht einfach darauf hinweist ein Manuel zu lesen!
    Mittlerweile läuft es bei mit wieder, ich habe im Verzeichnis /media die Einträge Disk, Disk-1, u. s. w. und die Einträge in der .hal-mtab gelöscht, danach ein reboot und alles ist ok.
    Vorausgegangen war ein Systemabsturz, den ich nicht bedacht habe. Dadurch wurden die Einträge in /media nicht automatisch aktuallisiert. So ein Fehler möchte ich aber nicht noch einmal haben. Da scheint mir das udev das Richtige zu sein.
    Also hier mein Auszug:
    horst-s:/ # udevadm info --name=/dev/sdb --query=all --attribute-walk

    Udevadm info starts with the device specified by the devpath and then
    walks up the chain of parent devices. It prints for every device
    found, all possible attributes in the udev rules key format.
    A rule to match, can be composed by the attributes of the device
    and the attributes from one single parent device.

    looking at device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host2/target2:0:0/2:0:0:0/block/sdb':
    KERNEL=="sdb"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{range}=="16"
    ATTR{ext_range}=="256"
    ATTR{removable}=="0"
    ATTR{ro}=="0"
    ATTR{size}=="488397168"
    ATTR{alignment_offset}=="0"
    ATTR{discard_alignment}=="0"
    ATTR{capability}=="50"
    ATTR{stat}==" 344 17224 22810 6388 68 261 2632 5120 0 2004 11504"
    ATTR{inflight}==" 0 0"

    looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host2/target2:0:0/2:0:0:0':
    KERNELS=="2:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{device_blocked}=="0"
    ATTRS{type}=="0"
    ATTRS{scsi_level}=="3"
    ATTRS{vendor}=="Generic "
    ATTRS{model}=="USB Disk "
    ATTRS{rev}=="9.02"
    ATTRS{tgps}=="0"
    ATTRS{state}=="running"
    ATTRS{timeout}=="30"
    ATTRS{iocounterbits}=="32"
    ATTRS{iorequest_cnt}=="0x1ae"
    ATTRS{iodone_cnt}=="0x1ae"
    ATTRS{ioerr_cnt}=="0x1"
    ATTRS{modalias}=="scsi:t-0x00"
    ATTRS{evt_media_change}=="0"
    ATTRS{queue_depth}=="1"
    ATTRS{queue_type}=="none"
    ATTRS{max_sectors}=="240"

    looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host2/target2:0:0':
    KERNELS=="target2:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

    looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host2':
    KERNELS=="host2"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

    looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0':
    KERNELS=="1-2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb-storage"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{bInterfaceClass}=="08"
    ATTRS{bInterfaceSubClass}=="06"
    ATTRS{bInterfaceProtocol}=="50"
    ATTRS{modalias}=="usb:v058Fp6391d0100dc00dsc00dp00ic08isc06ip50"
    ATTRS{supports_autosuspend}=="0"

    looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2':
    KERNELS=="1-2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="c0"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{urbnum}=="1307"
    ATTRS{idVendor}=="058f"
    ATTRS{idProduct}=="6391"
    ATTRS{bcdDevice}=="0100"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="480"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="3"
    ATTRS{devpath}=="2"
    ATTRS{version}==" 2.00"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Generic"
    ATTRS{product}=="USB TO IDE Bridge"

    looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bMaxPower}==" 0mA"
    ATTRS{urbnum}=="54"
    ATTRS{idVendor}=="1d6b"
    ATTRS{idProduct}=="0002"
    ATTRS{bcdDevice}=="0206"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="480"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{version}==" 2.00"
    ATTRS{maxchild}=="8"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Linux 2.6.34-12-default ehci_hcd"
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{serial}=="0000:00:1d.7"
    ATTRS{authorized_default}=="1"

    looking at parent device '/devices/pci0000:00/0000:00:1d.7':
    KERNELS=="0000:00:1d.7"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci_hcd"
    ATTRS{vendor}=="0x8086"
    ATTRS{device}=="0x24dd"
    ATTRS{subsystem_vendor}=="0x1014"
    ATTRS{subsystem_device}=="0x0287"
    ATTRS{class}=="0x0c0320"
    ATTRS{irq}=="23"
    ATTRS{local_cpus}=="ffffffff"
    ATTRS{local_cpulist}=="0-31"
    ATTRS{modalias}=="pci:v00008086d000024DDsv00001014sd00000287bc0Csc03i20"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{enable}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}==""
    ATTRS{companion}==""

    looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
    Ich bin gespann wie es weiter geht!

  6. #6
    Join Date
    Sep 2008
    Location
    Sulzbach (Taunus), Hessen [Hesse], Deutschland [Germany]
    Posts
    2,178

    Question Re: automatisch mount externe USB - Festplatte

    Hallo an die 'Nachbarn' aus Hamburg und Stade und alle anderen!

    Mit Interesse verfolge ich den Workshop udev, der hier offenbar startet.
    Insbesondere da ich auch mal ein ähnliches Problem mit "disk1 bis disk56" hatte.
    Seit ich (unter anderem?) in fstab bzw. in dem entsprechenden Anklick-frontend in der YaST-Partitionsverwaltung
    mount by id / by-id angegeben habe
    und
    Quote Originally Posted by pistazienfresser View Post
    [...]"Power Management Preferences"> [...]:
    "On Battery Power"
    "When battery power is critically low:" "Suspend"
    "[x] Spin down hard disks when possible"

    "On AC Power" [...]
    ,

    ist es nicht mehr aufgetreten.

    Aber ich bin gespannt, wie man dies "grundlegender" angehen kann.

    puzzled pistazienfresser

  7. #7
    Join Date
    Dec 2008
    Location
    Hamburg
    Posts
    458

    Default Re: automatisch mount externe USB - Festplatte

    Hallo zusammen,

    @pistazienfresser
    By-ID ist langweilig und überhaupt nicht beeindruckend. Das ist der wichtigste Grund, das mit udev zu machen. Völlig nebensächlich ist natürlich, dass die Namen dadurch leichter für uns Menschen lesbar werden, denn wir Linuxuser sind selbstverständlich dazu in der Lage uns dreißigstellige Hexadezimalzahlen zu merken. Also machen wir mal weiter.

    In meinem letzten Beitrag habe ich meine Platte und ihre Werte als Beispiel genommen und die entscheidenden Zeilen eingestellt. Nun machen wir daraus eine Regel. Diese Regeln werden in

    Code:
    /etc/udev/rules.d/
    abgelegt. Der Name beginnt immer mit einer zweistelligen Zahl, die die Priorität angibt. Regeln mit niedrigen Zahlen werden zuerst ausgeführt. Also geben wir unseren Regeln niedrige Nummern, damit sie zuerst beachtet werden. Nach der Nummer folgt ein Bindestrich und nach dem Strich ein frei wählbarer Name. Die Datei erzeugen wir mit dem Editor unserer Wahl (Lang lebe vi!).

    Eine Regel besteht grundsätzlich aus zwei Teilen. Erst kommt eine mit Kommata getrennte Liste von Bedingungen. Nach der letzten Bedingung folgt eine Liste von Anweisungen. Als Bedingungen nehmen wir die gefundenen Werte, die uns devadm verraten hat. Also in meinem Fall sehen die Bedingungen so aus:

    Code:
    KERNEL=="sd?5", SUBSYSTEMS=="usb", ATTRS{serial}=="FAFFFFF0FDF1FFF9EF80712",
    Die erste Bedingung betrifft die Kernelmeldung, dass eine Platte (sd) angehängt wurde. Welchen Buchstaben diese Platte bekommt, wissen wir nicht. Deshalb ersetzen wir das mit einem "?". Dann kommt die Partition der Platte. In meinem Fall die erste logische Partition. Die zweite Bedingung erzählt udev, dass es den USB betrifft. Und als letztes setze ich die Seriennummer des Geräts ein. All diese Informationen habe ich von udevadm bekommen.

    Nun müssen wir nur noch sagen, was wir wollen. Wir wollen, dass das Gerät immer unter demselben Namen ansprechbar ist. Also geben wir ihm einen:

    Code:
    KERNEL=="sd?5", SUBSYSTEMS=="usb", ATTRS{serial}=="FAFFFFF0FDF1FFF9EF80712", NAME="airy1T", SYMLINK="usbdevices/airy1T"
    So lautet die vollständige Regel. "NAME" weist udev an, unter /dev einen entsprechenden Namen anzulegen. Das Gerät heißt danach /dev/airyT1. "SYMLINK" erzeugt einen Link im Verzeichnis /dev auf den Namen. Das Gerät ist hinterher auch mit /dev/usbdevices/airyT1 ansprechbar. Das kann zusammen oder alternativ benutzt werden. In der Praxis habe ich mich für den neuen Namen entschieden.

    Jetzt hat das Gerät einen neuen Namen, unter dem ich es mounten kann. Was noch fehlt, ist ein Eintrag in /etc/fstab und der mount-Befehl selbst. Den Eintrag in fstab spare ich mir hier. Den Eintrag für den mount-Befehl kriegen wir später.

    Zum Schluss noch ein Hinweis. In Horsts Ausgabe konnte ich keine vernünftige und eindeutige Seriennummer entdecken. Das Problem kann auf zwei Arten gelöst werden. Zum einen könnte man die Hersteller- und die Produkt-ID als zwei Bedingungen angeben. Das schafft meistens genug Eindeutigkeit. Will man es ganz genau, kann auch eine Umgebungsvariable des Geräts benutzt werden. Dazu rufen wir den Befehl wie folgt auf:

    Code:
    udevadm info --name=/dev/geraet --query=all
    Es folgt eine Ausgabe ähnlich dieser hier:

    Code:
    P: /devices/pci0000:00/0000:00:1d.7/usb8/8-4/8-4:1.0/host8/target8:0:0/8:0:0:0/block/sdb/sdb5
    N: airy1T
    S: disk/by-id/usb-SAMSUNG_HD103SI_FAFFFFF0FDF1FFF9EF80712-0:0-part5
    S: disk/by-path/pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:0-part5
    S: disk/by-uuid/61249314-5d8f-49ae-ac08-676b3e6e5c97
    E: ID_VENDOR=SAMSUNG
    E: ID_MODEL=HD103SI
    E: ID_REVISION=010f
    E: ID_SERIAL=SAMSUNG_HD103SI_FAFFFFF0FDF1FFF9EF80712-0:0
    E: ID_SERIAL_SHORT=FAFFFFF0FDF1FFF9EF80712
    E: ID_TYPE=disk
    E: ID_INSTANCE=0:0
    E: ID_BUS=usb
    E: ID_PATH=pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:0
    E: ID_FS_USAGE=filesystem
    E: ID_FS_TYPE=ext3
    E: ID_FS_VERSION=1.0
    E: ID_FS_UUID=61249314-5d8f-49ae-ac08-676b3e6e5c97
    E: ID_FS_UUID_ENC=61249314-5d8f-49ae-ac08-676b3e6e5c97
    E: ID_FS_LABEL=
    E: ID_FS_LABEL_ENC=
    E: ID_FS_LABEL_SAFE=
    E: FSTAB_NAME=/dev/airy1T
    E: FSTAB_DIR=/home/erik_buero/airy1T
    E: FSTAB_TYPE=ext3
    E: FSTAB_OPTS=noauto,rw,acl,user_xattr
    E: FSTAB_FREQ=0
    E: FSTAB_PASSNO=0
    Hier finden wir eine UUID, eine Universally Unique ID, die auch immer gleich sein sollte. Einen Wert aus dieser Ausgabe können wir nach diesem Schema als Bedingung benutzen:

    Code:
    ENV{ID_FS_UUID}=="61249314-5d8f-49ae-ac08-676b3e6e5c97"
    Und nun viel Spaß beim Ausprobieren.

    Liebe Grüße

    Erik
    Last edited by erikro; 09-Dec-2010 at 08:04. Reason: Fataler Tippfehler

  8. #8
    Join Date
    Nov 2010
    Location
    Germany, Stade
    Posts
    24

    Default AW: automatisch mount externe USB - Festplatte

    leider finde ich bei meinen Abfragen keine eindeutige ID.
    hier einmal der Auszug der USB-Platte, Partition 1:
    horst-s:/media # udevadm info --name=/dev/sdb1 --query=all
    P: /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host3/target3:0:0/3:0:0:0/block/sdb/sdb1
    N: sdb1
    S: block/8:17
    S: disk/by-id/usb-Generic_USB_Disk-0:0-part1
    S: disk/by-path/pci-0000:00:1d.7-usb-0:2:1.0-scsi-0:0:0:0-part1
    S: disk/by-id/edd-int13_dev80-part1
    E: UDEV_LOG=3
    E: DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host3/target3:0:0/3:0:0:0/block/sdb/sdb1
    E: SUBSYSTEM=block
    E: DEVNAME=sdb1
    E: ID_VENDOR=Generic
    E: ID_VENDOR_ENC=Generic\x20
    E: ID_VENDOR_ID=058f
    E: ID_MODEL=USB_Disk
    E: ID_MODEL_ENC=USB\x20Disk\x20\x20\x20\x20\x20\x20\x20\x20
    E: ID_MODEL_ID=6391
    E: ID_REVISION=9.02
    E: ID_SERIAL=Generic_USB_Disk-0:0
    E: ID_TYPE=disk
    E: ID_INSTANCE=0:0
    E: ID_BUS=usb
    E: ID_USB_INTERFACES=:080650:
    E: ID_USB_INTERFACE_NUM=00
    E: ID_USB_DRIVER=usb-storage
    E: ID_PATH=pci-0000:00:1d.7-usb-0:2:1.0-scsi-0:0:0:0
    E: ID_PART_TABLE_TYPE=dos
    E: ID_EDD=int13_dev80
    E: UDISKS_PRESENTATION_NOPOLICY=0
    E: UDISKS_PARTITION=1
    E: UDISKS_PARTITION_SCHEME=mbr
    E: UDISKS_PARTITION_NUMBER=1
    E: UDISKS_PARTITION_TYPE=0x0f
    E: UDISKS_PARTITION_SIZE=250048512000
    E: UDISKS_PARTITION_SLAVE=/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host3/target3:0:0/3:0:0:0/block/sdb
    E: UDISKS_PARTITION_OFFSET=8225280
    E: UDISKS_PARTITION_ALIGNMENT_OFFSET=0
    E: MAJOR=8
    E: MINOR=17
    E: DEVTYPE=partition
    E: DEVLINKS=/dev/block/8:17 /dev/disk/by-id/usb-Generic_USB_Disk-0:0-part1 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:2:1.0-scsi-0:0:0:0-part1 /dev/disk/by-id/edd-int13_dev80-part1
    es sei denn,
    E: DEVTYPE=partition
    E: DEVLINKS=/dev/block/8:17 /dev/disk/by-id/usb-Generic_USB_Disk-0:0-part1 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:2:1.0-scsi-0:0:0:0-part1 /dev/disk/by-id/edd-int13_dev80-part1
    könnte als eindeutige ID benutzt werden.
    Das würde dann aber wohl auch für jede andere USB-Platte gelten, soweit es mindestens 1 Partition darauf gibt.

  9. #9
    Join Date
    Nov 2010
    Location
    Germany, Stade
    Posts
    24

    Default AW: automatisch mount externe USB - Festplatte

    Nachtrag zum obrigen Beitrag:
    über yast / Hardwareinformation und hier USB-Disk gibt es viele eindeutige Schlüssel (für USB-Disk und pro Partition), aber diese sind nicht in der Abfrage udevadm zu finden?!

  10. #10
    Join Date
    Dec 2008
    Location
    Hamburg
    Posts
    458

    Default Re: AW: automatisch mount externe USB - Festplatte

    Hallo zusammen,

    komisch, dass udev keine eindeutigen IDs mitgeteilt bekommt. Was Yast noch so weiß, ist irrelevant. Es muss in den udev-Datenbanken stehen, damit wir es benutzen können. In dem Fall würde ich die vendor-ID und die product-ID aus der ersten Ausgabe nehmen. Das ist wahrscheinlich eindeutig genug, es sei denn, Du benutzt noch ein weiteres baugleiches Gerät. Was ergibt denn

    Code:
    udevadm info --name=/dev/sdb --query=all
    Vielleicht ist da was Brauchbares dabei. Eine Disk-ID zum Beispiel. Dass das mit der Partition nicht klappt, könnte daran liegen, dass es eine FAT-Partition ist. BTW: Du hast geschrieben, dass Du das zum Backup benutzen willst. Dir ist schon klar, dass beim Kopieren der Daten auf eine FAT- oder NTFS-Partition die Linux-Rechte verloren gehen?

    Liebe Grüße

    Erik

Page 1 of 3 123 LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •