tar: Old GNU Format
1
1 Old GNU Format
1 --------------
1
1 The format introduced in November 1990 (v. 1.09) was designed on top of
1 standard 'ustar' headers in such an unfortunate way that some of its
1 fields overwrote fields required by POSIX.
1
1 An old GNU sparse header is designated by type 'S' ('GNUTYPE_SPARSE')
1 and has the following layout:
1
1 Offset Size Name Data type Contents
1 ----------------------------------------------------------------------------
1 0 345 N/A Not used.
1 345 12 atime Number 'atime' of the file.
1 357 12 ctime Number 'ctime' of the file .
1 369 12 offset Number For multivolume archives:
1 the offset of the start of
1 this volume.
1 381 4 N/A Not used.
1 385 1 N/A Not used.
1 386 96 sp 'sparse_header'(4 entries) File map.
1 482 1 isextended Bool '1' if an extension sparse
1 header follows, '0'
1 otherwise.
1 483 12 realsize Number Real size of the file.
1
1 Each of 'sparse_header' object at offset 386 describes a single data
1 chunk. It has the following structure:
1
1 Offset Size Data type Contents
1 ---------------------------------------------------------------------------
1 0 12 Number Offset of the beginning of the chunk.
1 12 12 Number Size of the chunk.
1
1 If the member contains more than four chunks, the 'isextended' field
1 of the header has the value '1' and the main header is followed by one
1 or more "extension headers". Each such header has the following
1 structure:
1
1 Offset Size Name Data type Contents
1 ----------------------------------------------------------------------------
1 0 21 sp 'sparse_header'(21 entries) File map.
1 504 1 isextended Bool '1' if an extension sparse
1 header follows, or '0'
1 otherwise.
1
1 A header with 'isextended=0' ends the map.
1