Запуск OpenSuse 12.2.
Внезапно корневое разделение кажется заполненным (99%), но я больше не могу удалять файлы вручную.
«rm: не удается удалить xxx: на устройстве не осталось места», хотя 450 МБ все еще свободны в соответствии с df. Файловая система - BTRFS.
Я попытался проверить FS с помощью btrfsck, но это не помогло.
Что делать?
Ответы:
Скорее всего, вы столкнулись с проблемой, когда BTRFS должен выделить немного метаданных, прежде чем он сможет удалить файл. Одним из слабых мест BTRFS является обработка состояния вне пространства; улучшение поведения в этой области является одним из приоритетов проекта.
Одно из предложений на вики-сайте btrfs - забить файл вместо его удаления.
Это удалит содержимое файла без изменения записи каталога. После того, как вы вышли из угла, в котором вы находитесь, вы можете удалять файлы, как обычно. Если это доставляет вам проблемы, вы можете временно перемонтировать с
nodatacow
опцией, которая отключает режим копирования при записи. Но ... не уверен наверняка, поможет это или нет.В общем, хотя: не запускайте файловую систему BTRFS всухую. Это все еще предсерийное программное обеспечение, и угловые случаи немного грубоваты.
источник
Я столкнулся с тем же сообщением об ошибке, но в моем случае файловая система не была заполнена:
Но вопрос BTRFS показал, что он действительно был полным:
Даже перезаписать любые файлы (как предположил Тайлер) было невозможно. Мое решение было найдено по адресу http://marc.merlins.org/perso/btrfs/post_2014-05-04_Fixing-Btrfs-Filesystem-Full-Problems.html, в котором рекомендуется выполнить ручную перебалансировку файловой системы с помощью
btrfs balance start -dusage=55 /path/to/filesystem
.источник
Для меня, используя ZFS, я обнаружил, что удаление других файлов освободило достаточно места на разделе ZFS, а затем я смог удалить эти файлы.
источник
В моем случае, с файловой системой ZFS в Linux, я даже не мог обрезать файл. Уничтожить старые снимки сделали свое дело (если есть).
zfs destroy /path/of/snapshot
источник