linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Файловая система/inode

kb/filesystem ── Файловая система ── beginner

Inode

Inode - это запись в файловой системе с метаданными и указателями на блоки данных файла. Имя файла лежит отдельно (в директории) и просто указывает на inode.

view as markdownaka: inodes

Что такое inode

Когда ты создаёшь файл в Linux, файловая система выделяет под него inode - фиксированную структуру в служебной области диска, которая хранит:

  • тип объекта (файл, директория, symlink, устройство…)
  • права доступа (file-permissions) - rwx бытность для u/g/o
  • UID и GID владельца
  • размер файла
  • времена atime / mtime / ctime
  • количество имён, ссылающихся на этот inode (link count)
  • указатели на блоки данных (где физически лежит содержимое)

Имя файла - это просто строка в записи директории, которая сопоставлена inode-номеру. Поэтому одно содержимое может иметь несколько имён (hard-link), а директория - это специальный тип inode со списком пар имя → inode.

Почему это важно

Из этого следует несколько неочевидных вещей:

  1. Файл не уничтожается пока есть хотя бы одно имя. rm снимает имя из директории и уменьшает link count. Когда счётчик доходит до 0 и ни один процесс не держит файл открытым - освобождаются блоки данных.

  2. Inode - отдельный пул от блоков. На ext4 их количество фиксируется при создании FS. Можно упереться в лимит inode при свободном дисковом месте - классический инцидент с миллионами мелких файлов сессий/кешей.

  3. mv внутри одной FS - это переименование (меняется только запись в директории, inode тот же). А между разными FS - это копирование+удаление.

  4. Директория тоже занимает inode. На сильно вложенных проектах директории могут быть третьим источником inode-расхода после кешей и логов.

§ команды

bash
ls -i ~/.bashrc

Посмотреть inode-номер файла

bash
stat ~/.bashrc

Полная карточка: Inode, Links, Size, Access/Modify/Change times

bash
df -i

Использование inode по файловым системам - ключевая команда для диагностики «диск full при свободных GB»

bash
find / -xdev -printf '%i\n' 2>/dev/null | sort -u | wc -l

Сколько inode реально использовано в одной FS (без mount points)

§ см. также

  • hard-linkHard linkHard link - второе имя для того же [[inode]]. Оба имени равноправны: файл живёт пока есть хотя бы одно из них.
  • symbolic-linkSymbolic linkSymlink - отдельный файл-«ярлык», который содержит путь к цели. В отличие от [[hard-link]], это разные [[inode]], symlink может указывать на что угодно (включая несуществующее).
  • ext4ext4 - рабочая лошадь Linux-ФСext4 - дефолтная ФС большинства дистро: журналирование, extents, фиксированное число inode при mkfs. Главные тюны - data-mode, noatime, lazy init. Стабилен 15+ лет. Не масштабируется как XFS.
  • sparse-filesSparse-файлы - дыры и apparent sizeSparse-файл имеет "дыры" - блоки которые ФС не аллоцировала. При чтении возвращают нули, но не занимают места. ls показывает apparent size, du - реальное. Используются в qcow2, бэкапах, sparse loop.
  • file-permissionsFile permissions: rwx и chmodКаждый файл имеет три набора прав - для владельца, группы и остальных. Каждый набор это три бита: read (r), write (w), execute (x). Меняем через `chmod`.

§ упоминается в уроках

  • ›beginner-02-files-and-text
  • ›beginner-03-inodes-and-links
  • ›beginner-11-find-and-grep
  • ›intermediate-08-disk-usage
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки