Определение простыми словами
Inode — это индексный дескриптор файла в файловой системе UNIX и Linux. Он содержит метаданные о файле, такие как размер, права доступа, владелец и указатели на физические блоки диска, где хранится содержимое файла. Inode помогает системе быстро находить и управлять файлами без необходимости читать сам файл.
Каждый файл и каталог имеют свой уникальный inode. При работе с файлами операционная система опирается на inode, что обеспечивает эффективность работы с дисковым пространством и управление данными.
Сравнение
| Атрибут | Описание | Пример |
|---|---|---|
| Номер inode | Уникальный идентификатор в файловой системе | 123456 |
| Размер | Размер файла в байтах | 1024 |
| Права доступа | Чтение, запись, выполнение для пользователя и групп | -rw-r—r— |
| Владелец и группа | UID и GID владельца файла | UID=1000, GID=1000 |
| Временные метки | Время создания, изменения и последнего доступа | 2024-06-01 12:00:00 |
| Указатели на блоки | Адреса физических блоков с данными файла | Прямые и косвенные ссылки на блоки |
Кейсы использования
- Управление файлами и каталогами в Linux и UNIX системах.
- Оптимизация работы с дисковым пространством на уровне файловой системы.
- Восстановление данных, зная номера inode.
- Использование в резервном копировании и клонировании для точного учета файлов.
- Отслеживание ссылок на файл (жёсткие ссылки) через один inode.
Негативный пример: Переполнение таблицы inode приводит к невозможности создать новые файлы, даже если на диске достаточно места.
Технические детали
Физическая структура inode определяется конкретной файловой системой, например, ext4, где inode занимает фиксированный размер (обычно 256 байт). В inode содержатся следующие поля:
- Тип файла (обычный, каталог, ссылочный и др.)
- Режим доступа (права)
- UID и GID
- Размер файла
- Временные метки: время создания, изменения, доступа
- Количество жёстких ссылок
- Указатели на блоки данных (прямые, косвенные, двойные и тройные)
Пример вывода inode в Linux:
$ ls -i file.txt
123456 file.txt
Использование команды stat для получения подробной информации об inode:
$ stat file.txt
File: file.txt
Size: 1024 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 123456 Links: 1
Access: 2024-06-01 12:00:00
Modify: 2024-06-01 11:00:00
Change: 2024-06-01 11:30:00
Подробнее о ext4, файловыx системах и жёстких ссылках.
🔥 Где это применяется
Частые вопросы
Что хранит в себе inode?
Inode хранит метаданные файла: размер, права доступа, владельца, временные метки и расположение данных на диске.
Можно ли восстановить файл по inode?
Да, при наличии доступа к inode и данным диска, возможно восстановить файл даже без его имени.
Что происходит, если закончатся свободные inode?
Создать новые файлы станет невозможно, даже если на диске есть свободное пространство.