0

can anybody please tell how the squashfs maps the disk block numbers to file system blocks. Basically i am saying about read_blocklist() in squashfs.

Thanks, Kapil

Kapil
  • 836
  • 2
  • 8
  • 20

1 Answers1

0

The squashfs metadata for a regular file looks roughly like this:

===== 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
...
=====

The block header contains the compressed size of the block. So we can calculate the position of any given block by adding up start_block and the sizes of all preceding blocks.

Playing around with my pure-ruby squashfs parser might help: https://github.com/vasi/squash.rb

vasi
  • 1,026
  • 7
  • 6