3

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

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

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

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 .

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

1

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

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

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

cd /
du -sk * |sort -n

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

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

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .