1composefs-dump(5)                User Commands               composefs-dump(5)
2
3
4

NAME

6       composefs-dump - textual file format for composefs content
7

DESCRIPTION

9       Both  the  composefs-info  and  the  mkcompose commands support genera‐
10       tion/consumptions of a textual descriptions of the contents of  a  com‐
11       posefs  image.   This  can be used to inspect or modify an image, or to
12       generate an image without having to have a  local  directory  with  the
13       files in it.
14
15       The file format is very simple, with one file per line, first with a 11
16       fixed fields, followed by a variable number of extended attributes  for
17       the file.
18
19       Fields  are separated by a single space, and lines by a single newline.
20       Extended attributes further use `=' to separate key from value.  There‐
21       fore  all these characters, as well as non-printable characters are es‐
22       caped in the fields (`=' only in  xattr  fields).   Also,  back-slashes
23       have to be escaped as they are used as the escape mechanism.
24
25       Escapes  are of the form which escapes a single byte using two hex dig‐
26       its.  For example is the zero byte and is the  255  byte.   Optionally,
27       these custom escapes are suppored:
28
29       \\     backslash.
30
31       \n     newline.
32
33       \r     carriage return.
34
35       \t     tab
36
37       \=     equal
38
39       Optional  fields  tha  are not set contain `-', and if a field actually
40       has that particular value it is escaped.
41
42       The fixed fields on a line are (all numbers in base 10 unless otherwise
43       specified):
44
45       PATH   The  full, absolute path of the file in the image.  Any directo‐
46              ries used as prefix in the path must have been in the  file  be‐
47              fore this line.
48
49       SIZE   The size of the file.  This is ignored for directories.
50
51       MODE   The  st_mode  stat  field the file in octal, which includes both
52              the permissions and the file type.
53
54              Additionally, if the file is a hardlink, then  this  field  will
55              start  with a single `@' character, and the payload field points
56              to the target file.  Note that all other  fields  are  typically
57              filled out for a hardlink as the target, but for generation of a
58              new file we ignore all the fields except the payload.
59
60       NLINK  The st_nlink stat field.
61
62       UID    The owner uid.
63
64       GID    The owner gid.
65
66       RDEV   The st_rdev stat field.
67
68       MTIME  The modification time in seconds and nanoseconds since the  unix
69              epoch,  separated by `.'.  Note this is not a float, “1.1” means
70              one second and one nanosecond.
71
72       PAYLOAD
73              The payload of the file.  For symbolic links this means the sym‐
74              link  targets.   For regular files this is the relative pathname
75              for the backing files.  For hardlinks (see MODE),  this  is  the
76              path of another file in this file that this is a hardlink of.
77
78       CONTENT
79              Small  files  can inline the actual content in the composefs im‐
80              age.  This contains an escaped version  of  the  content.   This
81              must match the size specified in SIZE
82
83       DIGEST A  fs-verity  digest  for the file (only used for regular files,
84              and not if CONTENT is set) that will be validated against  back‐
85              ing files when used.
86
87       After the fixed fields comes the xattrs, escaped and space-separated in
88       the form KEY=VALUE.  Note that `=' must be escaped in KEY.
89

EXAMPLE

91              / 4096 40755 4 1000 1000 0 1695372970.944925700 - - - security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00
92              /a\x20dir\x20w\x20space 27 40755 2 1000 1000 0 1694598852.869646118 - - - security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00
93              /a-dir 45 40755 2 1000 1000 0 1674041780.601887980 - - - security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00
94              /a-dir/a-file 259 100644 1 1000 1000 0 1695368732.385062094 35/d02f81325122d77ec1d11baba655bc9bf8a891ab26119a41c50fa03ddfb408 - 35d02f81325122d77ec1d11baba655bc9bf8a891ab26119a41c50fa03ddfb408 security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00
95              /a-hardlink 259 @100644 1 1000 1000 0 1695368732.385062094 /a-dir/a-file - 35d02f81325122d77ec1d11baba655bc9bf8a891ab26119a41c50fa03ddfb408 security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00
96              /inline.txt 10 100644 1 1000 1000 0 1697019909.446146440 - some-text\n - security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00
97

SEE ALSO

99       composefs-info(1), mkcomposefs(1)
100
101       composefs upstream (https://github.com/containers/composefs)
102
103
104
105composefs                                                    composefs-dump(5)
Impressum