18.5. USB Speichermedien

Beigetragen von Marc Fonvieille.

Der Universal Serial Bus (USB) wird von vielen externen Speichern benutzt: Festplatten, USB-Thumbdrives sowie von CD- und DVD-Brennern. FreeBSD bietet Unterstützung für Geräte mit USB 1.x, 2.0 und 3.0.

Anmerkung:

Die Unterstützung fürUSB 3.0 ist mit einiger Hardware, einschließlich Haswell (Lynx Point) Chipsätzen, nicht kompatibel. Wenn FreeBSD beim Booten mit dem Fehler failed with error 19 abbricht, müssen Sie xHCI/USB3 im BIOS deaktivieren.

Unterstützung für USB-Massenspeicher ist im GENERIC-Kernel enthalten. Für einen angepassten Kernel müssen die nachstehenden Zeilen in der Kernelkonfigurationsdatei enthalten sein:

device scbus>>>>>>># SCSI bus (required for ATA/SCSI)
device da>>>>>>># Direct Access (disks)
device pass>>>>># Passthrough device (direct ATA/SCSI access)
device uhci>>>>># provides USB 1.x support
device ohci>>>>># provides USB 1.x support
device ehci>>>>># provides USB 2.0 support
device xhci>>>>># provides USB 3.0 support
device usb>>>>>># USB Bus (required)
device umass>>>># Disks/Mass storage - Requires scbus and da
device cd>>>>>>># needed for CD and DVD burners

FreeBSD benutzt den umass(4)-Treiber, der das SCSI-Subsystem verwendet um auf USB-Geräte zuzugreifen. Da alle USB-Geräte vom System als SCSI-Geräte erkannt werden, dürfen Sie nicht device atapicam in die Kernelkonfigurationsdatei aufnehmen, wenn es sich bei dem Gerät um einen CD- oder DVD-Brenner handelt.

Der übrige Abschnitt beschreibt, wie Sie überprüfen können ob ein USB-Gerät von FreeBSD erkannt wird und wie Sie das Gerät so konfigurieren, dass es verwendet werden kann.

18.5.1. Konfiguration von Geräten

Um die USB-Konfiguration zu testen, schließen Sie das USB-Gerät an. Verwenden Sie dmesg um zu überprüfen, ob das Gerät in den Systemmeldungen erscheint. Dies sollte in etwa so aussehen:

umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x0100
umass0:4:0:-1: Attached to scbus4
da0 at umass-sim0 bus 0 scbus4 target 0 lun 0
da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device
da0: Serial Number WD-WXE508CAN263
da0: 40.000MB/s transfers
da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)
da0: quirks=0x2<NO_6_BYTE>

Fabrikat, Gerätedatei (da0), Geschwindigkeit und Kapazität werden je nach Gerät unterschiedlich sein.

Da ein USB-Gerät als SCSI-Gerät erkannt wird, kann camcontrol benutzt werden, um die mit dem System verbundenen USB-Massenspeicher anzuzeigen:

# camcontrol devlist
<STECH Simple Drive 1.04>          at scbus4 target 0 lun 0 (pass3,da0)

Alternativ kann usbconfig benutzt werden, um die Geräte aufzulisten. Weitere Informationen zu diesem Kommando finden Sie in usbconfig(8).

# usbconfig
ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)

Wenn das Gerät noch nicht formatiert ist, finden Sie in Abschnitt 18.3, „Hinzufügen von Laufwerken“ Informationen, wie Sie USB-Laufwerke formatieren und Partitionen einrichten. Wenn das Laufwerk bereits ein Dateisystem enthält, kann es von root nach den Anweisungen in Abschnitt 4.7, „Anhängen und Abhängen von Dateisystemen“ eingehängt werden.

Warnung:

Aus Sicherheitsgründen sollten Sie Benutzern, denen Sie nicht vertrauen, das Einhängen (z.B. durch die unten beschriebene Aktivierung von vfs.usermount) beliebiger Medien verbieten. Die meisten Dateisysteme wurden nicht entwickelt, um sich vor böswilligen Geräten zu schützen.

Um auch normalen Anwendern das Einhängen des Laufwerks zu gestatten, könnten Sie beispielsweise mit pw(8) alle potentiellen Benutzer dieser Gerätedateien in die Gruppe operator aufnehmen. Außerdem muss sichergestellt werden, dass operator Schreib- und Lesezugriff auf diese Gerätedateien haben. Hierfür werden die folgenden Zeilen in /etc/devfs.rules hinzugefügt:

[localrules=5]
add path 'da*' mode 0660 group operator

Anmerkung:

Verfügt das System über interne SCSI-Laufwerke, so verändern Sie die zweite Zeile wie folgt:

add path 'da[3-9]*' mode 0660 group operator

Dies wird die ersten drei SCSI-Laufwerke (da0 bis da2) davon ausschließen, in die Gruppe operator aufgenommen zu werden. Ersetzen Sie 3 durch die Anzahl der SCSI-Laufwerke. Weitere Informationen zu dieser Datei finden Sie in devfs.rules(5).

Aktivieren Sie nun die Regeln in /etc/rc.conf:

devfs_system_ruleset="localrules"

Als nächstes müssen Sie das System anweisen, auch normalen Benutzern das mounten von Dateisystemen zu erlauben, indem Sie die folgende Zeile in /etc/sysctl.conf hinzufügen:

vfs.usermount=1

Da diese Einstellung erst nach einem Neustart wirksam wird, können Sie diese Variable mit sysctl auch direkt setzen:

# sysctl vfs.usermount=1
vfs.usermount: 0 -> 1

Zuletzt müssen Sie noch ein Verzeichnis anlegen, in das das USB-Laufwerk eingehängt werden soll. Dieses Verzeichnis muss dem Benutzer gehören, der das USB-Laufwerk in den Verzeichnisbaum einhängen will. Dazu legen Sie als root ein Unterverzeichnis /mnt/username an, wobei Sie username durch den Login des jeweiligen Benutzers sowie usergroup durch die primäre Gruppe des Benutzers ersetzen:

# mkdir /mnt/username
# chown username:usergroup /mnt/username

Wenn Sie nun beispielsweise einen USB-Stick anschließen, wird automatisch die Gerätedatei /dev/da0s1 erzeugt. Ist das Gerät mit einem FAT-Dateisystem formatiert, kann es der Benutzer mit dem folgenden Befehl in den Verzeichnisbaum einhängen:

% mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username

Bevor das Gerät entfernt werden kann, muss es abgehängt werden:

# umount /mnt/username

Nach Entfernen des Geräts stehen in den Systemmeldungen Einträge, ähnlich der folgenden:

umass0: at uhub3, port 2, addr 3 (disconnected)
da0 at umass-sim0 bus 0 scbus4 target 0 lun 0
da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263          detached
(da0:umass-sim0:0:0:0): Periph destroyed

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.