Если я сделаю
btrfs fi defrag -rv /home
тогда я получаю длинный список файлов, которые нужно дефрагментировать.
Кажется, что он на самом деле ничего не делает.
Можно ли посмотреть, насколько продвинулась дефрагментация?
Вы можете использовать -f для сброса, иначе он будет работать пакетно и может остановиться. Если он распечатал файл, то это будет сделано, с учетом кеширования / блокировки (надеюсь, без ошибок файловой системы).
-f очистить данные для каждого файла перед переходом к следующему файлу.
-р рекурсивно дефрагментировать файлы в заданных каталогах.
Примечание. Аргументы каталога без -r не рекурсивно дефрагментируют файлы, но дефрагментируют определенные внутренние деревья (дерево экстентов и дерево вложенных объемов). Это сбивало с толку и могло быть удалено в будущем.
-v быть многословным.
$ дефрагментация файловой системы btrfs -v -r dir /
Рекурсивно дефрагментируйте файлы в каталоге dir /, печатайте файлы по мере их обработки. Имена файлов будут распечатываться партиями, аналогично количество данных, вызванных дефрагментацией, будет пропорционально последним N напечатанным файлам. Регулирование грязной памяти системы замедлит дефрагментацию, но все еще может быть большая нагрузка ввода-вывода, и система может на мгновение остановиться.
$ дефрагментация файловой системы btrfs -v -r -f dir /
Рекурсивно дефрагментируйте файлы в каталоге dir /, будьте подробны и дождитесь, пока все блоки будут сброшены, прежде чем обрабатывать следующий файл. Вы можете отметить более медленный прогресс вывода и меньшую нагрузку ввода-вывода (пропорциональную текущему дефрагментированному файлу).