Willkommen! Melden Sie sich an oder registrieren Sie sich.

Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.

Anmelden - oder - Benutzerkonto erstellen

Flash voll - was tun

Es werden immer wieder crashlogs hochgeladen, weil die Box nicht mehr startet - oft liegt es daran, dass der Flashspeicher voll ist


Typische Meldung dann im crashlog > Error: no space left on device

Enigma2 schreibt beim Starten ein paar Config files, wenn die nicht mehr erstellt/geändert werden können, crasht die Box.
Bei den Boxen mit wenig Flashspeicher wie der dm800hd, dm800se v1, dm500hd v1 liegt es meist an zu vielen installierten Plugins oder Picons etc.


Die aktuellen DreamOS Boxen haben genug Speicher, wenn da der Flash voll ist, ist meist eine Aufnahme im Flash gelandet oder man hat eine große Datei z.B. per FTP ins falsche Verzeichnis geschoben.

Hier ein paar Lösungsansätze um den/die Speicherfresser zu finden mittels Befehlen in der Konsole .


Alle Befehle zum Überprüfen vorab als Übersicht

  • Speicherplatz des flash prüfen >   
    df -h /
  • nur im DreamOS verfügbar den apt cache leeren >
    apt-get clean

  • verbrauchte Inodes anzeigen (funktioniert nur, wenn das Paket coreutils installiert wurde - vollwertiges df anstatt dem busybox df) >
    df -i /

Vorgehensweise / Anwendbar in folgenden OE1.6 - OE2.5

  • Flash als bind mount nochmal mounten >
    mkdir /tmp/flash

    mount -o bind / /tmp/flash
  • den Speicherverbrauch aller Ordner in / = /tmp/flash anzeigen >
    du -sch /tmp/flash/*

    du -sch /tmp/flash/xy/*
  • nach größeren files (z.B. > 10MB) suchen, da sollte nur 3-4 libraries (.so Dateien) gelistet werden (oder u.U. .img files im OE2.0)>
    find /tmp/flash -type f -size +10000k
  • oder nach z.B. .ts files oder anderen extensions (.png, .avi, .mkv etc.) suchen >
    find /tmp/flash -type f -name "*.ts"

    find /tmp/flash -type f -name "*.png"
  • Gesamtanzahl der .png Dateien (oder anderer Dateiendungen) >
    find /tmp/flash/picon -type f -name "*.png"|wc -l

  • Anzahl der gefundenen .png Dateien (oder anderer Dateiendungen) nach Ordner gelistet >
    find /tmp/flash/ -name "*.png" -exec wc -l {} \;

Einzelne Lösungsschritte im Detail:
(die Konsolen Ausgaben wurde zu Demozwecken manuell angepasst - 960MB used ist geschummelt [Blockierte Grafik: https://board.newnigma2.to/wbb4/wcf/images/smilies/wink.png] )
erstmal den Flash speicher prüfen, wenn der 100% benutzt wird, braucht ihr nicht mal mehr den crashlog lesen ...


Code
  1. root@dm900uhd:~# df -h /
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/root 961M 961M 0M 100% /
  4. root@dm900uhd:~#


Bei den DreamOS Boxen kann man erstmal den apt cache mit apt-get clean löschen, das bringt meist ein paar MB und die Box startet wieder


im Beispiel wurden schon mal 15MB frei

Code
  1. root@dm900uhd:~# apt-get clean
  2. root@dm900uhd:~# df -h /
  3. Filesystem Size Used Avail Use% Mounted on
  4. /dev/root 961M 946M 15M 98% /
  5. root@dm900uhd:~#


Wenn das Paket coreutils installiert wurde, kann man die verbrauchten Inodes prüfen.
Wenn die verbraucht sind, meldet die Box auch "no space left" obwohl genügend Speicher frei wäre,


aber da müsste man den Flash mit einer Menge Picons vollballern


Code
  1. root@dm900uhd:~# df -i /
  2. Filesystem Inodes IUsed IFree IUse% Mounted on
  3. /dev/root 63488 20901 42587 33% /
  4. root@dm900uhd:~#


Die Möglichkeiten bestehen im OE2.0 mit opkg nicht, da landet der cache im tmpfs und ist nach einem reboot weg und das busybox df kann keine inodes anzeigen.

Jetzt muss noch der/die Speicherfresser im Flash "gesucht" werden - die folgenden Schritte funktionenieren von OE1.6 - OE2.5. Den Flash mit einem bind mount erneut temporär mouten, dann wird im 2. mountpoint der Inhalt des Flash ohne den Inhalt der Storage devices angezeigt, also alles unterhalb der Einhängepunkte. Festplatten, USB-Sticks etc. müssen so nicht vorher ausgehängt werden.


Wichtig ist, das man nach Ausschließlich in /tmp/flash/... sucht, gegebenenfalls löscht etc.

Code
  1. root@dm900uhd:~# mkdir /tmp/flash
  2. root@dm900uhd:~# mount -o bind / /tmp/flash
  3. root@dm900uhd:~# df -h /tmp/flash
  4. Filesystem Size Used Avail Use% Mounted on
  5. /dev/root 961M 946M 15M 98% /
  6. root@dm900uhd:~#


jetzt sehen wir uns den Speicherverbrauch der Ordner im temporären root Verzeichnis an, die üblichen Verdächtigen liegen meist in /media

man sieht, in /media liegen 455MB, das sollten nur ein paar KB sein, dann sieht man sich den Speicherbrauch der Unterordner des betroffenen Ordners an


Code
  1. root@dm900uhd:~# du -sch /tmp/flash/media/*
  2. 16K /tmp/flash/media/NAS
  3. 4,0K /tmp/flash/media/RPi
  4. 420K /tmp/flash/media/hdd
  5. 4,0K /tmp/flash/media/hdd-int
  6. 445M /tmp/flash/media/net
  7. 4,0K /tmp/flash/media/sd
  8. 4,0K /tmp/flash/media/usb
  9. 445M total
  10. root@dm900uhd:~#


Scheinbar ist in /media/net eine Aufnahme gelandet, einfach in /tmp/flash/media/net per FTP, ssh etc. nachsehen was dort liegt, und bereinigen


Weitere Möglichkeiten, falls der vorige Schritt keine Ergebnis brachte :

  • nach größeren files (z.B. > 10MB) suchen, da sollte nur 3-4 libraries (.so Dateien) gelistet werden (oder u.U. .img files im OE2.0) >
    find /tmp/flash -type f -size +10000k
  • oder nach z.B. .ts files suchen >
    find /tmp/flash -type f -name "*.ts"

beides findet eine Aufnahme in /tmp/flash/media/net


Code
  1. root@dm900uhd:~# find /tmp/flash -type f -size +10240k
  2. /tmp/flash/media/net/20171218 1842 - ZDF HD - Dummy Record.ts
  3. /tmp/flash/usr/lib/go/pkg/linux_arm_dynlink/libstd.so
  4. /tmp/flash/usr/lib/libavcodec.so.57.24.102
  5. /tmp/flash/usr/lib/libQt5WebKit.so.5.6.2
  6. /tmp/flash/usr/lib/libicudata.so.56.1
  7. root@dm900uhd:~#
Code
  1. root@dm900uhd:~# find /tmp/flash -type f -name "*.ts"
  2. /tmp/flash/media/net/20171218 1842 - ZDF HD - Dummy Record.ts
  3. root@dm900uhd:~#


die Daten in /tmp/flash/xy per FTP oder Command Line löschen und den bind mount wieder aushängen (oder rebooten), df -h sollte wieder genug speicher anzeigen


Code
  1. root@dm900uhd:~# cd
  2. root@dm900uhd:~# umount /tmp/flash
  3. root@dm900uhd:~# df -h /
  4. Filesystem Size Used Avail Use% Mounted on
  5. /dev/root 961M 501M 395M 56% /
  6. root@dm900uhd:~#

weitere Möglichkeiten :

  • nach .png suchen (zu viele Picons im Flash) >
    find /tmp/flash -type f -name "*.png"
  • Gesamtanzahl der .png (oder anderer Dateiendungen) >
    find /tmp/flash -type f -name "*.png"|wc -l
  • Anzahl gefundener Dateien nach Dateiendung je Ordner gelistet >
    find /tmp/flash/ -name "*.png" -exec wc -l {} \;


    Kommentare