Ext3 проблемы с дисковым пространством

У меня закончилось место на диске на днях (довольно часто на этом конкретном компьютере). Как обычно я начал удалять файлы и каталоги, чтобы восстановить немного места.

Однако на этот раз файловая система все еще сообщает, что у меня нет свободного места на диске.

Вот что сообщает df:

replicant:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/md1              687G  672G     0 100% /
tmpfs                 250M     0  250M   0% /lib/init/rw
udev                   10M  716K  9.4M   7% /dev
tmpfs                 250M     0  250M   0% /dev/shm
overflow              1.0M  1.0M     0 100% /tmp

Если я рассчитываю это право, у меня должно быть приблизительно 15 ГБ доступного на /, Кто-нибудь может мне это объяснить? Это не просто df неправильно вычисляю это, потому что я не могу создавать файлы или что-то еще в файловой системе.

Я использую ext3 на Debian 5.0.

4 ответа

В вашей файловой системе есть зарезервированное пространство, доступное только для root пользователь. Это довольно стандартно в системах Unix / Linux, где файлы журналов и другие файлы, необходимые для запуска системы, принадлежат root пользователь.

Вы можете использовать tune2fs инструмент для запроса или корректировки количества места, зарезервированного для root,

Бежать:

tune2fs -l /dev/md1

Чтобы увидеть текущие параметры, найдите строку, например:

Reserved block count: XXXX

Это скажет вам, сколько блоков зарезервировано. Возьмите это значение и умножьте на значение на Block size: YYYY строка, чтобы увидеть количество зарезервированного пространства в байтах.

Вы можете настроить количество зарезервированного пространства с помощью:

tune2fs -m 2 /dev/md1

Чтобы установить зарезервированное пространство в 2%, По умолчанию 5%, Эти команды должны быть выполнены как rootлибо через root вход через sudo,

ПРИМЕЧАНИЕ. Будьте осторожны при использовании этой команды, так как неправильное использование может повредить вашу файловую систему!

Вы должны посмотреть, что занимает место в корневом разделе. Первым шагом будет:

cd /
du -sk * |sort -n

Это поможет вам определить самые большие каталоги (вероятно, / home или / var). Затем повторите вышеупомянутое для самых больших каталогов. Если вы удалите что-то, вы должны сравнить использование диска до и после, потому что некоторые программы могут иметь открытые файлы. Если вы сомневаетесь, вы можете использовать lsof, чтобы проверить это. Если ваше пространство занято в файлах журналов, то вам следует пересмотреть /etc/logrotate.conf и запустить '/ usr / sbin / logrotate /etc/logrotate.conf'. Это позаботится о программах, которые могут иметь открытые файлы журнала.

Если вышесказанное не помогает. Загрузитесь в однопользовательском режиме и запустите fsck, также может быть повреждение файловой системы.

Две другие возможные причины, по которым свободное место не было освобождено:

  • Удаленные файлы все еще открываются какой-либо программой. Пока программа имеет открытый файл (дескриптор), файл фактически не удаляется (хотя он больше не доступен для новых программ).
  • Пространство сразу же заполняется другими файлами, например, файлами журналов в /var/log, из-за процесса, который генерирует много сообщений, например, отладочный вывод или ошибки.

Звучит довольно глупо, но ты убедился, что опустошил свой мусорный бак?

Иногда, когда вы удаляете файлы, операционная система сохраняет их в вашей корзине на случай, если вы случайно удалили файл, и действительно удаляете их только после того, как вы сказали "Очистить корзину".

Попробуйте запустить fsck, чтобы убедиться, что диск не поврежден. Вы можете занимать все пространство с поврежденными потерянными + найденными файлами.

Другие вопросы по тегам