1composefs-dump(5) User Commands composefs-dump(5)
2
3
4
6 composefs-dump - textual file format for composefs content
7
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
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
99 composefs-info(1), mkcomposefs(1)
100
101 composefs upstream (https://github.com/containers/composefs)
102
103
104
105composefs composefs-dump(5)