Неможливо записати на диск, але диск не заповнений


36

Я використовую Ubuntu 12.04 і не можу записати жоден файл, навіть як root, або виконувати будь-яку іншу операцію, яка вимагає написання. Ні один процес, який потрібно писати, не може, тому всі вони не вдається. dfкаже, що у мене є багато місця:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       30G   14G   15G  48% /
udev            984M  4.0K  984M   1% /dev
tmpfs           399M  668K  399M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            997M     0  997M   0% /run/shm

Усі результати, які я вважаю "не можу записати на диск", стосуються законних повноцінних дисків. Я навіть не знаю, з чого тут почати. Проблема з'явилася нізвідки цього ранку.

Останній запис журналу PHP:

не вдалося: на пристрої не залишилось місця (28)

Вім каже:

Неможливо відкрити (файл) для запису

Інші програми дають подібні помилки.

Після видалення ~ 1gb просто для впевненості проблема залишається. Я також перезавантажився.

df -i каже

Filesystem      Inodes   IUsed  IFree IUse% Mounted on
/dev/xvda1     1966080 1966080      0  100% /
udev            251890     378 251512    1% /dev
tmpfs           255153     296 254857    1% /run
none            255153       4 255149    1% /run/lock
none            255153       1 255152    1% /run/shm

14
Будь ласка, опублікуйте вихід "df -i".
EEAA

1
@EEAA відредаговано. Ви маєте рацію, df -i каже 100%. Що це означає? Чому це було б інакше?
Felwit

3
IIRC, занадто багато файлів у одному каталозі матимуть подібні, якщо не однакові симптоми. Що "занадто багато", залежить від файлових систем.
MSalters

Відповіді:


59

У вас немає суперечок. Цілком імовірно, що у вас є десь каталог з багатьма дуже маленькими файлами.


9
Просто хотів додати, що я навіть не знав, що rm може провалитися. Це була освіта.
фельдшер

2
@felwithe, я можу уявити, що find . -name sess\* -exec rm {} +спрацювало б.
Carsten S

3
@felwithe Що запропонували інші. rm напевно, спрацювало чудово, але оболонка розширила *глобус на надто багато даних, і обміняла його, перш ніж він навіть дійшов до точки виклику rm.
CVn

8
@CarstenS: Або те, find . -name sess\* -deleteщо мені легше запам'ятати, і, як правило, ефективніше.
MSalters

2
@Kaslai межа там не ОЗУ, а системний ліміт ARG_MAX. На жаль, стандарт POSIX не вказує точно, як вимірюються аргументи командного рядка проти ARG_MAX. Деякі реалізації не мають обмежень і тому не визначають ARG_MAX, але це не популярний варіант, оскільки він робить занадто багато програм не вдалося зібрати.
Джеймс Юнгмен

7

Мабуть, ОП має відповідь на свою конкретну проблему. Однак для повноти симптоми ОП також можуть виникнути, якщо файлова система була перероблена лише для читання. Це трапилося зі мною за допомогою VM Linux, зберігання якого знаходилось на кластерній дисковій системі з рідкісними переривчастими помилками. Іноді помилки призводять до того, що файлові системи переглядаються лише для читання. Зрештою помітним зовнішнім симптомом стали різні сервіси, які не реагували на заповнення оперативної пам’яті (з незміцненим диском).

На той час єдиною резолюцією було перезавантажити систему (втрачаючи будь-які неписані журнали). Спроби перерахунку RW не вдалися. (На жаль, я не пригадую повідомлення про помилки, повернені при спробі цих перерахунків.)

Отже, ..., не проблема ОП, але хтось інший, який приїде на цю сторінку, може скористатися цією інформацією.


5
Ні, насправді; коли файлова система була перероблена лише для читання, ви отримуєте помилку, яка повідомляє, що файлова система є лише для читання, а не з місця.
psusi

1
@psusi: Я цього не зробив. У мене виникли різні помилки, в тому числі "файлова система повна". Якщо це змінилося за останні два-три роки, це було б добре.
Ерік Тауерс

1
На днях я спробував перемістити файл у файлову систему ZFS лише для читання. Помилка досить чітко сказала "файлова система лише для читання".
CVn

Ніпе; був таким шляхом протягом 30+ років. FS запису лише для читання повертає -EROFS; запис на повний fs повертається -ENOSPC.
psusi

4
@psusi: Я бачу, що ти живеш у Всесвітній фантазії, де програмісти завжди роблять правильно, а не складають власні повідомлення про помилки. Я, здається, там не живу.
Ерік Тауерс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.