Индекс файловой системы squashfs для сопоставления блоков на диске

Кто-нибудь может рассказать, как squashfs отображает номера блоков дисков в блоки файловой системы. В основном я говорю о read_blocklist() в squashfs.

Спасибо капил

1 ответ

Решение

Метаданные squashfs для обычного файла выглядят примерно так:

===== Заголовок
start_block: позиция первого блока в файле
file_size: размер файла в байтах...
===== Черный список
size0: 32-битный заголовок для первого блока
size1
size2
...
=====

Заголовок блока содержит сжатый размер блока. Таким образом, мы можем вычислить положение любого данного блока, сложив start_block и размеры всех предыдущих блоков.

Может помочь игра с моим чисто-рубиновым анализатором squashfs: https://github.com/vasi/squash.rb

Другие вопросы по тегам