ktsin
@ktsin
Студент технического университета

EXT2 где на диске находится структура dir_entry?

Каталоги в ext2 описываются структурой dir_entry, в которой хранится номер инода, имя и т.д.

Внимание, вопрос! В каком месте на диске находится эта структура dir_entry? Я думал, что ссылка на блок с этой струк-й будет храниться в соответствующим директории иноде (i_mode&0x4000 != 0), но я был не прав -- при переходе на i_block[0], я попадаю на какой-то непонятный мусор. Ссылка на образ диска, с которым я работаю
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
@galaxy
А поконкретнее, в чем проблема? Где мусор?
Я поизучал образ для интереса: по смещению 0x5000 (4KiB блоки, 5й блок) идет первая таблица inode, вторая запись в ней соответствую root директории, i_block[0] указывает на блок A5, по смещению A5000 находим dir_entry таблицу:
00000A5000: 02 00 00 00 0C 00 01 02 │ 2E 00 00 00 02 00 00 00  ☻   ♀ ☺☻.   ☻
00000A5010: 0C 00 02 02 2E 2E 00 00 │ 0B 00 00 00 14 00 0A 02  ♀ ☻☻..  ♂   ¶ ◙☻
00000A5020: 6C 6F 73 74 2B 66 6F 75 │ 6E 64 00 00 0C 00 00 00  lost+found  ♀
00000A5030: 10 00 05 01 31 30 32 34 │ 6B 00 00 00 0D 00 00 00  ► ♣☺1024k   ♪
00000A5040: 10 00 05 01 34 30 39 36 │ 6B 00 00 00 0E 00 00 00  ► ♣☺4096k   ♫
00000A5050: 10 00 05 01 38 31 39 32 │ 6B 00 00 00 0F 00 00 00  ► ♣☺8192k   ☼
00000A5060: 10 00 06 01 31 36 33 38 │ 34 6B 00 00 10 00 00 00  ► ♠☺16384k  ►
00000A5070: 10 00 06 01 36 35 35 32 │ 33 6B 00 00 11 00 00 00  ► ♠☺65523k  ◄
00000A5080: 0C 00 04 02 64 69 72 30 │ 12 00 00 00 0C 00 04 02  ♀ ♦☻dir0↕   ♀ ♦☻
00000A5090: 64 69 72 31 17 00 00 00 │ 24 00 19 02 53 79 73 74  dir1↨   $ ↓☻Syst
00000A50A0: 65 6D 20 56 6F 6C 75 6D │ 65 20 49 6E 66 6F 72 6D  em Volume Inform
00000A50B0: 61 74 69 6F 6E 00 00 00 │ 19 00 00 00 48 0F 0A 02  ation   ↓   H☼◙☻
00000A50C0: 79 6F 75 74 75 62 65 2D │ 64 6C 00 00 00 00 00 00  youtube-dl
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы