Angepinnt FAQ - Flash voll - 1. Schritte

    • FAQ - Flash voll - 1. Schritte

      Es werden imm wieder crashlogs hochgeladen, weil die Box nicht mehr startet - oft liegt es daran, dass der Flashspeicher voll ist
      Error: no space left

      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


      Alle Befehle zum Überprüfen vorab als Übersicht

      Speicherplatz des flash prüfen
      df -h /

      nur im DreamOS verfügbar!

      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 /


      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 ;) )


      erstmal den Flash speicher prüfen, wenn der 100% benutzt wird, braucht ihr nicht mal mehr den crashlog lesen ...

      Quellcode

      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

      Quellcode

      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 ....

      Quellcode

      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.
      Wichig ist, das man nach Ausschließlich in /tmp/flash/... sucht, gegebenenfalls löscht etc.

      Quellcode

      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

      Quellcode

      1. root@dm900uhd:~# du -sch /tmp/flash/*
      2. 4,0K /tmp/flash/autofs
      3. 5,8M /tmp/flash/bin
      4. 4,2M /tmp/flash/boot
      5. 4,0K /tmp/flash/data
      6. 4,0K /tmp/flash/dev
      7. 4,6M /tmp/flash/etc
      8. 4,0K /tmp/flash/home
      9. 22M /tmp/flash/lib
      10. 445M /tmp/flash/media
      11. 4,0K /tmp/flash/misc
      12. 4,0K /tmp/flash/mnt
      13. 4,0K /tmp/flash/net
      14. 16K /tmp/flash/picons
      15. 4,0K /tmp/flash/proc
      16. 15M /tmp/flash/root
      17. 4,0K /tmp/flash/run
      18. 2,0M /tmp/flash/sbin
      19. 4,0K /tmp/flash/srv
      20. 4,0K /tmp/flash/sys
      21. 12K /tmp/flash/tmp
      22. 424M /tmp/flash/usr
      23. 19M /tmp/flash/var
      24. 946M total
      25. root@dm900uhd:~#
      Alles anzeigen


      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

      Quellcode

      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

      Quellcode

      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:~#

      Quellcode

      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

      Quellcode

      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 {} \;
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$

      Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von Fred Bogus Trumper ()