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