I have a sparse bundle with an apfs volume on it. I recently filled it up with an rsync operation. Since then I cannot delete files anymore; the rm complains that the disk is full. The same happens if I use echo > file.txt for an existing file; or truncate -s 0 file.txt.

Nothing is using the volume since it was a dedicated backup storage - nothing except my (manually executed) rsync and my manual shell commands touched it.

It seems like the file system cannot find a few spare bits to modify its internal structure.

I unmounted it (without problems/errors/warnings), and now it does not mount anymore (it says "Keine aktivierbaren Dateisysteme" - probably "no file systems can be activated" or something like that).

The underlying file system is error free and was not disconnected/unmounted during the whole procedure.

Two questions:

  • Is there a sane way to fix the original problem (file system full + no way to remove files)?
  • Is this a known problem? At the end of this day, this means total file system loss simply due to it being full. Seems hardly believable to me. Or is a apfs volume on a sparse bundle considered experimental?

This is on Mojave (10.14.6). The file system which contains the sparse bundle is a smb:// share (which itself has plenty of space left).

EDIT: It turns out I have this issue https://matt.sh/apfs-object-map-free-recovery, i.e. a broken and unrecoverable (at least with MacOS standard tools) volume. If someone else arrives here through this search, that link may help for that issue (it also has tips on recovering with some open source tool, which I didn't test). I'm still curious about whether anyone else had the "can't delete - no space left" issue; but maybe it is just a convoluted error message caused by the broken FS. Which is a topic for another question.

  • Have you emptied the Trash? Have you tried to free up space by moving a file off of the sparse bundle via Finder by dragging it to another volume while holding down? Have you, via Terminal, examined /Volumes/$NAME/.Trashes/.. to see if it contains any files that have not been deleted? E.g. sudo du -h /Volumes/$NAME/.Trashes while substituting $NAME for the actual volume name ( or ls -alR for du -h). You might also try compacting the sparse bundle, however I'd probably want to have a backup of it and do it from the system hosting it if it's hosted on a Mac. – user3439894 Jul 27 '20 at 16:13

You must log in to answer this question.

Browse other questions tagged .