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:
sudo mount -o remount,rw /
→ ponto de montagem não montado ou opção ruimcrie um
/dev/loop0
arquivo 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
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