🎯 Понимаем, что такое Inode в Unix/Linux

🎯 Понимаем, что такое Inode в Unix/Linux | 🔁 Новости из телеграм - Ghostbase News

🎯 Понимаем, что такое Inode в Unix/Linux

Если вы работаете с Linux или администрируете серверы — понимание inode’ов обязательно. Без этого не разобраться в том, как устроена файловая система.

📦 Файл = данные + метаданные

Метаданные (информация о файле) хранятся в inode. Что в нём есть:

  • 🔢 Номер inode

  • 👤 UID (владелец)

  • 🧑‍🤝‍🧑 GID (группа)

  • 📏 Размер

  • 🕐 Atime — время последнего доступа

  • 🛠 Mtime — время последнего изменения данных

  • 🧾 Ctime — время изменения метаданных

  • 🧱 Размер блока

  • 🔐 Права и тип (mode)

  • 🔗 Кол-во жёстких ссылок

  • 📜 ACL (списки контроля доступа)

❗ Имена файлов в inode не хранятся!

Они записываются в структуре директории. В обычных случаях — линейно, поэтому поиск может быть медленным.

👉 Ext4 и XFS используют B-деревья для быстрого (O(1)) поиска по имени.

📁 Dentry (Directory Entry)

Это структура, которая связывает имя файла с inode внутри директории.

📂 Как inode указывает на данные файла?

  • 🧭 Direct block — inode содержит номер блока с реальными данными

  • 🧩 Indirect block — inode содержит номер блока, в котором лежат номера других блоков с данными

🛠 Ext vs XFS: как создаются inode’ы?

  • Ext — фиксированное количество inode’ов при форматировании. Закончились? Только форматировать заново.

  • XFS — inode’ы создаются по мере необходимости. Гораздо гибче.

🗑 Удаление файла

Вызов unlink() просто убирает запись из директории и помечает inode как свободный.

⚠️ Сами данные остаются на диске, пока не будут перезаписаны.

🔗 Жёсткие и символические ссылки

  • Жёсткая ссылка ➕ увеличивает счётчик ссылок в inode

  • Символическая ссылка ❌ не влияет на счётчик

📘 Что такое суперблок?

Это метаданные самой файловой системы. Их обычно несколько (на случай порчи). Что там хранится:

  • Общий размер FS

  • Размер блока

  • Кол-во свободных/занятых блоков

  • Где находится таблица inode’ов

  • Карта блоков диска

📖 Посмотреть суперблок можно так:

dumpe2fs /dev/mount | grep -i superblock

👉 @i_odmin