Re: [PATCH v2 01/15] Documentation: add newcx initramfs format description

From: Victor Kamensky
Date: Fri Jan 26 2018 - 11:01:03 EST




On Fri, 26 Jan 2018, Henrique de Moraes Holschuh wrote:

On Thu, 25 Jan 2018, Rob Landley wrote:
That said, I don't think -h newcx should emit (or recognize) the
"TRAILER!!!1!" entry. That's kinda silly in-band signaling for 2018:
files have a length, pipes provide EOF, and each cpiox entry starts with
6 bytes of c_magic anyway.

My understanding that TRAILER is really used on tape devices,
there is no notion of file end in this case, it is just a stream of bytes
from char device.

Thanks,
Victor

(I stopped toybox from producing the TRAILER
entry back in june, toybox commit 32550751997d, and the kernel consumes
the resulting cpio just fine. All the trailer does is prevent you from
concatenating cpio files, which is a feature multiple people asked me for.)

Not in the kernel. What TRAILER does in the kernel is to act as a
barrier for the hardlink creation state, which IS a good thing. You
could just specify it as such for "newcx".

The kernel will continue reading for more entries after TRAILER, so
concatenation is not broken by TRAILER. It is also insensitive to
NUL-padding length (as long as it is 4-byte aligned), which is another
nice feature you could specify for "newcx".

Also, the kernel does something nothing in userspace ever tried to,
AFAIK: it detects compression signatures along with the CPIO header
signatures, and thus it can take several compressed and uncompressed
archives concatenater together (and the compressor doesn't need to be
the same, either).
--
Henrique Holschuh