Raiz BTRFS sem espaço deixado no dispositivo, remontagem automática somente leitura; não é possível equilibrar, não é possível adicionar dispositivo

Raiz BTRFS sem espaço deixado no dispositivo, remontagem automática somente leitura; não é possível equilibrar, não é possível adicionar dispositivo

A raiz do meu BTRF foi preenchida durante a atualização do sistema e foi remontada automaticamente como somente leitura. Tenho muitos arquivos que posso apagar, mas são somente leitura. Tentei:

  1. sudo mount -o remount,rw / → ponto de montagem não montado ou opção ruim

  2. crie um /dev/loop0arquivo 10G temporário e tente adicioná-lo ao dispositivo BTRFS: sudo btrfs device add /dev/loop0 /error adding device /dev/loop0: Read-only file system

  3. Rebalancear: sudo btrfs balance start -dusage=0 /(também tentei -musage=0) →error during balancing '/': Read-only file system

Então, basicamente, tudo que tentei falhou porque o sistema de arquivos é somente leitura. Não consigo remontá-lo como rw por algum motivo. Tenho medo de reiniciar o sistema, pois provavelmente ele não inicializará. Não há esperança para alguém com um btrfs full root fs?

Responder1

Tive o mesmo problema, consegui consertar isso fazendo o seguinte:

umount /home
mount /dev/sdd1 on /home -o rw,clear_cache,skip_balance

Isso irá pular qualquer operação de rebalanceamento (meu ponto de bloqueio) e limpar algum cache para liberar algum espaço.

Mas depois disso, qualquer operação ainda resultaria na mudança para somente leitura, então verifiquei e interrompi qualquer reequilíbrio logo após o comando de montagem:

btrfs fi balance show /home
btrfs fi balance cancel /home

Depois disso o btrfs ficou mais estável e consegui redimensioná-lo

btrfs fi resize max /home

Provavelmente o comando FAQ balance também deve funcionar agora ou remover manualmente alguns arquivos grandes.

O FAQ relata isso (e você pode querer tentar valores diferentes de menor para maior, pois esta é uma% do espaço usado em pedaços que serão selecionados pelo saldo e acabarão sendo mesclados, liberando espaço)

btrfs fi balance  start -dusage=10 /home

Finalmente, há também o caminho para adicionar um novo dispositivo e solicitar um rebalanceamento (ou seja, um raid0, mas você pode ajustar isso mais tarde e mudar para raid1 se desejar e tiver espaço suficiente). O btrfs pode criar "raid" dinamicamente com vários dispositivos (na pior das hipóteses, um armazenamento USB temporário, mas lembre-se de remover os dados e remover o dispositivo no final)

btrfs device add /dev/sdf1 /home
btrfs balance start -dusage=20 -musage=20 /home

Ajuste os valores em dusage (dados) e musage (metadados) para acelerar e/ou mover mais informações. Nos mesmos casos, você pode querer adicionar um -ddevid=???para limitar o rebalanceamento ao dispositivo completo, forçando assim o btrfs a mover pedaços do dispositivo completo para o dispositivo com mais espaço. Obtenha o devid debrtfs fi show

Veja os resultados no final (lembre-se que o df no btrfs não é suficiente, pois o btrfs tem várias camadas e o df só pode ver uma)

btrfs fi show
btrfs fi usage /home
btrfs device usage /home
btrfs fi df /home

informação relacionada