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

1774
Fred Asp

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

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

Вот что сообщает 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.

3

4 ответа на вопрос

4
Mike Insch

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

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

Вау, теперь я вернул себе место, но не все. Что это значит? Есть ли какой-то процесс, который занимает место на моем жестком диске? Fred Asp 12 лет назад 0
Если вы использовали команду `tune2fs -m 2 / dev / md1`, это просто означает, что на вашем диске все еще остается" 2% "места, зарезервированного для` root`. Поскольку у вас нет независимого раздела `/ var`, я бы не рекомендовал переходить ниже этого значения, поскольку ваша система должна иметь возможность записи в` / var` для ведения журнала и других целей - отсюда зарезервированное пространство. Mike Insch 12 лет назад 0
Как мне следует интерпретировать мою ситуацию? Что в системе зарезервировано 14ГБ? Звучит очень много для меня. Это какая-то программа с очень большими файлами? Могу ли я еще что-нибудь сделать, чтобы увидеть, в чем проблема? Fred Asp 12 лет назад 0
Да, в вашей системе зарезервировано пространство 13,74 ГБ (2% от 687 ГБ). Это не ошибка системы, это дизайн и преднамеренное. Вы можете избежать использования `tune2fs -m 1 / dev / md1`, который уменьшит эти издержки до` 6,87 ГБ`, но это минимальный минимум. Очень важно, чтобы вы ** не ** устанавливали зарезервированное пространство на ноль, так как это приведет к гарантированному повреждению файловой системы при следующем исчерпании дискового пространства. Mike Insch 12 лет назад 1
Спасибо вам большое за эти ответы. Я могу сказать, мне нужно больше изучать эту тему. Fred Asp 12 лет назад 0
Еще одним преимуществом резерва 14 ГБ является то, что он уменьшает фрагментацию. Ext3 не лучшая ФС, когда дело доходит до фрагментации, и с 98% используемого диска у вас уже есть достаточно. Фрагментация, которую вы получите на 99%, была бы очень плохой. MSalters 12 лет назад 0
1
Jaap Eldering

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

  • Удаленные файлы все еще открываются какой-либо программой. Пока программа имеет открытый файл (дескриптор), файл фактически не удаляется (хотя он больше не доступен для новых программ).
  • Пространство сразу же заполняется другими файлами, например, файлами журналов в / var / log, из-за процесса, который генерирует много сообщений, например, отладочный вывод или ошибки.
Ну, по первому ответу. Я пару раз перезагружал компьютер, поэтому это должно быть исключено. На втором ответе. _df_ по-прежнему сообщает: размер = 687 ГБ, используется = 672 ГБ и безрезультатно = 0, я вижу, на что вы рассчитываете (некоторые тривиальные вещи), и я тоже так думаю. Но я просто не вижу никаких проблем. Fred Asp 12 лет назад 0
1
JooMing

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

cd / du -sk * |sort -n 

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

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

0
akseli

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

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

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

Я использую команду _rm_, чтобы удалить файлы. Насколько я знаю, он удаляет файлы / директории навсегда. Fred Asp 12 лет назад 0
Смотрите редактирование выше! ^ akseli 12 лет назад 0

Похожие вопросы