Raspberry Pi hat nicht genügend Speicherplatz


9

Ich bin lächerlich neu in RPI und habe viele Tutorials befolgt, um zu versuchen, die Gesichtserkennung auf meinem Pi zum Laufen zu bringen. Ich habe keinen Speicherplatz mehr und es scheint, dass ich durch das Befolgen von Tonnen von Tutorials Junk geladen habe.

Ich habe in einer anderen Diskussion über Partitionen gesehen, dass ich einen Befehl ausführen kann, um meine zu sehen. Hier ist was es zeigt.

pi@raspberrypi ~ $ sudo fdisk -l

Disk /dev/mmcblk0: 7969 MB, 7969177600 bytes
4 heads, 16 sectors/track, 243200 cylinders, total 15564800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c27cb

    Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192     1685546      838677+   e  W95 FAT16 (LBA)
/dev/mmcblk0p2         1687552    15499263     6905856   85  Linux extended
/dev/mmcblk0p3        15499264    15564799       32768   83  Linux
/dev/mmcblk0p5         1695744     1818623       61440    c  W95 FAT32 (LBA)
/dev/mmcblk0p6         1826816    15499263     6836224   83  Linux

Habe ich irgendwie 5 Partitionen bekommen? Wie kann ich Speicherplatz freigeben?

EDIT: Ausgabe von df -h

pi@raspberrypi ~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       6.3G  6.0G   25M 100% /
devtmpfs        428M     0  428M   0% /dev
tmpfs            87M  336K   86M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           173M     0  173M   0% /run/shm
/dev/mmcblk0p5   60M   20M   41M  33% /boot
/dev/mmcblk0p3   27M  397K   25M   2% /media/SETTINGS

Wie groß ist die SD-Karte? Was ist die Ausgabe von df -h? Haben Sie sudo raspi-config ausgeführt und das Root-Dateisystem erweitert (Option 1 - glaube ich)?
Steve Robillard

8gig Karte, ich habe es erweitert.
Gabelstapler

ist das "nur" raspbian oder noobs? Ich weiß nicht, wofür diese zweite FAT-Partition gedacht ist.
Ghanima

ES ist NOOBS ja. Muss ich von vorne anfangen? Sollte ich ohne NOOBS neu installieren?
Gabelstapler

1
Überprüfen Sie du / |sort -nzuerst, was Speicherplatz verbraucht, z. B. Protokolle (wenn logrotate nicht richtig funktioniert) oder den Cache des Paketmanagers. Steves Kommandozeile mit dem -shist besser.
Ghanima

Antworten:


10

Folgendes funktioniert bei mir. Sie können diesen Befehlssatz ausprobieren, um nicht benötigte Paketdateien zu löschen:

sudo apt-get autoremove
sudo apt-get clean

Es wird kein Wunder wirken, aber manchmal werden mir ein paar hundert MB frei.

Wenn Sie nur Raspbian ausführen möchten, hatte ich großes Glück mit Jessie Lite und dem Hinzufügen von Paketen nach Bedarf. Hier ist ein Beispiel für eine 8-GB-USD-Karte:

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.8G  1.1G  6.4G  15% /
devtmpfs        224M     0  224M   0% /dev
tmpfs           229M     0  229M   0% /dev/shm
tmpfs           229M  4.6M  224M   2% /run
tmpfs           5.3M  4.1k  5.3M   1% /run/lock
tmpfs           229M     0  229M   0% /sys/fs/cgroup
/dev/mmcblk0p1   63M   21M   43M  34% /boot

Das scheint hilfreich. Ich werde das morgen früh versuchen. Ich habe "sauber" gemacht, aber nicht automatisch entfernt. Danke für den Vorschlag.
Gabelstapler

Ich werde mich auch mit Jessie Lite befassen, aber das könnte mich einige Zeit zurückwerfen. Ich wünschte, es gäbe eine Möglichkeit, nur Schnappschüsse des Betriebssystems mit den benötigten Dingen herunterzuladen :)
Gabelstapler

AFAIK, "apt-get autoremove" entfernt nur veraltete Paketdateien, während "apt-get clean" sie alle entfernt. Wenn Sie vorhaben, einige Pakete neu zu installieren, ist die vorherige Aktion möglicherweise ratsam, um Zeit und Bandbreite zu sparen.
Derjoachim

7

Wenn Sie Jessie auf 8 GB installiert haben, sehen Sie sich die Anwendungen an, die Sie nicht verwenden. Ich habe Mathematica entfernt und mit mehr als 600 MB gewonnen

sudo apt-get purge wolfram-engine

Und andere Pakete, die Platz
beanspruchen

3

Eine andere Lösung wäre, einen größeren (32G) USB-Stick oder eine SD-Karte (mit einem USB-SD-Kartenleser) zu verwenden und Ihr Root-Dateisystem auf das neue Gerät zu übertragen. Siehe Erweitern der Größe des Stamms / Verwenden einer externen Festplatte .

Wenn Sie von vorne beginnen möchten, ohne das zu verlieren, was Sie auf einer größeren SD-Karte haben , können Sie hier ein bootfähiges Raspbian-Betriebssystem auf einer neuen SD-Karte installieren. Tauschen Sie nach der Installation die neue SD-Karte gegen Ihre Boot-SD-Karte aus, und Sie erhalten ein sauberes System mit Zugriff auf alle Ihre alten Informationen.

Install Raspbian on the Raspberry Pi from Linux
  1. SETUP - Voraussetzungen sind ein Linux-System (Typ), das in der Lage ist, eine Verbindung zum Internet herzustellen, auf die Micro-SD-Karte (8G oder höher) zu schreiben, ein Programm im Festplattenformat ( fdisk), wgetdas gut geeignet ist funzip( unziplokalen Speicher erfordert) und eine Himbeere Pi. Ermitteln Sie die Geräteadresse mit den lsblkoder anderen Befehlen , während die SD-Karte im Kartenleser oder im USB-Kartenleser an das Linux-System angeschlossen ist . In meinem Fall werde ich / dev / sdb verwenden. Überprüfen Sie, ob das Gerät mit dem dfBefehl gemountet ist, und heben Sie in diesem Fall die Bereitstellung mit dem umount /dev/sdb?Befehl auf.

    pi@RPi3:~ $ lsblk
    NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sdb           8:16   1  29.8G  0 disk
    └─sdb1        8:17   1  29.8G  0 part
    sda           8:0    0 931.5G  0 disk
    ├─sda2        8:2    0 931.4G  0 part /
    └─sda1        8:1    0   120M  0 part /media/pi/boot1
    mmcblk0     179:0    0  29.7G  0 disk
    ├─mmcblk0p2 179:2    0  29.7G  0 part
    └─mmcblk0p1 179:1    0    63M  0 part /boot
    
  2. FORMAT - Formatieren Sie die SD-Karte auf eine Partition, geben Sie fat32 [ sudo fdisk /dev/sdb, subcmd p (falls nicht Disklabel-Typ: dos, subcmd o), subcmd d zum Löschen alter Partitionen und subcmd n zum Erstellen einer neuen Partition ein (übernehmen Sie die Standardeinstellungen, primary) p, Nummer 1, erste, letzte), subcmd t für Typ (Nummer 1, Code c) und subcmd w zum Schreiben].

    pi@RPi3:~ $ sudo fdisk -l /dev/sdb
    
    Device     Boot Start      End  Sectors  Size Id Type
    /dev/sdb1        8192 62552063 62543872 29.8G  c W95 FAT32 (LBA)
    
  3. DOWNLOAD, UNZIP und WRITE - Es ist möglich, das Raspbian-Image gleichzeitig herunterzuladen, zu entpacken und auf der SD-Karte zu installieren. Der unzipBefehl funktioniert, wenn das Raspbian-Image zuerst heruntergeladen und dann entpackt wird ( unzipfunktioniert nicht mit Pipe- Eingaben, funzipwird). Das Bild ist mehr als 1,5 G, über 4 G entpackt. Das Herunterladen dauert einige Zeit.

    pi@RPi3:~ $ wget -qO - https://downloads.raspberrypi.org/raspbian_latest | funzip | sudo dd bs=4M of=/dev/sdb
    
  4. PRÜFEN - Das Image wird jetzt mit zwei Partitionen (Boot und Root) installiert. Die Linux-Partition ist sehr klein und sollte erweitert werden. (Es ist möglich, vor dem Erweitern weitere Partitionen hinzuzufügen, wenn diese benötigt werden.) Vor dem Erweitern der Linux-Partition HINWEIS / dev / sdb2 Startsektor (in meinem Fall 137216).

    pi@RPi3:~ $ echo -e "p\nq" | sudo fdisk /dev/sdb | egrep "Dev|^/"
    Device     Boot  Start     End Sectors Size Id Type
    /dev/sdb1         8192  137215  129024  63M  c W95 FAT32 (LBA)
    /dev/sdb2       137216 8581119 8443904   4G 83 Linux
    
  5. PARTITION ERWEITERN - Mit dem fdiskBefehl kann die Linux-Partition erweitert werden. Löschen Sie zuerst die Linux-Partition subcmd d, Standard 2, fügen Sie sie mit dem Startsektor
    (wie in Schritt 3 angegeben) wieder zurück, nehmen Sie die Standardeinstellung für den Endsektor und schreiben Sie die Änderungen subcmd w if glücklich (oder beenden, ohne die Änderungen mit subcmd q zu schreiben). Wenn der Startsektor derselbe wie zuvor ist, werden die Daten in Angriff genommen.

    pi@RPi3:~ $ echo -e "d\n2\nn\np\n2\n137216\n\nw" | sudo fdisk /dev/sdb
    
  6. ETIKETT SCHREIBEN, DATEISYSTEM PRÜFEN und DATEISYSTEM ERWEITERN -

    pi@RPi3:~ $ sudo e2label /dev/sdb2 root
    pi@RPi3:~ $ sudo e2fsck -f /dev/sdb2
    pi@RPi3:~ $ sudo resize2fs /dev/sdb2
    
  7. OPTIONEN - Es ist möglich, die Partitionen der SD-Karte zu mounten und Dateikonfigurationen vorzunehmen, die über diesen Bereich hinausgehen. Stellen Sie sicher, dass die Daten syncgemountet sind, bevor Sie die SD-Karte aus dem laufenden System entfernen.

  8. BOOT und CONFIG - Setzen Sie die SD-Karte in den Raspberry Pi ein und schließen Sie die Stromversorgung an. Der Pi sollte hochfahren. Konfigurieren Sie den Pi unter Bezugnahme auf https://www.raspberrypi.org/documentation/configuration/ .


1

Wahrscheinlich möchten Sie nicht noch einmal von vorne anfangen. Wenn Sie nach dem Bereinigen mehrerer Downloads und nicht verwendeten Quellcodes nicht genügend Speicherplatz haben, wechseln Sie zu einer größeren Speicherkarte.

Sie müssen in der Lage sein, eine sekundäre Karte in Ihr RPI einzubauen, entweder mit einem "Pen Drive" -Träger mit SD-Buchse oder ähnlichem.

Ihre Installation basiert auf NOOBS, sodass Sie mit einigen Partitionen fertig sind, die nicht mehr verwendet werden. Die Menge an verschwendetem Speicherplatz ist jedoch nicht so hoch. Die Beseitigung kann schmerzhaft sein. Einige Freiflächen werden für die Ausrichtung von Grenzen erstellt.

Erstellen Sie einen Klon auf einer größeren SD-Karte (16 GB oder mehr).

Erstellen Sie mit Win32DiskImager eine Imagesicherung mithilfe der Schaltfläche "Lesen" in einem Dateinamen Ihrer Wahl. Kopieren Sie das Image dann mit "Schreiben" auf die neue SD-Karte.

Mounten Sie die neue Karte und booten Sie. Zu diesem Zeitpunkt müssen Sie einen Klon mit demselben ursprünglichen leeren Bereich ausführen.

Mit fdisk'p' wird die aktuelle Partition gedruckt. Kopieren Sie diese Informationen und fügen Sie sie dort ein, wo Sie sie als Referenz verwenden können. Wird wie folgt aussehen (deins wird anders sein):

Device         Boot   Start      End  Sectors   Size Id Type
/dev/mmcblk0p1         8192  1675781  1667590 814.3M  e W95 FAT16 (LBA)
/dev/mmcblk0p2      1679360 30703615 29024256  13.9G 85 Linux extended
/dev/mmcblk0p5      1687552  1810431   122880    60M  c W95 FAT32 (LBA)
/dev/mmcblk0p6      1818624 30703615 28884992  13.8G 83 Linux

Löschen Sie / dev / mmcblk0p2 mit 'd' und geben Sie dann '2' ein. Erstellen Sie die Partition erneut. Das "Geheimnis" besteht darin, den identischen "Start" -Sektor zu verwenden.

Erstellen Sie die erweiterte Linux-Partition mit 'n', wählen Sie erweitert, geben Sie den ersten Sektor ein (in meinem Beispiel 1679360) und lassen fdiskSie den letzten Sektor auswählen ('Standard'), und geben Sie dann 't' ein, um den Partitionstyp 'der' Partition einzugeben '2, sollte vom Typ' 85 'sein (Linux erweitert).

Erstellen Sie nun die logischen Partitionen, die sich in der gerade erstellten erweiterten Partition befinden.

Verwenden Sie 'n' für neu, geben Sie 'l' für 'logisch' ein und 'fdisk' weist den nächsten verfügbaren Steckplatz zu. Der erste Sektor muss derselbe sein wie zuvor. In meinem Beispiel 1687552, dem letzten Sektor, verwenden Sie das Original Nummer, geben Sie in meinem Beispiel 122880 den Partitionstyp 't' als 'c' (ms-dos) ein.

Wiederholen Sie den Vorgang für Ihre anderen Partitionen, aber lassen Sie auf der letzten (S. 6) 'fdisk' Ihren 'letzten Sektor' auswählen.

Überprüfen Sie Ihre Eingaben mit 'p' und stellen Sie sicher, dass sich nur der letzte Sektor auf der letzten Partition geändert hat und nichts anderes, einschließlich Partitionstyp oder 'id'.

Übernehmen Sie nun Ihre Änderungen mit 'w', um die neue Partitionstabelle zu schreiben.

Starten Sie neu und teilen Sie Linux Ihre neue Festplattengröße mit mit:

resize2fs /dev/mmcblk0p6

genießen,


Warum nicht einfach dddie gesamte SD-Karte in der Größe der Partitionen ändern? Das Duplizieren der Struktur einer guten Pi-SD ist nicht trivial, insbesondere um die optimalen Grenzen für Partitionen zu gewährleisten, die nicht den normalen fdiskStandardeinstellungen entsprechen.
Milliways

Das Problem besteht darin, die erweiterten Partitionen aus mir unbekannten Gründen zu ändern. Beim Ändern der SD-Marke konnte ich die geänderten Partitionen nicht genau auf dem ursprünglichen Sektor neu erstellen. Das Erstellen neuer Partitionen wird wahrscheinlich nicht an Grenzen stoßen, aber es ist kein Problem, fest und nicht physisch zu sein. Der einfache Weg sollte sein , Folgendes zu verwenden Win32DiskImager(oder ähnliches): Klonen Sie die SD-Karte mit fdiskLöschen und erstellen Sie sie neu, in diesem Fall mmcblk0p6. und dannresize2fs
fcm

Um Partitionen zu ändern, müssen Sie zuerst die erweiterte Partition ändern, dann können Sie die aktive Partition erweitern. Der Grund für die Grenze ist, dass ein SD, wenn er Speicherplatz wiederherstellen muss, dies auf einer Löschblockgrenze tut - normalerweise 4 MB. Wenn Partitionsgrenzen falsch ausgerichtet sind, können 2 Blocklöschvorgänge erforderlich sein. Für eine SD-Karte sollten Sie die Festplattengröße in Blöcken und nicht in Sektoren angeben.
Milliways

Es wäre sinnvoller, spart Zeit und ist weniger fehleranfällig, wenn Sie nicht dddie Partitionen kopieren, mit denen Sie sie gerade formatiert mkfs.ext4und dann in den Inhalt kopiert haben rsync. Beachten Sie oben nicht, dass Sie zuerst größere Partitionen erstellt haben müssen, wenn Sie resizefsdas Dateisystem innerhalb der Partition verwenden möchten .
Goldlöckchen

1

Stellen Sie sicher, dass Sie Ihr Dateisystem erweitert haben, um den gesamten verfügbaren Speicherplatz zu nutzen.

Öffnen Sie ein Terminal und führen Sie es aus sudo raspi-config -> Expand Filesystem

Wenn dies nicht der Fall ist, müssen Sie einfach auf eine größere Festplatte wechseln. Anstatt von vorne zu beginnen (diese Anweisungen setzen einen Mac voraus, sind sich aber ansonsten sehr ähnlich):

Sichern Sie die Festplatte:

  • Suchen Sie den Namen der Festplatte: Legen Sie die SD-Karte in Ihren Computer ein und führen Sie sie aus diskutil list(wahrscheinlich disk2... nicht verwenden disk1!!!)
  • Backup-Image : sudo dd bs=1m if=/dev/disk2 of=/path/to/your/backup.img. Beachten Sie , dass dies lange dauern wird. Um den Fortschritt zu sehen, drücken SieCTRL-T
  • Legen Sie eine neue Festplatte ein und diskutil list
  • Auf neue Festplatte schreiben: sudo dd bs=1m if=/path/to/your/backup.img of=/dev/disk2
  • Dateisystem erweitern: In Pi einfügen und booten, sudo raspi-config -> Expand Filesystem

1
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.