SeqBox

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m
 
(6 intermediate revisions by 3 users not shown)
Line 10: Line 10:
 
| subcat                = Archiving
 
| subcat                = Archiving
 
}}
 
}}
 +
[[SeqBox]] ('''Sequenced Box container'''; '''SBX''') is a single file container/archive that can be reconstructed even after total loss of file system structures.
  
[[SeqBox]] is a single file container/archive that can be reconstructed even after total loss of file system structures.
+
An SBX container is composed of a collection of blocks with size sub/equal to that of a sector, so they can survive any level of fragmentation. Each block has a minimal header that includes a unique file identifier, block sequence number, checksum, version. Additional non critical info/[[metadata]] are contained in block 0 (like name, file size, crypto-hash, other attributes, etc.).
 +
 
 +
If disaster strikes, recovery can be performed simply scanning a volume/image, reading sector sized slices and checking blocks signatures and then [[CRC]]s to detect valid SBX blocks. Then the blocks can be grouped by UIDs, sorted by sequence number, and reassembled to form the original SeqBox containers.
 +
 
 +
Does not work on encrypted filesystems or filesystems that don't have a multiple of 128-byte block size.
 +
 
 +
Striping/RAID instead is usually not a problem.
 +
 
 +
With password set, can be used for steganography (attach to another file and it won't be recognizable unless password is provided).
 +
 
 +
If multiple copies are stored, can automatically pull together all the good segments.
 +
 
 +
Adds < 3.5% to file size.
 +
 
 +
The format has been extended to Error-correcting SeqBox (EC-SeqBox) by [[Blockyarchive/blkar]]
  
An [[SBX]] container is composed of a collections of blocks with size sub/equal to that of a sector, so they can survive any level of fragmentation. Each block have a minimal header that include a unique file identifier, block sequence number, checksum, version. Additional, non critical info/[[metadata]] are contained in block 0 (like name, file size, crypto-hash, other attributes, etc.).
 
  
If disaster strikes, recovery can be performed simply scanning a volume/image, reading sector sized slices and checking blocks signatures and then CRCs to detect valid SBX blocks. Then the blocks can be grouped by UIDs, sorted by sequence number and reassembled to form the original SeqBox containers.
 
  
 
== Identification ==
 
== Identification ==
  
A SeqBox files start with bytes <code>53 42 78</code> or "SBx" in [[ASCII]].
+
A SeqBox files start with bytes {{magic|53 42 78}}, or "{{magic|SBx}}" in [[ASCII]].
  
 
== Format description ==
 
== Format description ==
Line 28: Line 41:
  
 
* [http://mark0.net/soft-seqbox-e.html SeqBox], Marco Pontello's Home Page
 
* [http://mark0.net/soft-seqbox-e.html SeqBox], Marco Pontello's Home Page
 +
* [https://github.com/darrenldl/ocaml-SeqBox osbx] - OCaml implementation of SeqBox by darrenldl (Darren Li)
 +
* [[Blockyarchive/blkar]] - handles both SeqBox and EC-SeqBox in a more robust manner

Latest revision as of 20:48, 4 November 2023

File Format
Name SeqBox
Ontology
Extension(s) .sbx, .seqbox
Reference Implementation http://mark0.net/soft-seqbox-e.html
Endianness Big_endian
Developed By Marco Pontello
Released 2017

SeqBox - Sequenced Box container

SeqBox - Sequenced Box container

SeqBox (Sequenced Box container; SBX) is a single file container/archive that can be reconstructed even after total loss of file system structures.

An SBX container is composed of a collection of blocks with size sub/equal to that of a sector, so they can survive any level of fragmentation. Each block has a minimal header that includes a unique file identifier, block sequence number, checksum, version. Additional non critical info/metadata are contained in block 0 (like name, file size, crypto-hash, other attributes, etc.).

If disaster strikes, recovery can be performed simply scanning a volume/image, reading sector sized slices and checking blocks signatures and then CRCs to detect valid SBX blocks. Then the blocks can be grouped by UIDs, sorted by sequence number, and reassembled to form the original SeqBox containers.

Does not work on encrypted filesystems or filesystems that don't have a multiple of 128-byte block size.

Striping/RAID instead is usually not a problem.

With password set, can be used for steganography (attach to another file and it won't be recognizable unless password is provided).

If multiple copies are stored, can automatically pull together all the good segments.

Adds < 3.5% to file size.

The format has been extended to Error-correcting SeqBox (EC-SeqBox) by Blockyarchive/blkar


[edit] Identification

A SeqBox files start with bytes 53 42 78, or "SBx" in ASCII.

[edit] Format description

[edit] Links

  • SeqBox, Marco Pontello's Home Page
  • osbx - OCaml implementation of SeqBox by darrenldl (Darren Li)
  • Blockyarchive/blkar - handles both SeqBox and EC-SeqBox in a more robust manner
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox