SeqBox
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
Identification
A SeqBox files start with bytes 53 42 78
, or "SBx
" in ASCII.
Format description
- SeqBox GitHub repository
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