[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

E.0.1 Old GNU Format

The format introduced in November 1990 (v. 1.09) was designed on top of standard ustar headers in such an unfortunate way that some of its fields overwrote fields required by POSIX.

An old GNU sparse header is designated by type ‘S’ (GNUTYPE_SPARSE) and has the following layout:

OffsetSizeNameData typeContents
0345N/ANot used.
34512atimeNumberatime of the file.
35712ctimeNumberctime of the file .
36912offsetNumberFor multivolume archives: the offset of the start of this volume.
3814N/ANot used.
3851N/ANot used.
38696spsparse_header(4 entries) File map.
4821isextendedBool1 if an extension sparse header follows, 0 otherwise.
48312realsizeNumberReal size of the file.

Each of sparse_header object at offset 386 describes a single data chunk. It has the following structure:

OffsetSizeData typeContents
012NumberOffset of the beginning of the chunk.
1212NumberSize of the chunk.

If the member contains more than four chunks, the isextended field of the header has the value 1 and the main header is followed by one or more extension headers. Each such header has the following structure:

OffsetSizeNameData typeContents
021spsparse_header(21 entries) File map.
5041isextendedBool1 if an extension sparse header follows, or 0 otherwise.

A header with isextended=0 ends the map.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated on August 23, 2023 using texi2html 5.0.