Redimensionar sistema de arquivos no OpenELEC

11

Eu estava tentando realizar uma atualização e um erro me disse que não havia espaço livre suficiente. Então, conectei-me ao meu Raspberry SSHpara solicitar o uso do disco com:

df -h

E eu obtive o seguinte resultado:

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

O problema é que meu cartão SD é um cartão SD de 8Gb e o tamanho exibido é mais semelhante a 1Gb, então minha pergunta é por que não consigo ver todo o espaço?

darkheir
fonte

Respostas:

13

Modificado a partir daqui , SSH para o seu Raspberry Pi executando o OpenELEC e siga estas etapas.

  1. SSH como root, por padrão, você está /storage; mude para a partição raiz:

    $ cd /
    
  2. Evite que o XBMC seja reiniciado:

    $ touch /var/lock/xbmc.disabled
    
  3. Pare o XBMC, para que possamos desmontar /storage:

    $ killall -9 xbmc.bin
    $ umount /storage
    
  4. Verificar montagens:

    $ mount
    $ parted /dev/mmcblk0
    
  5. Em parte, a alteração para setores é exibida:

    $ unit s
    
  6. Mostre partições, anote o setor inicial da sua partição:

    $ p
    
  7. Remova a partição:

    $ rm 2
    
  8. Recrie-o, usando o mesmo número de setor inicial e terminando em "-1" para usar o espaço restante:

    $ 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. O XBMC será iniciado novamente por conta própria.

syb0rg
fonte
Este comando está presente na distribuição openelec?
darkheir
Desculpe, eu sempre obedeço às instruções Raspbian, mau hábito: P. Eu respondi a pergunta novamente e agora deve funcionar.
26413 syb0rg
Não funciona Eu não posso desmontar porque connmand está usando / armazenamento e que não pode ser morto
Rob
Não funciona mais! Veja a resposta de Marcin abaixo.
Herman
18

O OpenELEC redimensiona / armazenamento na primeira inicialização após a criação do SD. Eu procurei o script que faz isso. É https://github.com/OpenELEC/OpenELEC.tv/blob/master/packages/sysutils/busybox/scripts/fs-resize?source=c A primeira linha de código verifica o arquivo /storage/.please_resize_me.

Então ... para redimensionar o armazenamento para preencher o SD, você precisa:

touch /storage/.please_resize_me
reboot

Feito isso no meu OpenELEC 4.0.7 e funcionou bem.

Marcin
fonte
1
esta deve ser a resposta aceita
Chris
tentei em 5.0.3 e funcionou como afirmado
LowvaPrg
Na segunda linha do script, ele diz que não pode ser redimensionado se existir uma pasta chamada kodi, config ou cache. Eu tenho todos os três deles ... Então, como redimensiono agora?
Peter Raeves
4

Um problema que tive (com a versão 3.1.5): umount / storage => "umount: não é possível umount / storage: dispositivo ou recurso ocupado"

fuser -m / storage => pid do processo que estava bloqueando a montagem, tentei matá-la, mas sempre que um novo processo bloqueava a montagem. Eu tenho que matar + umount ao mesmo tempo com o pipe (nesta ordem): umount / storage | kill -9 pid

Isso é fazer o trabalho!

Convidado
fonte
Não funciona, o connmand reinicia-se automaticamente antes que o terminal possa executar o #:umount
Rob
2

Caso alguém tenha esse problema com a versão mais recente: a
resposta syb0rg é ótima, mas
$ touch /var/lock/xbmc.disabled
$ killall -9 xbmc.bin

não funciona mais ! Use: em
$ systemctl stop kodi.servicevez disso!

lewiatan
fonte
2

Openelec 5:

Verifique qual processo está bloqueando a partição / armazenamento a ser desmontado

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

Verifique se esses processos estão na árvore do systemd e são controlados pelo systemd.

systemctl status irá mostrar a árvore do systemd.

Em maio, tive que interromper o seguinte:

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

Verifique fuser -m /storagese ainda há processo bloqueando esse diretório. Caso algum PID seja retornado, você pode verificar qual processo está associado ao PID em execução ps -ef | grep $PID.

Se você vir algo como -sh, é a sua sessão ssh que está no diretório / storage. cd /ir na raiz.

Caso contrário, você pode matar esse processo com kill -9 $PID.

Agora você pode desmontar com segurança o diretório / storage via

umount /storage

Agora você pode redimensionar a partição (relatarei novamente, pois alguns comandos foram alterados)

  1. Garantir a que partição / armazenamento pertencem

    df -h

Na maioria dos casos, será /dev/mmcblk0p2(que é a partição 2)

  1. Aberto dividido para o dispositivo / dev / mmcblk0

    parted /dev/mmcblk0

  2. Mostrar partições (já mostramos qual partição queremos redimensionar)

    p

  3. Redimensione a partição (neste caso, a partição 2 até o final)

    resize 2 -1

    quit parted

  4. Redimensionar o sistema de arquivos

    e2fsck -f /dev/mmcblk0p2

    resize2fs /dev/mmcblk0p2

    mount /dev/mmcblk0p2 /storage

    df -h

Se você deseja redimensionar / flash é uma história completamente diferente.

Jero
fonte
1
Trabalhou para mim, se parted /dev/mmcblk0era partede resize 2 -1precisava serresizepart 2 -1
ChrisGheen
Melhor resposta até agora. Nada mais funcionou para mim, exceto esta resposta.
Michael Malura
1

Resolvi o problema sobre "desmontar armazenamento /" matar desta maneira:

fuser -m /storage

5161

kill -9 5161 && umount /storage

Isso funcionou para mim.

user11691
fonte