“rm: não pode remover xxx: Não há espaço disponível no dispositivo” no BTRFS

12

Executando o OpenSuse 12.2.

De repente, a parição de raiz parece estar cheia (99%), mas não consigo mais remover arquivos manualmente.

"rm: não pode remover xxx: Não há espaço disponível no dispositivo", embora 450mb ainda estejam livres de acordo com df. O sistema de arquivos é o BTRFS.

Eu tentei verificar o FS usando o btrfsck, mas isso não ajudou.

O que fazer?

    
por Andreas Jung 14.02.2013 / 09:59

3 respostas

17

Provavelmente, você está com um problema em que o BTRFS precisa alocar um pouco de metadados para poder remover o arquivo. Um dos pontos fracos do BTRFS é o manejo da condição de falta de espaço; melhorar o comportamento nessa área é uma das prioridades do projeto.

Uma sugestão no wiki do btrfs é destruir o arquivo em vez de removê-lo.

#instead of this
rm -f ./some_file

# do this
true >| ./some_file

Isso removerá o conteúdo do arquivo sem alterar a entrada do diretório. Uma vez que você trabalhou o seu caminho para fora do canto que você está, você pode excluir arquivos como normal. Se isso lhe causar problemas, talvez você queira remontar temporariamente com a opção nodatacow , que desativa o comportamento de copiar na gravação. Mas ... não tenho certeza se isso vai ajudar ou não.

Em geral, no entanto: não execute um sistema de arquivos BTRFS seco. Ainda é um software de pré-produção e os casos de canto são um pouco difíceis.

    
por 14.02.2013 / 10:32
1

Eu enfrentei a mesma mensagem de erro, mas no meu caso o sistema de arquivos não foi relatado como cheio:

user@host:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       2.8G  2.0G  618M  77% /

Mas perguntar ao BTRFS revelou que estava de fato cheio:

user@host:/# btrfs fi show
Label: none  uuid: {UUID redacted because reasons}
        Total devices 1 FS bytes used 1.92GiB
        devid    1 size 2.79GiB used 2.79GiB path /dev/sda3

Mesmo sobrescrever qualquer arquivo (como tylerl sugeriu) era impossível. Minha solução foi encontrada no link que aconselha a execução um rebalanceamento manual do sistema de arquivos usando btrfs balance start -dusage=55 /path/to/filesystem .

    
por 21.08.2017 / 13:58
0

Para mim, usando o ZFS, descobri que excluir outros arquivos liberava espaço suficiente na partição do ZFS e, depois, era possível excluir os arquivos em questão.

    
por 22.01.2018 / 07:02