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, чтобы убедиться, что диск не поврежден. Вы можете занимать все пространство с поврежденными потерянными + найденными файлами.