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

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

Спасибо, Капил.


person Kapil    schedule 17.05.2012    source источник


Ответы (1)


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

===== Header
start_block: Position of the first block in the file
file_size: Size of the file in bytes
...
===== Block list
size0: 32-bit header for the first block
size1
size2
...
=====

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

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

person vasi    schedule 26.05.2012