Zmień rozmiar systemu plików w OpenELEC

11

Próbowałem wykonać aktualizację, a błąd powiedział mi, że nie mam wystarczającej ilości wolnego miejsca. Więc połączyłem się z moim Raspberry, SSHaby poprosić o użycie dysku za pomocą:

df -h

I uzyskałem następujący wynik:

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

Chodzi o to, że moja karta SD to karta SD o pojemności 8 Gb, a rozmiar, który wyświetla, jest bardziej podobny do 1 Gb, więc moje pytanie brzmi: dlaczego nie widzę całej przestrzeni?

Darkheir
źródło

Odpowiedzi:

13

Modyfikowany tutaj , SSH do swojej Raspberry Pi systemem OpenELEC i wykonaj następujące kroki.

  1. SSH w jako root, domyślnie jesteś w /storage; przełącz na partycję root:

    $ cd /
    
  2. Powstrzymaj XBMC przed ponownym uruchomieniem:

    $ touch /var/lock/xbmc.disabled
    
  3. Zatrzymaj XBMC, abyśmy mogli odmontować /storage:

    $ killall -9 xbmc.bin
    $ umount /storage
    
  4. Sprawdź mocowania:

    $ mount
    $ parted /dev/mmcblk0
    
  5. W częściach zmiana na wyświetlanie sektorów:

    $ unit s
    
  6. Pokaż partycje, zanotuj początkowy sektor swojej partycji:

    $ p
    
  7. Usuń partycję:

    $ rm 2
    
  8. Utwórz go ponownie, używając tego samego początkowego numeru sektora i kończąc na „-1”, aby użyć pozostałego miejsca:

    $ 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 uruchomi się ponownie samodzielnie.

syb0rg
źródło
Czy to polecenie jest obecne w dystrybucji openelec?
darkheir
Przepraszam, zawsze domyślnie stosuję się do instrukcji Raspbian, zły nawyk: P. Ponownie odpowiedziałem na pytanie i teraz powinno działać.
syb0rg
Nie działa Nie mogę odmontować, ponieważ Connmand używa / Storage i nie można go zabić
Rob
Już nie działa! Zobacz odpowiedź Marcina poniżej.
Herman
18

OpenELEC zmienia rozmiar / przechowuje przy pierwszym uruchomieniu po utworzeniu karty SD. Szukałem skryptu, który to robi. To https://github.com/OpenELEC/OpenELEC.tv/blob/master/packages/sysutils/busybox/scripts/fs-resize?source=c Pierwsza linia kodu sprawdza plik /storage/.please_resize_me.

Więc ... aby zmienić rozmiar pamięci w celu wypełnienia karty SD, musisz:

touch /storage/.please_resize_me
reboot

Zrobiłem to na moim OpenELEC 4.0.7 i działało dobrze.

Marcin
źródło
1
taka powinna być zaakceptowana odpowiedź
Chris
wypróbowałem to w wersji 5.0.3 i działało jak podano
LowvaPrg
W drugim wierszu skryptu jest napisane, że nie można zmienić rozmiaru, jeśli istnieje folder o nazwie kodi, config lub cache. Mam wszystkie 3 ... Więc jak teraz zmienić rozmiar?
Peter Raeves,
4

Jeden problem, który miałem (z wersją 3.1.5): umount / storage => „umount: nie można umount / storage: urządzenie lub zasób zajęty”

fuser -m / storage => pid procesu blokującego podłączenie Próbowałem go zabić, ale za każdym razem nowy proces blokował podłączenie. Muszę zabić + umount jednocześnie z potokiem (w tej kolejności): umount / storage | zabij -9 pid

To działa!

Gość
źródło
Nie działa, connmand restartuje się automatycznie, zanim terminal będzie mógł uruchomićumount
Rob
2

W przypadku, gdy ktoś ma ten problem z najnowszą wersją:
odpowiedź syb0rg jest świetna, ale
$ touch /var/lock/xbmc.disabled
$ killall -9 xbmc.bin

już nie działa ! Użyj:
$ systemctl stop kodi.servicezamiast tego!

lewiatan
źródło
2

Openelec 5:

Sprawdź, jaki proces blokuje odłączenie partycji / pamięci

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

Sprawdź, czy procesy te znajdują się w drzewie systemd i czy są kontrolowane przez systemd.

systemctl status pokaże drzewo systemowe.

W razie potrzeby musiałem przestać:

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

Sprawdź, fuser -m /storageczy proces blokuje ten katalog. W przypadku zwrotu niektórych PID możesz sprawdzić, jaki proces jest powiązany z uruchomionym PID ps -ef | grep $PID.

Jeśli widzisz coś takiego -sh, to twoja sesja ssh znajduje się w katalogu / storage. cd /iść do korzenia.

W przeciwnym razie możesz zabić ten proces kill -9 $PID.

Teraz możesz bezpiecznie odmontować katalog / storage przez

umount /storage

Teraz możesz zmienić rozmiar partycji (powtórzę raport, ponieważ niektóre polecenia zostały zmienione)

  1. Upewnij się, do której części / przechowywania należą

    df -h

W większości przypadków będzie /dev/mmcblk0p2(czyli partycja 2)

  1. Otwórz parted dla urządzenia / dev / mmcblk0

    parted /dev/mmcblk0

  2. Pokaż partycje (teraz wiemy, którą partycję chcemy zmienić)

    p

  3. Zmień rozmiar partycji (w tym przypadku partycja 2 do końca)

    resize 2 -1

    quit parted

  4. Zmień rozmiar systemu plików

    e2fsck -f /dev/mmcblk0p2

    resize2fs /dev/mmcblk0p2

    mount /dev/mmcblk0p2 /storage

    df -h

Jeśli chcesz zmienić rozmiar / flash to zupełnie inna historia.

Jero
źródło
1
Pracował dla mnie, parted /dev/mmcblk0partedresize 2 -1resizepart 2 -1
tyle
Jak dotąd najlepsza odpowiedź. Nic innego nie działało dla mnie oprócz tej odpowiedzi.
Michael Malura,
1

Rozwiązałem problem dotyczący „odmontowania pamięci / zabijania” w ten sposób:

fuser -m /storage

5161

kill -9 5161 && umount /storage

To działało dla mnie.

użytkownik11691
źródło