Il filesystem di root del mio Kubuntu (montato sotto /
) è Btrfs. Io non uso -o discard
come opzione di montaggio. Questo significa Ho bisogno di correre fstrim
su richiesta .
In passato ho riscontrato questo problema: btrfs, nessun disco lasciato . Ho notato fstrim -v /
mostrava quasi che nessuno spazio fosse tagliato. La mia soluzione era di correre btrfs balance start /
prima fstrim
. Questo è l'essenza di la mia risposta lì .
Oggi è diverso. Forse sono in ritardo con la manutenzione. È questo che succede:
# fstrim -v /
/: 24 KiB (24576 bytes) trimmed
# btrfs balance start /
ERROR: error during balancing '/': No space left on device
Ho eliminato alcuni sottovolumi (istantanee) con btrfs subvolume delete …
e non ha aiutato. Non ricordo bene i dettagli, ma penso che in precedenza avrei potuto correre btrfs balance …
perché preliminare fstrim
tagliati almeno pochi MiB, non meno di 24 KiB come oggi. Ora sembra una situazione di catch-22 dove fstrim
o btrfs balance
Funzionerebbe solo se l'altro ha fatto il suo lavoro prima.
Per la cronaca, queste sono alcune statistiche che dimostrano che in effetti ho molto spazio:
# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 112G 43G 68G 39% /
# btrfs fi df /
Data, single: total=108.73GiB, used=41.00GiB
System, single: total=64.00MiB, used=16.00KiB
Metadata, single: total=3.00GiB, used=1.02GiB
GlobalReserve, single: total=352.00MiB, used=0.00B
Nota: "Non ho ancora spazio sul dispositivo" durante il normale funzionamento. Penso che Btrfs continui ad adattare le nuove scritture all'interno di blocchi già presi. Tuttavia in passato ho colpito "nessuno spazio lasciato ..." durante apt-get upgrade
, poi ho recuperato con btrfs balance
e fstrim
. Non so quando (se) questo mi colpisce ancora. Mi piacerebbe fare la mia manutenzione prima di ottenere "nessuno spazio lasciato ..." quando si fa qualcosa di importante.
Come recuperare da questa situazione così fstrim
e btrfs balance
non bloccarti l'un l'altro? Posso risolvere questo problema dal mio sistema in esecuzione?
In effetti l'ho già risolto, la mia risposta è qui sotto. La domanda è per riferimento futuro. Sentiti libero di aggiungere un'altra soluzione.
Informazioni aggiuntive:
$ uname -a
Linux foobar 4.4.0-78-generic #99-Ubuntu SMP […] x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue
Ubuntu 16.04.3 LTS \n \l
# dpkg -l | grep btrfs
ii btrfs-tools 4.4-1ubuntu1 amd64 Checksumming Copy on Write Filesystem utilities