USB Speichermedien einbinden

USB-Speichermedien wie externe Festplatten oder USB-Sticks lassen sich an Routern die einen USB-Port verfügen einfach einbinden.

Notwendige Pakete installieren

Grundlegender USB-Suport muss bereits verfügbar sein. Dies sollte jedoch auf den meisten geräten mit USB-Bereits der Fall sein. Wenn nicht dann siehe Basic USB Support im OpenWrt Wiki.

Folgende Pakete müssen für USB-Speichermedien installiert werden, siehe Pakete installieren.

  • kmod-usb-storage
  • block-mount

Warnung

block-mount kollidiert zur Zeit mit Datenien, die bereits von busybox bereitgestellt werden. Es ist daher notwendig die beiden oben gennanten Pakete mit opkg install kmod-usb-storage block-mount –force_overwrite zu installieren. Eine Installation über LuCI ist daher derzeit nicht möglich.

Je nach auf dem externen Medium verwendeten Dateisystem werden noch kmod-fs-* Pakete benötigt, die geläufigsten sind:

  • kmod-fs-ext4 - für EXT2, EXT3 und EXT4
  • kmod-fs-ntfs - für NTFS
  • kmod-fs-reiserfs - Für ReiserFS
  • kmod-fs-vfat - Für VFAT/FAT32

Wird kmod-fs-vfat verwendet dann muss zusätzlich auch noch eine Codepage installiert werden, diese befinden sich in den Paketen kmod-nls-cp*. Es ist empfehlenswert, diese Codepages zu installieren:

  • kmod-nls-cp437
  • kmod-nls-cp850
  • kmod-nls-cp852

Ferner wird Support für Charsets benötigt:

  • kmod-nls-iso8859-1
  • kmod-nls-iso8859-15

Automatisches mounten aktivieren

Nach Installation der benötigten Pakete sind zwei Laufwerke vorkonfiguriert aber nicht aktiviert. Sie verhindern damit ein automatisches Einbinden von externen Laufwerken ins Filesystem. Es ist empfehlenswert diese zunächst zu löschen:

uci del fstab.@mount[0]
uci del fstab.@swap[0]
uci commit fstab

Per Default werden nun externe Laufwerke sobald sie angeschlossen wurden automatisch an einen Mountpoint in /mnt/ gemounted, z.B. nach /mnt/sda1.

Wenn das nicht funktioniert dann schaue im System Log nach ob dort Fehlermeldungen sichtbar sind.

USB-Storage-Geräte konfigurieren und feste Mountpoints zuweisen

Für bessere Kontrolle darüber, wohin Geräte gemounted werden und die Möglichkeit Mountoptionen anzugeben müssen USB-Storage-Geräte manuell konfiguriert werden. Dies kann via LuCI oder auf der Shell des Routers geschehen.

Optionen für das Mounten externer Speichermedien

Folgende Optionen können sowohl mit LuCI als auch auf der Shell gesetzt werden, um das Einbinden externer Medien zu kontrollieren:

Option LuCI Option Shell Beschreibung
Aktiviert enabled Bestimmt ob dieses Gerät eingebunden wird
Schnittstelle device Gerät/Partition das gemounted werden soll. Wenn UUID oder Label ebenfalls gesetzt sind, dann werden diese bevorzugt.
Mountpunkt target Der Mountpunkt, an den das Gerät im dateisystem des Routers eingebunden werden soll. Übliche Praxis ist, Geräte unterhalb von /mnt/ einzuhängen.
Dateisystem fstype Dateisystem auf dem Datenträger, der eingebunden werden soll, z.B. vfat, ext2, ext3, ext4 oder ntfs. Wird diese option weg bzw. leer gelassen, dann wird versucht den Typ des Dateisystems automatisch zu erkennen.
UUID uuid UUID des Gerätes oder der Partition, die eingehängt werden soll. Siehe UUID und Label herausfinden.
Label label Label des Dateisystems, das eingehängt werden soll. Wird gleichzeitig eine UUID konfiguriert dann hat die UUID Vorrang. Siehe UUID und Label herausfinden.
Mount-Optionen options Spezielle Mount-Optionen, die dem mount-Kommando mitgegeben werden sollen. Für mögliche Optionen siehe: mount Manpage.

UUID und Label herausfinden

Wenn für einzelne Medien sichergestellt werden soll, dass sie immer an den selben Mountpoint gemountet werden, dann sollte das Medium vorzugsweise anhand seiner UUID oder des Labels anstelle anhand des Device, das sich verändern kann gemounted werden. Um UUID oder Label auf der Shell herauszufinden führt man, während das Speichermedium eingesteckt ist folgendes aus:

root@freifunk:~# blkid
/dev/mtdblock2: TYPE="squashfs"
/dev/sda1: SEC_TYPE="msdos" LABEL="liveusb" UUID="4DE7-F873" TYPE="vfat"

Externe Medien in LuCI konfigurieren

Externe Speichermedien und deren Mountpoints können in LuCI unter Administration ‣ System ‣ Einhängepunkte verwaltet werden.

Übersicht Mountpoints konfigurieren in LuCI

Klicke direkt darunter auf Hinzufügen, um ein externes Speichermedium manuell zu mounten. Es öffnet sich eine Seite, auf der das Medium konfiguriert werden muss.

Mountpoints hinzufügen bzw. konfigurieren in LuCI

Wähle unter Schnittstelle ein Gerät aus. Alternativ kann das Gerät auch im Tab Erweiterte Einstellungen anhand seiner UUID oder seinem Label identifiziert werden. Wähle anschliessend unter Mountpunkt den Mountpoint im Dateisystem des Routers aus. Unter Dateisystem kann das Dateisystem das sich auf dem externen Medium befindet ausgewählt werden. Wird dies leer gelassen dann wird versucht das Dateisystem automatisch zu erkennen. Unter Mount-Optionen im Tab Erweiterte Einstellungen können weitere Optionen für den mount-Befehl angegeben werden, der dafür zuständig ist, die externen Medien ins Dateisystem einzubinden.

Für eine Erklärung der einzelnen Optionen siehe Optionen für das Mounten externer Speichermedien.

Externe Medien auf der Shell konfigurieren

Die Einstellungen für externe Datenträger befinden sich in der Datei /etc/config/fstab. Für jeden Mountpunkt wird eine Sektion vom Typ mount:

config mount 'myusbstick'
      option enabled '1'
      option device '/dev/sda1'
      option target '/mnt/myusbstick'

ALternativ können diese Einstellungen auch mit uci gemacht werden:

uci set fstab.myusbstick=mount
uci set fstab.myusbstick.enabled=1
uci set fstab.myusbstick.device="/dev/sda1"
uci set fstab.myusbstick.target="/mnt/myusbstick"

Für eine Erklärung der einzelnen Optionen siehe Optionen für das Mounten externer Speichermedien.

Gemountete Geräte anzeigen

In LuCI werden im oberen Bereich unter Administration ‣ System ‣ Einhängepunkte alle gemounteten Geräte angezeigt.

Übersicht Mountpoints in LuCI

Auf der Shell kann das mount-Kommando verwendet werden, um diese Informationen anzuzeigen:

root@freifunk:~# mount
rootfs on / type rootfs (rw)
/dev/root on /rom type squashfs (ro,relatime)
proc on /proc type proc (rw,noatime)
sysfs on /sys type sysfs (rw,noatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)
tmpfs on /dev type tmpfs (rw,noatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,noatime,mode=600)
/dev/mtdblock3 on /overlay type jffs2 (rw,noatime)
overlayfs:/overlay on / type overlayfs (rw,noatime,lowerdir=/,upperdir=/overlay)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
none on /proc/bus/usb type usbfs (rw,relatime)
/dev/sda1 on /mnt/liveusb type vfat (rw,relatime,[...])

In beiden Fällen wird sichtbar, dass das externe Medium /dev/sda1 auf den Mountpoint /mnt/liveusb gemounted ist.