#Симптом и границы применимости
Arch Linux сообщает, что файловая система заполнена, хотя команда du суммирует значительно меньше места. Различайте разные точки монтирования, скрытые данными при mount каталоги, зарезервированные блоки и файлы, уже удалённые, но открытые процессом.
#Возможные причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Удалённый файл всё ещё открытПроцесс держит дескриптор после удаления имени файла. | lsof +L1 показывает deleted и большой SIZE/OFF; df не освобождается. | После согласования перезапустить только владеющую программу. |
| du считает не тот томЗначения df и du получены для разных файловых систем/подкаталогов. | findmnt показывает отдельные /home, /var или btrfs-subvolume. | Сравнивать в пределах одного и того же источника. |
| Служебное пространство и квотыdf учитывает структуру ФС, reserved blocks, метаданные Btrfs/snapshots. | На ext4 есть резерв, на btrfs — снимки, du не соответствует всем выделенным экстентам. | Применять специализированную диагностику по типу системы. |
#Подробная диагностика и безопасные действия
- 1. Определите реальную заполненную файловую системуВ терминале посмотрите тип ФС, источник и точку монтирования. Если предупреждение о /var, но /var — отдельный том, сравнивайте показатели именно /var.
df -hпоказывает занятость блоков,df -i— индексы, которые могут закончиться отдельно. - Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
df -hTdf -ifindmnt -T /var
- 2. Сравните du только с тем же томомКоманда
du -xне проходит в другие файловые системы; запуск от корня с sudo может занять время и читать чувствительные каталоги. На нагруженном сервере используйте узкую точку монтирования вместо полного обхода всех данных. - Дополнительная команда по темеLinux · Терминал (Bash)КомандаНужен sudoТолько чтение, но может создавать заметную дисковую нагрузку; при необходимости ограничьте каталог.
sudo du -xhd1 /var 2>/dev/nulldf -h /var
- 3. Ищите удалённые, но открытые файлыЕсли lsof установлен,
+L1перечисляет открытые файлы со счётчиком ссылок меньше одного, часто с пометкой deleted. Запишите PID и имя процесса; не делайте вывод лишь по одному размеру — файл может быть отображением или разрежённым. - Только просмотр таблицы открытых файловLinux · Терминал (Bash)КомандаНужен sudoТолько просмотр таблицы открытых файлов. Не очищайте файловые дескрипторы вручную.
command -v lsofsudo lsof +L1
- 4. Проверьте место под скрытыми точками монтированияВ выводе findmnt найдите вложенные mount и сравните с каталогами обхода. Данные, записанные в папку до монтирования отдельного диска, скрываются при его монтировании; искать и очищать их следует из Live-среды или в окно обслуживания.Linux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
findmnt -R /varlsblk -f
- 5. Учтите особенности ext4 и BtrfsДля ext4 резерв под администратора отражается в статистике блоков; для Btrfs снимки и разделяемые экстенты могут влиять на оценку. Перед установкой дополнительных инструментов проверьте тип ФС. Не меняйте зарезервированное пространство просто для того, чтобы скрыть предупреждение.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
findmnt -no FSTYPE,SOURCE,TARGET /varstat -f -c "type=%T free=%f avail=%a blocksize=%S" /var
- 6. Освободите пространство только известным безопасным способомЕсли подтверждён большой удалённый файл, согласованно перезапустите именно владеющий процесс (перезапуск сервиса прервёт его работу). Если объём занят журналом, используйте штатную политику ротации, а не удаление открытых /var/log-файлов.
- Дополнительная команда по темеLinux · Терминал (Bash)КомандаНужен sudoДиагностика: команды не удаляют журналы или данные; решение о перезапуске принимается отдельно.
sudo lsof +L1journalctl --disk-usage
- 7. Проверьте изменение на одном томеСравните df до и после адресного исправления;
df -iнужен, если кончились inode. Если du и df расходятся дальше, сохраните их вывод и сведения о ФС для специалиста, не стирайте снапшоты или системные папки по догадке. - Дополнительная команда по темеLinux · Терминал (Bash)КомандаНужен sudoВыполняйте в терминале Arch Linux; изменяйте только указанную и предварительно проверенную настройку.
df -hT /vardf -i /varsudo du -xhs /var 2>/dev/null
#Как понять, что проблема устранена
Повторите исходное действие, из-за которого возникла неисправность, и сверяйте не только код завершения команды, но и прикладной результат. Сохраните вывод последней диагностической команды и записи журнала до и после исправления. Если ошибка повторяется, верните только изменённую настройку из резервной копии и передайте специалисту точный симптом, имя программы/службы, версию системы и необходимые фрагменты журнала без паролей и закрытых ключей.
#Что делать, если не помогло
Не применяйте случайные советы для другого дистрибутива: в Arch Linux особенно опасны частичные обновления пакетов, а в Rocky Linux — отключение SELinux или неконтролируемый перезапуск системных служб. Остановитесь после неуспешного безопасного шага, зафиксируйте фактическое сообщение и вернитесь к соответствующей причине. Для загрузки, разделов диска и единственного удалённого подключения используйте резервную копию и локальную консоль.