Website-Suche

So erweitern Sie den LEDE/OpenWRT-Systemspeicher mit einem USB-Gerät


LEDE/OpenWRT ist ein Linux-basiertes Betriebssystem, das als Alternative zu proprietären Firmwares auf einer Vielzahl von Routern eingesetzt werden kann.

Die Installation bietet erhöhte Sicherheit, lassen Sie uns unseren Router optimieren und uns eine breite Palette von Softwarepaketen zur Verfügung stellen, die wir aus den System-Repositories installieren können.

Die Installation von Paketen ist
dank des opkg-Paketmanagers sehr einfach, aber oft ist der verfügbare Speicherplatz
auf gängigen Routern recht begrenzt. In diesem Tutorial sehen wir, wie to
den verfügbaren Systemspeicherplatz mit einem USB-Gerät erweitern.

In diesem Tutorial lernen Sie:

  • So verwenden Sie ein USB-Gerät, um den LEDE/OpenWRT-Systemspeicher zu erweitern
  • So kehren Sie zur Lagerkonfiguration zurück

Erweitern Sie den LEDE/OpenWRT-Systemspeicher mit USB

Verwendete Softwareanforderungen und Konventionen

Installation von Paketen



Um den Speicherplatz unseres Routers zu erweitern, müssen wir zunächst einige Pakete installieren. Um diese Aufgabe zu erfüllen, können wir opkg verwenden, den nativen und leichtgewichtigen Paketmanager von LEDE, daher ist das erste, was wir tun müssen, eine Verbindung zum System über ssh herzustellen. Für diesen Artikel gehe ich davon aus, dass die IP des Routers 192.168.0.1 ist. Wir melden uns als Root-Benutzer an:

ssh root@192.168.0.1
root@192.168.0.1's password:

Nachdem wir das Passwort des Root-Benutzers eingegeben haben (das wir bei der ersten Konfiguration des Routers eingerichtet haben – das gleiche, mit dem wir uns in die Weboberfläche des Routers einloggen), sollten wir mit der folgenden Nachricht begrüßt werden:

BusyBox v1.25.1 () built-in shell (ash)

     _________
    /        /\      _    ___ ___  ___
   /  LE    /  \    | |  | __|   \| __|
  /    DE  /    \   | |__| _|| |) | _|
 /________/  LE  \  |____|___|___/|___|                      lede-project.org
 \        \   DE /
  \    LE  \    /  -----------------------------------------------------------
   \  DE    \  /    Reboot (17.01.4, r3560-79f57e422d)
    \________\/    -----------------------------------------------------------

root@earendil:~#

Sobald wir eingeloggt sind, müssen wir die Liste der verfügbaren Pakete aktualisieren:

opkg update

Sobald die Liste aktualisiert ist, können wir die Pakete installieren, die wir benötigen:

opkg install block-mount kmod-fs-ext4 kmod-usb-storage e2fsprogs kmod-usb-ohci kmod-usb-uhci fdisk


Beachten Sie, dass das fdisk-Paket nur benötigt wird, wenn wir beabsichtigen, das USB-Gerät, das zur Erweiterung des Systemspeicherplatzes verwendet wird, direkt auf LEDE zu partitionieren: Wir werden diesen Vorgang im nächsten Schritt durchführen.

Vorbereitung von USB-Geräten

Wir können das USB-Gerät, das wir verwenden möchten, entweder auf einem separaten Gerät oder direkt auf dem LEDE-System mit fdisk manipulieren. Für dieses Tutorial wählen wir die zweite Option und erstellen eine einzelne Partition, die den gesamten verfügbaren Speicherplatz auf dem USB-Gerät verwendet.

Zuerst schließen wir den USB an unser Gerät an. Um zu überprüfen, ob es vom Kernel erkannt wird, können wir die letzten Zeilen der Ausgabe untersuchen, die vom Befehl dmesg erzeugt wird. Wir sollten ein Ergebnis ähnlich dem folgenden beobachten:

dmesg | tail
[   91.701565] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[   91.708962] scsi host2: usb-storage 1-1.1:1.0
[   92.714770] scsi 2:0:0:0: Direct-Access     Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2
[   92.726372] sd 2:0:0:0: [sda] 1994752 512-byte logical blocks: (1.02 GB/974 MiB)
[   92.734814] sd 2:0:0:0: [sda] Write Protect is off
[   92.739691] sd 2:0:0:0: [sda] Mode Sense: 23 00 00 00
[   92.745685] sd 2:0:0:0: [sda] No Caching mode page found
[   92.751147] sd 2:0:0:0: [sda] Assuming drive cache: write through
[   92.851061]  sda: sda1
[   92.858827] sd 2:0:0:0: [sda] Attached SCSI removable disk

Unser Gerät wurde als sda anerkannt. Um es zu partitionieren, starten wir fdisk und übergeben den USB-Gerätepfad als Dienstprogrammargument:

fdisk /dev/sda
Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help):

Das erste, was wir tun möchten, ist, eine neue DOS-Partitionstabelle auf dem Gerät zu erstellen, daher geben wir o als Befehl ein und drücken die Eingabetaste:

Command (m for help): o
Created a new DOS disklabel with disk identifier 0xd67f57f9.


Als nächstes möchten wir eine neue Partition hinzufügen. Wir verwenden den Befehl n, um die Operation auszuführen. Wir werden gefragt, welche Art von Partition wir erstellen möchten: Hier möchten wir eine primäre Partition. Wir werden auch aufgefordert, die Partitionsnummer und den ersten und letzten Sektor der Partition einzugeben. In allen drei Fällen können wir einfach die Eingabetaste drücken und die Standardeinstellungen akzeptieren.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p):

Using default response p.
Partition number (1-4, default 1):
First sector (2048-1994751, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-1994751, default 1994751):

Created a new partition 1 of type 'Linux' and of size 973 MiB.

Die Änderungen, die wir am Gerät vorgenommen haben, sind noch nicht wirksam. Um sie zu bestätigen, müssen wir den Befehl w verwenden:

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Jetzt, da unser Gerät partitioniert ist, müssen wir ein Dateisystem erstellen.

Erstellung von Dateisystemen

Der nächste Schritt besteht darin, ein ext4-Dateisystem auf der Partition zu erstellen, die wir im vorherigen Schritt erstellt haben. Wir müssen nur den Befehl mkfs.ext4 starten und den Pfad der Partition als Argument übergeben:

mkfs.ext4 /dev/sda1
mke2fs 1.43.3 (04-Sep-2016)
Creating filesystem with 249088 4k blocks and 62336 inodes
Filesystem UUID: 42109b6a-759a-48ba-a7b9-1508d0973131
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

Wir notieren uns die Dateisystem-UUID (42109b6a-759a-48ba-a7b9-1508d0973131): Wir benötigen sie, um im nächsten Schritt auf das Dateisystem zu verweisen.

Einrichtung der Fstab

In diesem Schritt ändern wir die System-fstab-Datei, die in unserem LEDE-System /etc/config/fstab ist. Innerhalb der Datei fügen wir den folgenden Abschnitt hinzu:

config 'mount'
        option  target  '/overlay'
        option  uuid    '42109b6a-759a-48ba-a7b9-1508d0973131'
        option  enabled '1'


Das durch die UUID identifizierte Dateisystem, das wir auf unserem USB-Gerät erstellt haben, wird auf /overlay gemountet, so dass es als Systemspeicher verwendet wird.

Kopieren des Inhalts des Systemspeichers auf das USB-Gerät

Damit unser Setup funktioniert, müssen wir den Inhalt des aktuellen Systemspeichers auf das USB-Gerät kopieren. Zuerst mounten wir das ext4-Dateisystem auf /mnt:

mount /dev/sda1 /mnt

Dann kopieren wir den Inhalt darauf:

cp -a /overlay/. /mnt

Im obigen Beispiel haben wir den Befehl cp mit zwei Optionen -a option verwendet: Es ist die Kurzversion von --archive und wird verwendet, um das Attribut der kopierten Dateien beizubehalten.

Starten Sie das System neu

Zu diesem Zeitpunkt sollte unser Setup abgeschlossen sein. Damit die Änderungen wirksam werden, müssen wir das System neu starten. Wir können das Gerät über den physischen Schalter aus- und wieder einschalten oder den folgenden Befehl ausgeben (das Terminal friert wahrscheinlich ein, sobald das Gerät ausgeschaltet wird):

reboot

Sobald das System neu gestartet ist, können wir uns erneut bei unserem Router anmelden und den Befehl df ausführen, indem wir /overlay als Argument übergeben. Auch hier haben wir die Option -h verwendet, um menschenlesbare Größen zu erhalten:

df -h /overlay
Filesystem                Size      Used Available Use% Mounted on
/dev/sda1               941.7M      5.2M    871.9M   1% /overlay

Wie erwartet können wir sehen, dass /dev/sda1 das Dateisystem ist, das auf /overlay gemountet ist: Die Größe beträgt 941,7 MB: nur 5,2 MB werden verwendet, was ungefähr 1% des verfügbaren Speicherplatzes entspricht.

Zurück zum Lager

Die Rückkehr zur Standardsystemkonfiguration ist ziemlich einfach, es müssen nur wenige Schritte ausgeführt werden. Das erste, was wir tun müssen, ist, die Systempartition zu identifizieren, die ursprünglich auf /overlay gemountet wurde. Um dies zu tun, müssen wir einen Blick auf die Datei /proc/mtd werfen:

cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 001333cc 00010000 "kernel"
mtd2: 0069cc34 00010000 "rootfs"
mtd3: 00460000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 007d0000 00010000 "firmware"


Was uns interessiert, ist die mtd-Datei mit dem rootfs_data Namen, der in diesem Fall mtd3 ist. Wir müssen das entsprechende Blockgerät, /dev/mtdblock3, auf /mnt mounten:

mount -t jffs2 /dev/mtdblock3 /mnt

Beachten Sie, dass wir die Option -t des mount-Befehls verwendet haben, um den Dateisystemtyp anzugeben, in diesem Fall jffs2 (ein Dateisystem, das speziell für Flash-Speichergeräte entwickelt wurde).

Sobald die Partition gemountet ist, müssen wir die Änderungen rückgängig machen, die zuvor in der fstab-Datei vorgenommen wurden. Zu diesem Zeitpunkt sollte die Originaldatei als /mnt/upper/etc/config/fstab zugänglich sein. Wir öffnen es mit unserem bevorzugten Texteditor und löschen, kommentieren oder ändern den Abschnitt, den wir zuvor hinzugefügt haben, aus:

config 'mount'
        [...]
        option  enabled '1'

An:

config 'mount'
        [...]
        option  enabled '0'

Sobald wir fertig sind, speichern wir die Änderungen. Zum Schluss hängen wir das Blockgerät aus und starten das System neu:

umount /mnt && reboot

Schlussfolgerung

In diesem Artikel haben wir gelernt, wie Sie den Speicherplatz eines LEDE-Systems mit einem einfachen USB-Gerät erweitern können. LEDE ist ein Open-Source-Betriebssystem, das auf einer Vielzahl von Routern installiert werden kann. Mit dieser einfachen Vorgehensweise verschaffen wir uns mehr Speicherplatz für die Systemdaten und nutzen diesen beispielsweise, um zusätzliche Pakete zu installieren, die nicht auf den meist geringen Speicherplatz passen, der auf Routern zur Verfügung steht. Um mehr über das LEDE-Projekt zu erfahren, besuchen Sie bitte die LEDE-Dokumentation.

Verwandte Artikel: