Выбор ответа Middle Файловая система и права обновлено

Место есть, а файл не создаётся

Вопрос

df -h показывает 40% занятого места, но создание файла падает с No space left on device. Что проверить первым?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: df -i: закончились inode из-за мелких файлов. Каждый файл занимает inode, а их число задаётся при создании ФС (ext4).

Варианты ответа

  1. Права на каталог: без w ядро отвечает ENOSPC
  2. Лимит открытых файлов ulimit -n для процесса
  3. Свободную память в free -m: кончился page cache
  4. df -i: закончились inode из-за мелких файловправильный ответ

Разбор

Каждый файл занимает inode, а их число задаётся при создании ФС (ext4). Миллионы мелких файлов (кеш сессий, очередь писем) съедают inode раньше байтов, и ядро отвечает ENOSPC. Права дали бы Permission denied, ulimit -n даёт Too many open files, память к ENOSPC не относится. Ещё одна причина ENOSPC при свободных байтах: место зарезервировано для root (по умолчанию 5% на ext4).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.