我有一个 Debian rootfs 作为 tar 文件。我想将其指定为 Kconfig 中的 initramfs 源(使用 PetaLinux),但源必须是 cpio 存档。
如何将 .tar 转换为 .cpio,并保持其结构、权限等?
答案1
答案2
由于没有程序能够以可靠的方式提供这种转换(bsdtar
包含硬链接的错误处理存档),因此您需要使用以下命令解压 tar 存档:
tar xpf archive.tar
以 root 身份运行,然后从提取的目录树中创建 cpio 存档。
您可以通过在 a 中执行解包/重新打包工作来避免对 root 权限的需要假根会话,例如:
fakeroot sh -c "cd '$ROOTFS' &&
tar -xf input.tar.gz &&
find . | cpio -o -H newc" > output.cpio