Crmgo Blog

OpenWRT auf einen USB-Stick

OpenWRT auf einen USB-Stick

Aktualisieren Sie die Paketliste und installieren Sie die erforderlichen Module zur Unterstützung von USB-Speichergeräten und dem ext4-Dateisystem: Machen Sie sich keine Sorgen über die Fehlermeldung, die während der Installation des Pakets kmod-usb-storage auftritt (Barrier Breaker 14.07). Tatsächlich wird das Modul erfolgreich installiert.…

OpenWRT auf einen USB-Stick

Aktualisieren Sie die Paketliste und installieren Sie die erforderlichen Module zur Unterstützung von USB-Speichern und dem ext4-Dateisystem:

root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install block-mount kmod-usb-core kmod-usb2 kmod-usb-ohci kmod-usb-storage kmod-fs-ext4

Ignorieren Sie die Fehlermeldung, die während der Installation des Pakets kmod-usb-storage (Barrier Breaker 14.07) auftritt. Tatsächlich wird das Modul erfolgreich installiert.

kmod: failed to insert /lib/modules/3.10.49/sd_mod.ko

Starten Sie den Router neu:

root@OpenWrt:~# reboot

Verbinden Sie den USB-Speicher und prüfen Sie, wie das System darauf reagiert (es sollte ihn erkennen). In meinem Fall hat der Befehl dmesg Folgendes angezeigt:

root@OpenWrt:~# dmesg
...
[   18.800000] usb-storage 1-1.4:1.0: USB Mass Storage device detected
[   18.810000] scsi0 : usb-storage 1-1.4:1.0
[   18.810000] usbcore: registered new interface driver usb-storage
[   19.810000] scsi 0:0:0:0: Direct-Access SanDisk  Cruzer Fit 1.27 PQ: 0 ANSI: 6
[   19.820000] sd 0:0:0:0: [sda] 62530624 512-byte logical blocks: (32.0 GB/29.8 GiB)
[   19.830000] sd 0:0:0:0: [sda] Write Protect is off
[   19.830000] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[   19.830000] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[   19.850000]  sda: sda1 sda2 sda3
[   19.860000] sd 0:0:0:0: [sda] Attached SCSI removable disk
...

Wenn das System den Speicher und alle seine Partitionen erkannt hat, bearbeiten wir die Datei /etc/config/fstab und geben die Einhängepunkte an.

Anstelle der Partitionsnamen „sdxx“ in der fstab-Datei verwenden Sie die „uuid“-Identifikatoren, da diese eindeutig sind. Wenn Sie weitere (oder sogar mehrere) Speicher anschließen, gibt es keine Garantie, dass der Router dem USB-Speicher den richtigen Namen zuweist. Geben Sie daher anstelle des Partitionsnamens „device“ den eindeutigen Partitionsidentifikator „uuid“ an.

Die Identifikatoren der Partitionen können Sie durch Ausführen des Befehls block detect ermitteln und anschließend die entsprechenden Änderungen in fstab vornehmen. Wenn das System neu installiert wird, ist es besser, die fstab automatisch zu generieren:

root@OpenWrt:~# block detect >> /etc/config/fstab

Überprüfen Sie das Ergebnis:

root@OpenWrt:~# cat /etc/config/fstab
config 'global'
    option    anon_swap    '0'
    option    anon_mount   '0'
    option    auto_swap    '1'
    option    auto_mount   '1'
    option    delay_root   '5'
    option    check_fs     '0'

config 'swap'
    option    uuid         'b91e3bff-9e15-4fd0-82e7-25d75d889ce6'
    option    enabled      '0'

config 'mount'
    option    target       '/mnt/sda2'
    option    uuid         '7ee9d192-239f-4401-b749-3fb60b4f8eaa'
    option    enabled      '0'

config 'mount'
    option    target       '/mnt/sda3'
    option    uuid         'ad0381c6-31b8-4eda-ac21-a87bbd09eef2'
    option    enabled      '0

Nehmen Sie Änderungen in der Datei /etc/config/fstab vor. Die Parameter der Partition sda3, die für NAS erstellt wurde, kommentieren wir vorerst aus oder löschen wir (die NAS-Konfiguration erfolgt später):

root@OpenWrt:~# vi /etc/config/fstab 
config 'global'
    option    anon_swap    '0'
    option    anon_mount   '1'
    option    auto_swap    '1'
    option    auto_mount   '1'
    option    delay_root   '5'
    option    check_fs     '0'
    option    from_fstab   '1'

config 'swap'
    option    uuid         'b91e3bff-9e15-4fd0-82e7-25d75d889ce6'
    option    enabled      '1'

config 'mount'
    option    target       '/overlay'
    option    uuid         '7ee9d192-239f-4401-b749-3fb60b4f8eaa'
    option    fstype       'ext4'
    option    options      'rw,sync'
    option    enabled      '1'

Wenn die Parameter der Einhängepunkte offensichtlich sind, möchten wir auf die Parameter des globalen Abschnitts genauer eingehen:

option anon_swap  '0' # монтировать своп-раздел, даже если он не описан в fstab
option anon_mount '1' # монтировать раздел с данными, даже если он не описан в fstab
option auto_swap  '1' # автоматически монтировать своп-раздел при его обнаружении
option auto_mount '1' # автоматически монтировать раздел с данными при его обнаружении 
option delay_root '5' # задержка X секунд до попытки монтирования корневого раздела
option check_fs   '0' # проверять файловую систему при монтировании
option from_fstab '1' # читать данные fstab в случае "горячего" подключения устройства

Erstellen Sie ein temporäres Verzeichnis /mnt/sda2 (für die Übertragung des Systems, das sich im internen Speicher des Routers befindet), und hängen Sie die Partition des USB-Speichers dort ein.

root@OpenWrt:~# mkdir /mnt/sda2 
root@OpenWrt:~# mount /dev/sda2 /mnt/sda2

Kopieren Sie die Partition /overlay vom internen Speicher des Routers auf die Partition, die sich auf dem USB-Speicher befindet. Der Kopiervorgang erfolgt unter Beibehaltung aller Rechte.

root@OpenWrt:~# tar -C /overlay -cf - . | tar -C /mnt/sda2 -xf -

Nun können Sie die Partition aushängen und das temporäre Verzeichnis löschen:

root@OpenWrt:~# umount /mnt/sda2
root@OpenWrt:~# rm -rf /mnt/sda2

Starten Sie den Router neu:

root@OpenWrt:~# reboot

Wenn alles korrekt durchgeführt wurde, sollte der Router vom USB-Speicher booten. Wenn der Router nicht bootet: Trennen Sie den USB-Speicher, booten Sie mit dem internen /overlay, verbinden Sie den USB-Speicher, hängen Sie die Partitionen ein und überprüfen Sie die fstab (manchmal sogar mehrmals … das hilft :)) Selbst getestet!

Hinweis: Dieser Beitrag kann KI-unterstützt erstellt und anschließend redaktionell geprüft worden sein. Verantwortlich: Dmytro Lomaka, Kaltenkirchen.