Raspberry Pi brakuje miejsca na dysku


9

Jestem absurdalnie nowy w rpi i śledzę wiele samouczków, aby spróbować uzyskać rozpoznawanie twarzy na moim pi. Skończyło mi się miejsce na dysku i wygląda na to, że dzięki wielu tutorialom załadowałem śmieci.

W innej dyskusji na temat partycji widziałem, że mogę uruchomić polecenie zobaczenia mojej. Oto, co pokazuje.

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

Czy w jakiś sposób dostałem 5 partycji? Jak mogę zwolnić miejsce?

EDYCJA: wyjście 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

Jak duża jest karta SD? Jaka jest wydajność df -h? Czy uruchomiłeś sudo raspi-config i rozwinąłeś główny system plików (opcja 1 - wierzę)?
Steve Robillard,

Karta 8gig, zrobiłem to.
Wózek widłowy

czy to „tylko” raspbian czy noobs? Nie wiem do czego służy ta druga partycja FAT.
Ghanima

TO NOOBS tak. Czy muszę zacząć od nowa? Czy powinienem zainstalować ponownie bez NOOBS?
Wózek widłowy

1
du / |sort -nNajpierw sprawdź , co pochłania miejsce, np. Dzienniki (jeśli logrotate działa nieprawidłowo) lub pamięć podręczną menedżera pakietów. -shLepiej to zrobić w linii poleceń Steve'a .
Ghanima

Odpowiedzi:


10

Oto, co działa dla mnie. Możesz wypróbować ten zestaw poleceń, aby usunąć niepotrzebne pliki pakietów:

sudo apt-get autoremove
sudo apt-get clean

Nie zadziała to cudem, ale czasami uwalnia mnie kilkaset MB.

Jeśli chcesz uruchomić tylko Raspbian, miałem dużo szczęścia z Jessie Lite i dodawaniem pakietów według potrzeb. Oto przykład karty 8 GB uSD:

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

To wydaje się pomocne. Spróbuję tego rano. Zrobiłem „czyste”, ale nie autorove. Dzieki za sugestie.
Wózek widłowy

Zajmę się również Jessie Lite, ale może mi to trochę opóźnić. Szkoda, że ​​nie było sposobu, aby po prostu pobrać migawki systemu operacyjnego z rzeczami, których potrzebuję :)
Forklift

AFAIK, „apt-get autorove” usuwa tylko nieaktualne pliki pakietów, podczas gdy „apt-get clean” usuwa je wszystkie. Jeśli planujesz ponowną instalację niektórych pakietów, poprzednia czynność może być wskazana, aby zaoszczędzić trochę czasu i przepustowości.
derjoachim

7

Jeśli zainstalowałeś Jessie na 8GB, spójrz na aplikacje, których nie używasz. Usunąłem Mathematica i zyskałem ponad 600 MB

sudo apt-get purge wolfram-engine

Oraz inne pakiety, które zajmują miejsce: lifehacker.com/...
nsof

3

Innym rozwiązaniem byłoby użycie większej (32G) pamięci USB lub karty SD (z czytnikiem kart SD USB) i przeniesienie głównego systemu plików na nowe urządzenie. Zobacz Zwiększanie rozmiaru katalogu głównego / przy użyciu zewnętrznego dysku twardego .

Jeśli chcesz zacząć od nowa bez utraty tego, co masz na większej karcie SD , oto sposób na zainstalowanie rozruchowego systemu operacyjnego Raspbian na nowej karcie SD. Po instalacji zamień nową kartę SD na kartę rozruchową SD, a otrzymasz czysty system z dostępem do wszystkich starych informacji.

Install Raspbian on the Raspberry Pi from Linux
  1. USTAWIENIA - Wymagania to system Linux (typ) zdolny do łączenia się z Internetem, zapisu na karcie micro SD (8G lub większej), programu do formatowania dysku ( fdisk), wgetbyłby fajny z funzip( unzipwymaga lokalnej pamięci) i Raspberry Liczba Pi. Po podłączeniu karty SD do systemu Linux w czytniku kart lub czytniku kart USB określ adres urządzenia za pomocą lsblklub innych poleceń. W moim przypadku użyję / dev / sdb. Sprawdź, czy urządzenie jest zamontowane za pomocą dfpolecenia, a jeśli tak, odmontuj za pomocą umount /dev/sdb?polecenia.

    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 - sformatuj kartę SD na jednej partycji, wpisz fat32 [ sudo fdisk /dev/sdb, subcmd p, (jeśli nie typ Disklabel: dos, subcmd o), subcmd d, aby usunąć stare partycje, subcmd n, aby utworzyć nową partycję (weź domyślne, podstawowe p, numer 1, pierwszy, ostatni), subcmd t dla typu (liczba 1, kod c) i subcmd w do zapisu].

    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. POBIERZ, ROZPOCZNIJ I NAPISZ - Możliwe jest pobranie obrazu Raspbian, rozpakowanie go i zainstalowanie go jednocześnie na karcie SD. unzipPolecenie będzie działać, jeśli Raspbian obraz jest najpierw pobrać i następnie rozpakowane ( unzipnie będzie działać z wejściem rurami, funzipbędzie). Obraz jest większy niż 1,5G, rozpakowany na 4G, pobranie go zajmie trochę czasu.

    pi@RPi3:~ $ wget -qO - https://downloads.raspberrypi.org/raspbian_latest | funzip | sudo dd bs=4M of=/dev/sdb
    
  4. WERYFIKUJ - Obraz jest teraz zainstalowany z dwiema partycjami (boot i root). Partycja Linux jest bardzo mała i powinna zostać rozszerzona. (Możliwe jest dodanie większej liczby partycji, jeśli są potrzebne, przed rozwinięciem.) Przed rozwinięciem partycji Linux, UWAGA / dev / sdb2 Start Sector (tj. 137216 w moim przypadku).

    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. EXPAND PARTITION - fdiskPolecenia można użyć do rozszerzenia partycji Linux. Najpierw usuń partycję Linux subcmd d, domyślnie 2, dodaj ją z powrotem subcmd n, domyślnie p, domyślnie 2,
    korzystając z Sektora początkowego (jak wspomniano w kroku 3), weź wartość domyślną dla Sektora końcowego i zapisz zmiany subcmd w, jeśli szczęśliwy (lub wyjść bez zapisywania zmian za pomocą subcmd q). Jeśli sektor początkowy jest taki sam jak poprzednio, dane będą poprawne.

    pi@RPi3:~ $ echo -e "d\n2\nn\np\n2\n137216\n\nw" | sudo fdisk /dev/sdb
    
  6. NAPISZ ETYKIETĘ, KONTROLĘ SYSTEMU PLIKÓW i ROZSZERZ SYSTEM PLIKU -

    pi@RPi3:~ $ sudo e2label /dev/sdb2 root
    pi@RPi3:~ $ sudo e2fsck -f /dev/sdb2
    pi@RPi3:~ $ sudo resize2fs /dev/sdb2
    
  7. OPCJE - Możliwe jest montowanie partycji karty SD i wykonywanie konfiguracji plików, co jest poza tym zakresem. Upewnij się, że dane są synci odmontowane, jeśli są zamontowane przed wyjęciem karty SD z działającego systemu.

  8. BOOT i CONFIG - Zamontuj kartę SD w Raspberry Pi i podłącz zasilanie. Pi powinien się uruchomić. Skonfiguruj Pi w odniesieniu do https://www.raspberrypi.org/documentation/configuration/ .


1

Prawdopodobnie nie chcesz zaczynać od nowa. Jeśli brakuje miejsca po wyczyszczeniu wielu pobranych plików i nieużywanego kodu źródłowego, przejdź na większą kartę pamięci.

Musisz mieć możliwość zamontowania dodatkowej karty na swoim RPI, albo z nośnikiem „pendrive” z gniazdem SD lub podobnym.

Twoja instalacja oparta jest na NOOBS, więc zakończyłeś z kilkoma nieużywanymi partycjami, jednak ilość zmarnowanego miejsca nie jest tak znacząca, że ​​eliminacja może być bolesna. Niektóre otwarte przestrzenie są tworzone dla wyrównania granic.

Utwórz klon na większej karcie SD (16 GB lub więcej).

Za pomocą Win32DiskImager utwórz kopię zapasową obrazu za pomocą przycisku „przeczytaj” na wybranej przez siebie nazwie pliku, a następnie użyj „zapisu”, aby skopiować obraz na nową kartę SD.

Zamontuj nową kartę i uruchom. W tym momencie musisz uruchomić klon z tą samą oryginalną pustą przestrzenią.

Używając fdisk„p” wydrukuj bieżącą partycję. Skopiuj i wklej te informacje, do których możesz użyć jako odniesienia. Będzie wyglądał następująco (twój będzie inny):

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

Usuń / dev / mmcblk0p2 za pomocą „d”, a następnie wpisz „2”, ponownie utwórz partycję. „sekret” polega na użyciu identycznego sektora „start”.

Utwórz rozszerzoną partycję Linux za pomocą „n”, wybierz rozszerzoną, wprowadź pierwszy sektor (w moim przykładzie 1679360) i pozwól fdiskwybrać ostatni sektor („domyślny”), a następnie wpisz „t”, aby wprowadzić „typ” partycji dla partycji „2, należy wpisać„ 85 ”(Linux rozszerzony).

Teraz utwórz logiczne partycje, które znajdują się w właśnie utworzonej partycji rozszerzonej.

Użyj „n” dla nowego, wpisz „l” dla „logicznego”, a „fdisk” przypisze następny dostępny slot, pierwszy sektor musi być taki sam jak wcześniej, na mojej próbce, 1687552, ostatni sektor, użyj oryginalnego numer, na mojej próbce 122880 wpisz typ podziału „t” jako „c” (ms-dos).

Powtórz proces dla pozostałych partycji, ale na ostatniej (p6) pozwól, aby „fdisk” wybrał „ostatni sektor”.

Sprawdź wpisy za pomocą „p” i upewnij się, że zmienił się tylko ostatni sektor na ostatniej partycji i nic więcej, w tym typ partycji lub „id”.

Teraz zatwierdź zmiany przyciskiem „w”, aby zapisać nową tablicę partycji.

Uruchom ponownie i powiadom Linuksa o nowym rozmiarze dysku za pomocą:

resize2fs /dev/mmcblk0p6

cieszyć się,


Dlaczego więc nie ddcała karta SD zmieni rozmiar partycji? Powielanie struktury dobrego Pi SD nie jest trywialne, w szczególności zapewnia optymalne granice dla partycji, które nie mają normalnych fdiskwartości domyślnych.
Milliways,

Problemem jest modyfikacja rozszerzonych partycji, z nieznanego mi powodu, kiedy zmieniając markę SD, nie byłem w stanie odtworzyć zmodyfikowanych partycji dokładnie w początkowym sektorze. Tworzenie nowych partycji prawdopodobnie nie będzie na granicy, ale bycie w stanie stałym, a nie fizycznym nie stanowi problemu. Najłatwiejszym sposobem powinno być użycie Win32DiskImager(lub podobne): klonowanie karty SD, używając fdisk usuwania i odtwarzania w miejscu, w tym przypadku mmcblk0p6. a następnieresize2fs
fcm

Aby zmienić partycje, najpierw musisz zmodyfikować partycję rozszerzoną, a następnie możesz rozszerzyć aktywną partycję. Powodem granicy jest to, że gdy SD potrzebuje odzyskać miejsce, robi to na granicy blokowania wymazywania - zwykle 4M. Jeśli granice partycji nie są wyrównane, możesz potrzebować 2 usuwania bloków. W przypadku karty SD należy określić rozmiar dysku w blokach, a nie sektorach.
Milliways,

Byłoby to bardziej sensowne, oszczędzało czas i mniej podatne na błędy, niż ddkopiowanie partycji, które właśnie sformatowałeś mkfs.ext4, a następnie skopiowało zawartość rsync. Uwaga nie jest jasna powyżej, że musisz najpierw utworzyć większe partycje, jeśli chcesz korzystać resizefsz systemu plików wewnątrz partycji .
Złotowłosa

1

Upewnij się, że rozwinąłeś system plików, aby wykorzystać całą dostępną przestrzeń.

Otwórz terminal i uruchom sudo raspi-config -> Expand Filesystem

Jeśli to nie jest problem, wystarczy przenieść się na większy dysk. Zamiast zaczynać od nowa (te instrukcje zakładają komputer Mac, ale w przeciwnym razie są bardzo podobne):

Utwórz kopię zapasową dysku:

  • Znajdź nazwę dysku: włóż kartę SD do komputera i uruchom diskutil list(prawdopodobnie disk2... nie używaj disk1!!!)
  • Obraz zapasowy: sudo dd bs=1m if=/dev/disk2 of=/path/to/your/backup.img. Uwaga: zajmie to dużo czasu. Aby zobaczyć postęp, naciśnijCTRL-T
  • Włóż nowy dysk i diskutil list
  • Napisz na nowy dysk: sudo dd bs=1m if=/path/to/your/backup.img of=/dev/disk2
  • Rozwiń system plików: Włóż do Pi i uruchom, sudo raspi-config -> Expand Filesystem

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.