Второе рождение утерянных данных под LINUX'ом


         

Структура файловой системы - часть 3


Таблица представляет собой массив записей типа inode, каждая из которых хранит всю информацию об одном файле: тип (обычный файл, директория, символьная ссылка и т. д.), схема размещения на диске, логический/физический размер, дата/время создания/ модификации/последнего доступа/удаления, количество ссылок на файл и правда доступа (см. листинг 2).

смещение   размер описание

------- ------- -----------

    0       2 i_mode       ; формат представления описание

    2       2 i_uid        ; uid пользователя

    4       4 i_size       ; размер файла в байтах

    8       4 i_atime             ; время последнего доступа к файлу

   12       4 i_ctime             ; время создания файла

   16       4 i_mtime             ; время модификации файла

   20       4 i_dtime             ; время удаления файла

   24       2 i_gid        ; gid группы

   26       2 i_links_count ; количество ссылок на файл (0 – файл удален)

   28       4 i_blocks            ; количество блоков, принадлежащих файлу

   32       4 i_flags             ; разные флаги

   36       4 i_osd1       ; OS dependant value

   40  12 x 4 i_block             ; 12 DIRECT BLOCKS (ссылки на первые 12 блоков файла)

   88       4 i_iblock            ; 1x INDIRECT BLOCK

   92       4 i_2iblock    ; 2x INDIRECT BLOCK

   96       4 i_3iblock    ; 3x INDIRECT BLOCK

  100       4 i_generation ; поколение файла (используется NFS)

  104       4 i_file_acl   ; внешние

атрибуты

  108       4 i_dir_acl    ; higer size

  112       4 i_faddr             ; положение последнего фрагмента

  116      12 i_osd2       ; OS dependant structure

Листинг 2 формат представления inode

Схема размещения файла на диске организована намного проще, чем в NTFS и FAT. Каждый файл занимает один или несколько блоков. Даже если блок занят только частично, он выделяется файлу целиком (в остальных файловых системах, таких например, как UFS, предусмотрена возможность выделения файлу только части блока, а в NTFS и ReiserFS мелкие файлы могут храниться непосредственно в самой inode, что существенно уменьшает фрагментацию и увеличивает производительность), но вернемся к ext2fs/ext3fs.




Содержание  Назад  Вперед