Файлова система ext2, osdev wiki, fandom powered by wikia


ext2 прийшла на заміну більш давньої ФС ext. Завдяки своїй Сокор вона може служити еталоном в тестах продуктивності файлових систем, але швидкість була досягнута завдяки відмові від технології журналирования, що робить її непоганий системою для SSD накопичувачів, тому що Відсутність журналирования є в даному випадку перевагою.

Фізична організація файлової системи Правити

Файлову систему можна представити у вигляді такої структурної схеми:

  • Суперблок (Superblock)
  • Опис групи блоків (Block Group Descriptors)
  • Бітова карта блоків (Blocks Bitmap)
  • Бітова карта індексних дескрипторів (Inode Bitmap)
  • Таблиця індексних дескрипторів (Inode Table)
  • дані


Весь простір розділу диска розбивається на так звані блоки, які мають порядкові номери. Блоки мають фіксований розмір і кратні розміру сектора (1024,2048,4096.). Для зменшення кількості переміщень головки жорсткого диска блоки об'єднують в групи блоків.

Одним з базових понять ext2 є поняття індексного дескриптора (inode, инод, айнод). Це спеціальна структура, яка містить в собі інформацію про фізичне розташування файлу / директорії / посилання і т.п. і його атрибутах.

суперблок Правити

Суперблок - одне з базових понять у ФС ext2. Суперблок містить в собі загальну інформацію про файлову систему і знаходиться в 1 кілобайті від початку розділу. Від цілісності суперблоку сильно залежить працездатність ФС, і багато ОС створюють його резервні копії на випадок пошкодження. Блок у вигляді структури на мові програмування С представлений нижче:

BGD Правити

BGD таблиця містить індексні дескриптори для кожної групи блоків файлової системи і розташований відразу після суперблоку. Таким чином, якщо вказано, що розмір блоку становить 1 кб, то блок з таблицею починається в другому блоці. Блоки нумеруються з нуля, і номери блоків не відповідають їх фізичному знаходженню. Формат дескриптора групи блоків у вигляді структури наведено нижче:

Індексні дескриптори Правити

У першій версії файлової системи індексні дескриптори мали фіксований розмір в 128Кб, починаючи з версії 1.0 розмір инода вказується у відповідному полі суперблоку. Як і блоки, кожен дескриптор має свій номер, відмінність лише в тому, що нумерація иноді починається з одиниці. До версії Ext2 1.0 дескриптори з 1 по 10 були зарезервовані, але починаючи з версії 1.0 перший незарезервірованних инод відбивається за допомогою поля в суперблоці. Другий инод має найбільше значення, так як він використовується для кореневого каталогу.

Пошук місцезнаходження дескриптора Правити

Для визначення того, яку групу блоків "представляє" даний індексний дескриптор, можна скористатися формулою:

де s_inodes_per_group відповідне поле в суперблоці (див. Суперблок).

де% - розподіл по модулю.

Читання інформації з дескриптора Правити

Тип файлу і права доступу Правити

У верхніх чотирьох бітах (15 по 12) поля i_mode знаходяться опису типу файлу, а в інших - права доступу.

Виявлено використання розширення AdBlock.