У меня проблема с Ubuntu 12.04 LTS. Это второй раз, когда я столкнулся с этой проблемой за последние 3 недели. Впервые в описан этот закрытый вопрос о StackOverflow . Версия TL; DR - мне удалось использовать все inode в системе 450G ext4, компилируя и собирая стек Android менее 20 раз.
Я решил, что решил проблему, переформатировав диск в XFS, чтобы хранилище inode могло расти.
Этим утром после выполнения сборки в одночасье у меня осталось менее 1 ГБ свободного места. На этой машине нет ничего, кроме того, что нужно для сборки Android. Я сделал 5 полных сборок на исходниках платформы. Сборка создает кучу файлов, а затем я удаляю их с помощью make clean
. Я на самом деле не меньше 1 ГБ, но инструменты сообщают об этом таким образом. Я удалил кучу временных файлов и освободил около 40 ГБ. Пару часов спустя, просто на холостом ходу, я вернулся менее чем на 1 ГБ.
Запуск Ubuntu с флешки возвращает следующее для раздела ...
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 468521456 468255460 265996 100% /media/f71c77eb-b4cc-
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda5 1691760 624214 1067546 37% /media/f71c77eb-b4cc-
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 447G 447G 260M 100% /media/f71c77eb-b4cc-
Вот доказательство того, что что-то не так. Когда я запускаю du
(с и без --apparent-size) или визуальный анализатор использования диска, я показываю, что на самом деле я использую только около 35 ГБ или около того. 98,7% используемого пространства находится в /home/eric
, но du
не складывается с этим. Расхождение между /home/eric
и /home/eric/android
Я прочитал соответствующие вопросы здесь и на SO, и они обычно предполагают, что удаленные файлы хранятся у открытые процессы. Я перезагрузился на флешку, чтобы запустить этот тест, чтобы не было открытых файлов. FWIW, / tmp пуст.
Есть ли инструмент, который я могу установить на флэш-накопитель, чтобы восстановить «потерянное» пространство? Я могу попытаться освободить память в системе и запустить ее там, но я предполагаю, что лучше сделать это с флешки.
Должен ли я настраивать эту систему по-другому? Я бы предпочел не делать другие вайпы и устанавливать, но мне нужна устойчивая система сборки Android.
FOLLOWUP - На прошлой неделе мне пришлось взорвать установку и переустановить 12.04, чтобы закончить работу. На этой неделе я снова буду собирать Android-сборки и буду внимательно следить за использованием диска и сообщать информацию здесь, когда узнаю больше.
Спасибо
Недавно я столкнулся с этим, и в моем случае нужно было запустить fsck
.
Я сделал touch /forcefsck && reboot
, и через несколько минут сервер снова подключился, и внезапно мои недостающие 6 ГБ освободились.
В Oracle Linux это происходит, когда у вас есть (много / большие) файлы, которые удалены, но все еще открыты запущенным процессом. Тогда помогает остановка процессов или перезагрузка машины.
Мы можем сделать тест, du
говорит, что у вас есть 10 ГБ свободного места, в то время как df
говорит, что 300 МБ, вы можете написать файл (или несколько файлов) размером, скажем, 2 ГБ? Если вы можете, это означает, что df просто неверен (и на самом деле нет проблемы «потерянного пространства»). Если нет, то du
неправильно (что будет интересно).
Я не нашел причину этой проблемы, но она уникальна для Ubuntu 12.04.
Просто настраивая новый сервер, я начал с Ubuntu 12.04 и столкнулся с этим; du показал около 111 ГиБ, а df - около 170 ГиБ.
Загрузка с использованием systemrescuecd 3.3.0 и повторная проверка показали разницу менее 1 ГиБ.
Оставив неизменным раздел и файловую систему (это ext4), я убрал каталоги ubuntu и установил Debian 7.0. Опять же, разница между du и df была < 1 ГиБ.
С Ubuntu 10.04, на том же разделе и ext4 fs:
Из df -m /
,
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/sda2 2814679 407164 2264538 16% /
и из du -mx
,
tail -1 /root/diskuse
406920 .
что достаточно близко.
Прежде чем вы зайдете далеко ... переведите систему в однопользовательский режим и выполните полный fsck (я действительно имею в виду полный fsck -f /dev/sda5
) файловой системы и посмотрите, что она показывает. Вы можете найти пространство в виде частей проблемных областей на вашем диске или несоответствие между тем, что выделено, и тем, что присутствует на диске.
Изображение, которое вы разместили, говорит вам, где используется пространство: /home/eric
. Кажется, у вас есть очень большой файл, занимающий все пространство, или, возможно, большое количество небольших файлов. Откройте свой домашний каталог, убедитесь, что вы видите скрытые файлы ( Ctrl kbd> + H kbd> в Nautilus), и сортируйте по размеру файла.
Это часто вызывается файлами в каталоге, в котором также установлена другая файловая система. Типичным решением является загрузка с аварийного диска или в однопользовательском режиме и очистка каталогов, убедившись, что они не используются в качестве точек монтирования (cat /proc/mounts
или df -h
).