Skip to content

Object layout

ph0llux edited this page Oct 29, 2023 · 2 revisions

Zff containers contain one or more objects.

There are multiple types of objects: Physical, logical and virtual.
A physical object can contain a physical dump, a logical object can contain a logical dump (e.g. one or more folder structures). A Zff container can contain several such objects.
An example: There is a mobile device with an internal storage, which can be dumped physically, additionally there is an SD card, which can also be dumped physically and a SIM card, from which the dump tool extracts a logical folder structure.
For this, either three different Zff containers could be created, which then contain the respective dump - or only one single Zff container, which contains 3 objects with the respective dump (that would be 2 physical and one logical object).

Physical objects

Both types of objects start with a header object, which contains basic meta information.

In the case of a physical object, the actual dump then follows in the form of chunks.
This is followed by an object footer, which contains metadata relating to the dump process.

Logical objects

Logical objects also start with an object header (this is an identical header to that of physical objects).

This is followed by individual (Zff) files. The original folder structure is ensured by the corresponding parent file numbers in the respective file headers.

Finally, an object footer follows again. However, this differs from that of a physical dump.

Virtual objects

A special one is the virtual object.
This object maps some offsets to existing offsets inside of the zff container (e.g. to assemble RAIDs).

Clone this wiki locally