Как записи каталога ext4 хранятся в i-узлах?

#linux #filesystems #kernel #inode #ext4

#linux #файловые системы #ядро #индекс #ext4

Вопрос:

Я провожу некоторые эксперименты с внутренними компонентами файловой системы ext4, когда я наткнулся на эту проблему, пытаясь реализовать чтение файла по пути.

Корневой каталог i-node, номер 2 в соответствии со специальной таблицей i-node документации ядра, легко найти в таблице i-node по указателям в дескрипторах группы блоков и суперблоке.

Насколько я понимаю, процесс поиска файла по пути

  1. Найдите корневой каталог i-node
  2. Просматривайте записи каталога, пока мы не найдем имя подкаталога, который мы ищем
  3. Возьмем номер i-узла, на который указывает найденная нами запись каталога
  4. перейдите к (2.), повторяйте до тех пор, пока мы не найдем нужный файл.
  5. Прочитайте файл, проанализировав дерево экстентов

Правильно ли это?

Если да, то как хранятся struct ext4_dir_entry / ссылаются на s из i-узла? Я предполагаю i_node.i_block[] , что это как-то связано с этим, но я не совсем понимаю, как читать записи каталога оттуда. Хранятся ли они в i-узле? Или массив содержит указатели?

Комментарии:

1. Вы ищете это? kernel.org/doc/html/latest/filesystems/ext4 /…