Kann externe USB Platte nicht mounten

R

ralli

Guest
Normalerweise arbeite ich mit Debian Squeeze auf meinem Arbeitsrechner. Jetzt aber möchte ich auch freeBSD kennen lernen. Dafür habe ich auf meinem Zweitrechner freeBSD Version 9 installiert mit dem Gnome Desktop, was auch einwandfrei funktionierte.

Seit gestern Nachmittag versuche ich nun, meine externe USB Festplatte zu mounten, weil da meine ganzen Daten drauf sind. Leider ohne Erfolg.

Dabei habe ich Vieles durchgelesen, was zu diesem Thema passte.

Nach eingestöpselter USB Platte habe ich

camcontrol devlist eingegeben

das zeigt mir

Code:
<ST3250823AS 3.03>                 at scbus0 target 0 lun 0 (ada0,pass0)
<HL-DT-ST DVD-ROM GDR8163B 0N21>   at scbus1 target 0 lun 0 (cd0,pass1)
<PHILIPS DVDR1628P1 Q1.1>          at scbus1 target 1 lun 0 (cd1,pass2)
<SAMSUNG HM500JI >                 at scbus2 target 0 lun 0 (pass3,da0)

das die Platte als Samsung HM500JI erkannt wurde.

Auch tail -f /var/log/messages zeigt, das die USB Platte erkannt wurde:

Code:
Jun  8 04:52:36 arbeit kernel: ugen4.2: <Iomega> at usbus4
Jun  8 04:52:36 arbeit kernel: umass0: <MSC Bulk-Only Transfer> on usbus4
Jun  8 04:52:36 arbeit kernel: umass0:  SCSI over Bulk-Only; quirks = 0x0100
Jun  8 04:52:36 arbeit kernel: umass0:2:0:-1: Attached to scbus2
Jun  8 04:52:36 arbeit kernel: da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
Jun  8 04:52:36 arbeit kernel: da0: <SAMSUNG HM500JI > Fixed Direct Access SCSI-2 device 
Jun  8 04:52:36 arbeit kernel: da0: 40.000MB/s transfers
Jun  8 04:52:36 arbeit kernel: da0: 476940MB (976773168 512 byte sectors: 255H 63S/T 60801C)
Es ist definitiv eine Iomega USB Platte.

Leider weiss ich nicht mehr, mit welchem Filesystem diese Festplatte formatiert wurde, denke aber das es ext3 unter Linux war.

Nun habe ich seit Stunden alles durchgelesen und ausprobiert, aber ich kann die Platte nicht mounten. Da sind aber meine ganzen Daten drauf, die möchte ich auf die eingebaute Festplatte sichern, um dann die externe USB Platte von IOMEGA mit ufs neu zu formatieren, damit alles freeBSD like ist.

Ich versuche folgender Maßen auf einer Konsole, bei der ich mich als root angemeldet habe, zu mounten:

Code:
mount -t ext2fs /dev/da0 /dvdrom

bekomme aber dann die Fehlermeldung:

mount: /dev/da0 : No such file or directory

Was mache ich falsch, langsam verzweifel ich ...

Im übrigen funktioniert das Mounten von CD oder DVD sowie von einem USB Stick, der auch mit ext3 formatiert wurde, einwandfrei.
 
/dev/da0 ist das blanke Device, ohne Partitionstabelle. Die jeweiligen Partitionen werden durch extra Devices repräntiert, deren Namen vom verwendeten Partitionsschema abhängt. Gängige sind:
- /dev/da0sN -> Nte MBR-Partition
- /dev/da0pN -> Nte GPT-Partition.

Lasse dir am besten einfach mal die Partitiontabelle mit "gpart show da0" ausgeben und stelle sie hier hinein. Dann können wir dir sagen, wie das korrekte Deevice heißt. :)
 
Danke Yamagi, das ging aber schnell. Hier kommt die Partitionstabelle:


arbeit# gpart show da0
=> 63 976773105 da0 MBR (465G)
63 976768002 1 linux-data [active] (465G)
976768065 5103 - free - (2.5M)
 
Also, dort ist eine Partition vom Typ "Linux Data" mit Index 1 in einer MBR-Tabelle. Es sollte also ein "/dev/da0s1" geben, was du je nach enthaltenem Dateisystem mounten kannst oder nicht. :)
 
Ich habe jetzt hiermit gemounted:

mount -t ext2fs /dev/da0s1 /dvd

und folgende Fehlermeldung bekommen.

mount: /dev/da0s1 : Operation not permitted

Wie finde ich heraus, mit welchem Filesystem die Platte formatiert wurde?

Muß ich noch andere Einstellungen vornehmen wie im Handbuch beschrieben?

Muß ich dies auch alles noch machen?

Damit auch normale Anwender (ohne root-Rechte) USB-Laufwerke einhängen können, müssen Sie Ihr System erst entsprechend konfigurieren. Als erstes müssen Sie sicherstellen, dass diese Anwender auf die beim Einhängen eines USB-Laufwerks dynamisch erzeugten Gerätedateien zugreifen dürfen. Dazu können Sie beispielsweise mit pw(8) alle potentiellen Benutzer dieser Gerätedateien in die Gruppe operator aufnehmen. Außerdem muss sichergestellt werden, dass Mitglieder der Gruppe operator Schreib- und Lesezugriff auf diese Gerätedateien haben. Dazu fügen Sie die folgenden Zeilen in die Konfigurationsdatei /etc/devfs.rules ein:

[localrules=5]
add path 'da*' mode 0660 group operator
Anmerkung: Verfügt Ihr System auch über SCSI-Laufwerke, gibt es eine Besonderheit. Haben Sie beispielsweise die SCSI-Laufwerke da0 bis da2 installiert, so sieht die zweite Zeile wie folgt aus:

add path 'da[3-9]*' mode 0660 group operator
Dadurch werden die bereits vorhandenen SCSI-Laufwerke nicht in die Gruppe operator aufgenommen.

Vergessen Sie nicht, die devfs.rules(5)-Regeln in der Datei /etc/rc.conf zu aktivieren:

devfs_system_ruleset="localrules"
Als nächstes müssen Sie Ihre Kernelkonfiguration anpassen, damit auch normale Benutzer Dateisysteme mounten dürfen. Dazu fügen Sie am besten folgende Zeile in die Konfigurationsdatei /etc/sysctl.conf ein:

vfs.usermount=1
Damit diese Einstellung wirksam wird, müssen Sie Ihr System neu starten. Alternativ können Sie diese Variable auch mit sysctl(8) setzen.

Danke für Deine Bemühungen.
 
mount: /dev/da0s1 : Operation not permitted

Ich tippe mal auf einen typischer Fehler für ein unsauberes Filesystem. Findet sich in /var/log/messages dazu ein passender Eintrag?

Probiere mal ein (dauert etwas):
Code:
fsck_ext2fs /dev/da0s1

bevor du die Platte einbindest.

Muß ich dies auch alles noch machen?

Ja, wenn ein normale Anwender die Platte auch mounten soll. Nein wenn Du diese nur als "root" einbinden willst.
 
nur zur Ergänzung, weil ich es etwas kürzer finde.
dmesg
sollte dir auch schon etliche Informationen einspielen, insbesondere auch einen grund dafür liefern, weshalb das Dateisystem unter Umständen nicht gemountet werden kann.

ls /dev | grep da
zum Beispiel zeigt mir auch sehr schnell, welche Partitionen erkannt wurden.

Sodann erinnere ich da etwas, dass es verhindert bestimmte ext-Konfigurationen zu mounten. FreeBSD ext hatte da Beschränkungen gegenüber einem Linux, sodaß es dazu kommen konnte, dass mit Linux hergestellte Dateisysteme nicht in freeBSD zu mounten waren. Der fehler betraf glaube ich große Platten und wenn du ansonsten keine passende fehlermeldung in dmesg siehst, könnte das vielleicht zutreffen. Ich weiß aber nicht, ob dies so überhaupt noch für 9er BSD gilt. Es war da irgendwas, das Linux mit 128Bit machte und das FreeBSD nicht konnte. Vielleicht wirst du fündig.

fsck schadet nie, aber ich würde es nur laufen lassen, wenn ein passender Fehlereintrag zu finden ist. Nach meiner Erfahrung muss zwar öfter mal ein fsck mit ext unter FreeBSD laufen, aber grundsätzlich würde ich da zunächst mit einem Linux reparieren und nicht direkt mit FreeBSD.

edit: ls /dev | da ist natürlich falsch, korrigiert
 
Zuletzt bearbeitet:
Danke Euch allen, ich habe viel hinzugelernt. Mir gefällt freeBSD immer besser.

pit234, gut zu wissen, danke für den Tipp.

So, deshalb habe ich meine Daten jetzt auf eine DVD gesichert und danach die externe USB IOMEGA Festplatte mit sysinstall - fdisk und danach flabel neu mit UFS formatiert.

Das hat funktioniert und wenn ich sie mit

Code:
mount /dev/da0s1 /backup

mounte, dann taucht sie auch im Nautilus auf.

Allerdings kann ich nicht als normer User drauf schreiben. Wenn ich mich mit Gnome als root anmelde, schon.

Muss ich sie noch in fstab eintragen?

Wäre das so richtig?

Code:
# Device        Mountpoint      FStype  Options Dump    Pass#

/dev/da0s1       /backup          ufs      rw     1       1

Denn das trage ich erst ein, wenn das als richtig bestätigt wird, denn ich möchte nicht das ich mein Systen neu aufsetzen muss.

Oder sollte ich das aus Sicherheitsgründen nicht machen, denn sollte mir ja reichen, wenn ich Datensicherung als root mache?

Code:
file -s /dev/da0s1
ergibt jetzt:

/dev/da0s1: Unix Fast File system [v2] (little-endian) last mounted on /mnt, last written at Fri Jun 8 17:17:54 2012, clean flag 0, readonly flag 0, number of blocks 122096000, number of data blocks 120176453, number of cylinder groups 645, block size 32768, fragment size 4096, average file size 16384, average number of files in dir 64, pending blocks to free 0, pending inodes to free 0, system-wide uuid 0, minimum percentage of free blocks 8, TIME optimization

Und wie hänge ich die Platte aus?

Wenn ich
Code:
umount /backup
eingebe dann kommt folgende Fehlermeldung:

umount: unmount of /backup failed: Device busy

Und einfach ausstöpseln ist bestimmt keine gute Idee, oder?
 
Hallo :)

Nein, einfach Ausstöpslen ist eine ganz schlechte Idee. Wenn er den Unmount verweigert, ist meist der Grund, dass irgendwas im System noch Daten auf der Platte referenziert. Mit fstat(1) kann man sehen, was es ist. Ich bin da aber meist recht radikal, wenn der Übeltäter nicht klar zu erkennen ist, gibt es ein "umount -f" und es ist Ruhe im Karton. In 9.0 und älter gibt es da auch einen "Bug", dass umount nach einiger Zeit abbricht, wenn der Vorgang zu lange dauert. Aber den dürften die wenigsten Personen je in der Praxis gesehen haben.

Ein interessanter Punkt ist bei USB-Festplatten auch nocht Softupdates. Einerseits machen Softupdates die ganze Geschichte deutlich schneller, weshalb man sie eigentlich tunlichst nutzen will. Auf der anderen Seite sind USB-Platten aber meist eh sehr langsam und zudem hat USB einfach nicht die für Softupdates notwendige Zuverlässigkeit, wodurch sich ein geringes Risiko des Datenverlusts ergibt.
 
Muss ich sie noch in fstab eintragen?

Wäre das so richtig?

Nein, vermutlich nicht.
Der Eintrag, wie du ihn gezeigt hast, dürfte passen und auch funktionieren, aber:
in der fstab wollen nur solche Geräte stehen, die auch tatsächlich beim Booten vorhanden sind und dann gemountet werden können.
Das stimmt für externe USB-Platten meist nicht.
Wenn doch, dann funktioniert es trotzdem besser, wenn du statt eines solchen Eintrages die UUID des Filesystems benutzt. Das ist sicherer, sagen wir mal, wenn irgendwann mal noch ein Stick steckt und nun als da0s1 erkannt würde, dann käme der ja deiner Platte ins gehege und im schlimmsten Fall könnte dann das System nicht weiter booten, also stehen bleiben.
Die benutzung einer UUID oder eines einfachen Namens (Labels) sind daher eindeutig(er) und besser, aber trotzdem will man meist nicht externe USB-Platten durch die fstab mounten lassen.

Meist werden diese Geräte von Hand eingesteckt, wenn das System bereits oben ist. Da gibt es meines Wissens drei bis vier Möglichkeiten, diese dann zu mounten:
1. Manuell, wie oben gezeigt
2. durch ein spezielles (Mini)-Script, das genau für dich und deinen Fall gemacht ist und dir dieses eine Device immer gleich mounted.
3. durch einen der beiden folgenden Automatismen
3a. HAL und Konsorten (die nicht das eigentliche Mounten erledigen, aber die wichtige Vorarbeit) und ein passendes Desktop-Environment
3b. Kamikazes Automounter (es gibt auch andere), die eine Lösung über ein allgemeines Script darstellen, das dauernd aktiv ist.

Aus meiner Sicht möchte ich dazu sagen:
Hal ist schrecklich und braucht viele Abhängigkeiten und es scheint nicht auf allen Systemen zu laufen. Dort, wo er einst eingeführt wurde, in der Linux-Welt, verzichtet man inzwischen möglichst darauf und nutzt ein neues System. Er ist aber trotzdem noch immer erste Wahl bei Systemen, wo er funktioniert und KDE3 oder GNOME genommen werden soll. (KDE4 kenne ich nicht).
Dort, wo er funktioniert, leistet er gute Dienste und funktioniert ausgezeichnet.
Kamikazes Automounter kommt in der allgemeinen Bewertung hier gut weg, bei mir lief er nicht, als ich den mal testen wollte.
Für beide Automatismen zusammen gilt, dass sie im Grunde nicht wirklich viel Arbeit abnehmen, denn es ist ja kein Hexenwerk, einen Mountbefehl per Hand abzusetzen. Auf meinen letzten Systemen habe ich deshalb ganz darauf verzichtet. Ich vermisse es nicht. Im Gegenteil, es ist mir sogar lieber, wenn ich das Mounten selbst steuern kann.
 
Hallo Yamagi

Also ich mache das jetzt auch mit umount -f, das funktioniert einwandfrei. Sicher war ich mir nicht, denn irgendwo las ich, das das auch schlimmstenfalls zu Datenverlust führen könne, wenn das unmounten erzwungen würde. Leider habe ich die Quelle nicht mehr, aber ich glaube sogar mich zu erinnern, das das im freeBSD Handbuch stand, was ich ja (fast) gänzlich durchgearbeitet habe.

Softupdates scheiden dann natürlich aus, wenn ein Datenverlust wahrscheinlich ist. Mein USB Stick, ein micro Cruizer 8 GB ist tatsächlich grottenlangsam, aber ich habe ihn mal zum Geburtstag bekommen und einem geschenkten Gaul schaut man ja nicht ins Maul. Hingegen bin ich mit dem Datendurchsatz der IOMEGA USB Platte gänzlich zufrieden, da ich auch keine größeren Datenmengen täglich sichern muß.

Hallo pit234a

Dann macht das bei USB Geräten ja keinen Sinn mit dem Eintrag in der fstab Datei. Jetzt habe ich mich entschlossen, händisch zu mounten/umonten. Das ist ja auch kein großer Akt.

Euch beiden danke ich für die schnelle und tiefschürfende Aufklärung, die meine Lernkurve steil nach oben brachte. Natürlich arbeite ich auch die entsprechenden man Pages durch und das freebSD Handbuch habe ich auch schon durchgelesen, sowie http://wiki.bsdforen.de/freebsd/umsteiger und http://www.denkrobat.de/wiki/index.php/Hauptseite die mir auch bei dem Umstieg von Linux auf FreeBSD geholfen haben. Da ich gerne hinter die Kulissen schau und mich alles interessiert, so bin ich ja bei freeBSD genau richtig, denn das ist alles sehr transparent, klar strukturiert und eindeutig nachvollziehbar.
 
ralli schrieb:
Also ich mache das jetzt auch mit umount -f, das funktioniert einwandfrei. Sicher war ich mir nicht, denn irgendwo las ich, das das auch schlimmstenfalls zu Datenverlust führen könne, wenn das unmounten erzwungen würde. Leider habe ich die Quelle nicht mehr, aber ich glaube sogar mich zu erinnern, das das im freeBSD Handbuch stand, was ich ja (fast) gänzlich durchgearbeitet habe.
Es war dann sicher so gemeint, dass du mit "umount -f" natürlich ein gewisses Risiko hast, das Dateisystem einer noch darauf arbeitenden Anwendung unter dem Hintern wegzuziehen. Un diese Anwendung kann dann abstürzen oder andere Dinge machen, durch die noch ungespeicherte Daten verloren gehen. Das Dateisystem selbst wird aber sauber ausgehangen.
 
Aha gut zu wissen, aber da kann ja drauf geachtet werden, das das nicht passiert!
 
Dann macht das bei USB Geräten ja keinen Sinn mit dem Eintrag in der fstab Datei.

Meist nicht. Mir fallen nur zwei Möglichkeiten ein: wenn du davon booten willst oder zur Bootzeit wechselnde Szenarien durch Austausch einer externen Platte oder eines Sticks herbeiführen möchtest. Also, wenn du zum Beispiel mehrere gleiche Installationen hast und etwa unterschiedliche Arbeitsumgebungen für deinen User willst, kannst du dessen Heimatverzeichnis auf einem externen Datenträger anlegen und dann beim Booten durch die fstab mounten.
Das Beispiel scheint so nicht sonderlich Sinn zu machen. Aber es gibt derartige/ähnliche Konstruktionen, um etwa bei sogenannten Live-Systemen oder bei Embeded-Systemen lokale Settings zu einem ansonsten stabilen, also unveränderlichen System hinzu zu nehmen.Dabei wird oft ein bestehendes Verzeichnis mit allgemeinen Setting "übermounted", es wird also ein spezielles Medium dorthin eingebunden und dieses dann normalerweise rw gemacht. Das ist ein ziemlich interessanter Ansatz mit einer Reihe von praktischen Anwendungsmöglichkeiten.
Allerdings sind die speziellen Medien kaum jemals USB-Sticks.
Das hat aber andere Gründe und bedeutet nicht unbedingt, dass sie da vollkommen untauglich wären. Entsprechende Vorsicht vorausgesetzt, kann man in vielen Fällen sehr gut mit günstigen USB-Sticks auskommen.
 
Ich möchte noch abschließend berichten, das das Mounten und Unmounten jetzt völlig fehlerfrei für alle meine USB Geräte und CD/DVD funktioniert. Kann ich irgendwie den Thread als gelöst markieren? Ich habe nichts gefunden, oder ist das hier in diesem Forum nicht üblich?
 
Zurück
Oben