Ändern Sie die Größe des Dateisystems unter OpenELEC

11

Ich habe versucht, ein Update durchzuführen, und ein Fehler hat mir mitgeteilt, dass ich nicht genügend freien Speicherplatz habe. Also habe ich mich mit meiner Himbeere verbunden SSH, um nach der Festplattennutzung zu fragen mit:

df -h

Und ich habe folgendes Ergebnis erhalten:

Filesystem                Size      Used Available Use% Mounted on
devtmpfs                185.1M     87.5M     97.6M  47% /dev
/dev/mmcblk0p1          124.7M     96.2M     28.6M  77% /flash
/dev/mmcblk0p2          755.9M    739.4M         0 100% /storage
/dev/loop0               87.5M     87.5M         0 100% /
tmpfs                    74.6M         0     74.6M   0% /dev/shm
tmpfs                    10.0M    684.0K      9.3M   7% /var

Die Sache ist, dass meine SD-Karte eine 8-GB-SD-Karte ist und die angezeigte Größe eher 1 GB entspricht. Meine Frage ist also, warum ich nicht den gesamten Speicherplatz sehen kann.

darkheir
quelle

Antworten:

13

Von hier aus SSH in Ihren Raspberry Pi geändert , auf dem OpenELEC ausgeführt wird, und befolgen Sie diese Schritte.

  1. SSH als Root, standardmäßig bist du dabei /storage; Wechseln Sie zur Root-Partition:

    $ cd /
    
  2. Verhindern Sie einen Neustart von XBMC:

    $ touch /var/lock/xbmc.disabled
    
  3. Stoppen Sie XBMC, damit wir die Bereitstellung aufheben können /storage:

    $ killall -9 xbmc.bin
    $ umount /storage
    
  4. Überprüfen Sie die Halterungen:

    $ mount
    $ parted /dev/mmcblk0
    
  5. Zum Teil wechseln Sie zur Anzeige der Sektoren:

    $ unit s
    
  6. Zeigen Sie Partitionen an und notieren Sie sich den Startsektor Ihrer Partition:

    $ p
    
  7. Entfernen Sie die Partition:

    $ rm 2
    
  8. Erstellen Sie es neu, indem Sie dieselbe Startsektornummer verwenden und mit "-1" enden, um den verbleibenden Speicherplatz zu nutzen:

    $ mkpart primary 258048 -1
    $ quit parted
    $ e2fsck -f /dev/mmcblk0p2
    $ resize2fs /dev/mmcblk0p2
    $ mount /dev/mmcblk0p2 /storage
    $ df -h
    $ rm /var/lock/xbmc.disabled
    
  9. XBMC wird von selbst neu gestartet.

syb0rg
quelle
Ist dieser Befehl in der openelec-Distribution vorhanden?
Darkheir
Entschuldigung, ich verwende immer standardmäßig Raspbian-Anweisungen, schlechte Angewohnheit: P. Ich habe die Frage erneut beantwortet und jetzt sollte es funktionieren.
Syb0rg
Funktioniert nicht Ich kann nicht aushängen, weil connmand / storage verwendet und es nicht getötet werden kann
Rob
Funktioniert nicht mehr! Siehe Marcins Antwort unten.
Herman
18

OpenELEC ändert die Größe / den Speicher beim ersten Start nach dem Erstellen der SD. Ich habe nach dem Skript gesucht, das das macht. Es ist https://github.com/OpenELEC/OpenELEC.tv/blob/master/packages/sysutils/busybox/scripts/fs-resize?source=c Die erste Codezeile sucht nach der Datei /storage/.please_resize_me.

Um die Größe des Speichers zu ändern, um die SD zu füllen, müssen Sie:

touch /storage/.please_resize_me
reboot

Habe das auf meinem OpenELEC 4.0.7 gemacht und gut funktioniert.

Marcin
quelle
1
Dies sollte die akzeptierte Antwort sein
Chris
versuchte es auf 5.0.3 und es funktionierte wie angegeben
LowvaPrg
In der zweiten Zeile des Skripts heißt es, dass die Größe nicht geändert werden kann, wenn ein Ordner mit dem Namen kodi, config oder cache vorhanden ist. Ich habe alle 3 ... Wie kann ich jetzt die Größe ändern?
Peter Raeves
4

Ein Problem, das ich hatte (mit Version 3.1.5): umount / storage => "umount: kann nicht umount / storage: Gerät oder Ressource belegt"

fuser -m / storage => pid des Prozesses, der das Mount gesperrt hat Ich habe versucht, es zu beenden, aber jedes Mal, wenn ein neuer Prozess das Mount blockiert hat. Ich muss + umount gleichzeitig mit der Pipe töten (in dieser Reihenfolge): umount / storage | töte -9 pid

Das macht den Job!

Gast
quelle
Funktioniert nicht, connmand startet sich automatisch neu, bevor das Terminal denumount
Rob
2

Falls jemand dieses Problem mit der neuesten Version hat:
syb0rg Antwort ist aber großartig
$ touch /var/lock/xbmc.disabled
$ killall -9 xbmc.bin

funktioniert nicht mehr ! Verwenden Sie:
$ systemctl stop kodi.servicestattdessen!

lewiatan
quelle
2

Openelec 5:

Überprüfen Sie, welche Prozesse die Partition / den Speicher blockieren, um die Bereitstellung aufzuheben

lsof | grep "/storage" (will return the PID of the process)

Überprüfen Sie, ob sich diese Prozesse im systemd-Baum befinden und von systemd gesteuert werden.

systemctl status zeigt den systemd-Baum an.

Im Mai musste ich Folgendes stoppen:

systemctl stop cron.service
systemctl stop connman.service
systemctl stop kodi.service

Überprüfen Sie mit, fuser -m /storageob dieses Verzeichnis noch von Prozessen blockiert wird. Falls eine PID zurückgegeben wird, können Sie überprüfen, welcher Prozess mit dieser PID verbunden ist ps -ef | grep $PID.

Wenn Sie so etwas sehen, -shbefindet sich Ihre SSH-Sitzung im Verzeichnis / storage. cd /in die Wurzel gehen.

Andernfalls können Sie diesen Prozess mit beenden kill -9 $PID.

Jetzt können Sie das Verzeichnis / storage über sicher aushängen

umount /storage

Jetzt können Sie die Größe der Partition ändern (ich werde erneut berichten, da einige Befehle geändert wurden).

  1. Stellen Sie sicher, zu welcher Partition / Lagerung gehören

    df -h

In den meisten Fällen wird /dev/mmcblk0p2(das ist Partition 2)

  1. Öffnen Sie das Teil für das Gerät / dev / mmcblk0

    parted /dev/mmcblk0

  2. Partitionen anzeigen (wir wissen jetzt schon, welche Partition wir ändern möchten)

    p

  3. Ändern Sie die Größe der Partition (in diesem Fall Partition 2 bis zum Ende)

    resize 2 -1

    quit parted

  4. Ändern Sie die Größe des Dateisystems

    e2fsck -f /dev/mmcblk0p2

    resize2fs /dev/mmcblk0p2

    mount /dev/mmcblk0p2 /storage

    df -h

Wenn Sie die Größe ändern möchten / Flash ist eine ganz andere Geschichte.

Jero
quelle
1
Arbeitete für mich, außer parted /dev/mmcblk0war partedund resize 2 -1musste seinresizepart 2 -1
ChrisGheen
Beste Antwort bisher. Nichts anderes hat für mich funktioniert als diese Antwort.
Michael Malura
1

Ich habe das Problem mit "Speicher entfernen / töten" folgendermaßen gelöst:

fuser -m /storage

5161

kill -9 5161 && umount /storage

Das hat bei mir funktioniert.

user11691
quelle