Skip to content

CPIO to XZ Converter

FileFlip converts CPIO to XZ entirely inside your browser, using libarchive compiled to WebAssembly. The file is never uploaded to a server: it is read off your disk, converted on your own machine, and saved back by the browser. That means no file-size limit, no queue and no account.

Convert CPIO to

How do I convert a CPIO file to XZ?#

  1. Drop your CPIO file onto the converter at the top of this page, or click it to pick one from your computer. You can add as many as you like.
  2. Leave the target set to XZ and the conversion starts on its own. FileFlip downloads 1.0 MB of WebAssembly the first time and nothing after that, then runs libarchive on your own machine.
  3. Save the XZ file. Your browser writes it straight to your downloads folder, because there was never a server holding it.

Does converting CPIO to XZ lose quality?#

No. Converting CPIO to XZ does not touch the files inside the archive. Each member is read out and written back byte for byte, so only the wrapper around them changes and nothing is recompressed.

Is it safe to convert CPIO files online?#

Yes, because nothing is uploaded. FileFlip converts CPIO files inside the browser tab you already have open, using WebAssembly builds of the same engines a desktop converter would install. Your file is read from your own disk into the page's memory, and no request carrying it is ever made.

You do not have to take that on trust. Open your browser's network panel, run a conversion, and you will see the engine come down and your file go nowhere. There is no upload, no server-side copy, no retention window, and no account tied to what you converted.

How FileFlip works lists every engine, its version and its download size, and shows how to check for yourself that nothing leaves your machine.

What CPIO to XZ actually does to the file#

Converting CPIO to XZ runs on libarchive, downloads 1.0 MB of WebAssembly the first time and nothing after that, copies the archived files through unchanged, keeps file contents.

Enginelibarchive
Conversion path2 steps: CPIO → the unpacked files → XZ
Downloaded to your browser1.0 MB, once, then cached by your browser
QualityLossless, contents copied unchanged
You get backOne file
Where it runsIn a background worker, so the page stays responsive

What survives the conversion

What is in the fileThis conversionWhy
File contentsKeptCarried through into the converted file.
File timestampsSometimesSurvives for some files and not others.
File permissionsSometimesSurvives for some files and not others.

Worth knowing before you start:

  • the output is a PAX tar archive inside the compressor, not a single compressed stream
  • every entry is extracted into memory before anything is written, so a very large archive can exhaust it

What is a CPIO file?#

A CPIO file is a Unix archive produced by the cpio utility, storing a sequence of files with their Unix permissions and ownership one after another with no compression of its own.

Use cpio when building or inspecting an initramfs image or an RPM payload, since both specifically expect a cpio archive rather than tar.

Convert a CPIO archive to tar when the files need to go somewhere that expects the more common format, since tar is understood by nearly every archive tool.

What is an XZ file?#

An XZ file is a single stream compressed with LZMA2 inside a container that adds framing, size fields and a CRC or SHA-256 integrity check, specified by the Tukaani project's xz format starting in 2009.

Use XZ when the smallest practical archive size matters more than how long compression takes, which is why Linux distributions compress their packages and kernel source with it.

Convert XZ to GZ when the archive needs to decompress on something old or constrained enough that gzip's lighter decoder matters.

CPIO to XZ questions people ask#

What is a CPIO file used for today?

A CPIO file is a Unix archive most commonly found in two places today: the initramfs image the Linux kernel unpacks early in boot, and the payload of an RPM package. Outside those two roles it has mostly been replaced by tar.

Why does an initramfs use cpio instead of tar?

Linux's kernel unpacks the initramfs cpio archive itself before any userspace tools are available, and cpio's simpler, more compact header format was easier to support directly in the kernel than tar's. The specific variant used is called newc, an ASCII-header cpio format.

How do I get the files out of an RPM package's cpio payload?

An RPM file's payload is a compressed cpio archive sitting after the package's header, and the standard way to reach it is to pipe rpm2cpio through cpio -idmv, which extracts the files without installing the package.

Why do Linux distributions use .xz for packages?

xz compresses tighter than gzip or bzip2 on most data while still decompressing quickly, which matters because package managers decompress far more often than they compress. That ratio-versus-decompression-speed balance is why Debian, Fedora and the Linux kernel have shipped source and package archives as .xz for years.