USB-Speichermedien wie externe Festplatten oder USB-Sticks lassen sich an Routern die einen USB-Port verfügen einfach einbinden.
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.
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:
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:
Ferner wird Support für Charsets benötigt:
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.
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.
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. |
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 Speichermedien und deren Mountpoints können in LuCI unter Administration ‣ System ‣ Einhängepunkte verwaltet werden.
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.
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.
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.
In LuCI werden im oberen Bereich unter Administration ‣ System ‣ Einhängepunkte alle gemounteten Geräte angezeigt.
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.