0

我正在尝试解压缩从嵌入式系统获得的 initramfs 映像,但出现错误,例如cpio: premature end of archive使用任何实用程序解压缩文件时。我将在下面粘贴文件签名和我尝试过的一些东西:

$ file initramfs
initramfs: u-boot legacy uImage, OE and Crypt, Linux/ARM, RAMDisk Image (gzip), 6722916 bytes, Wed Jun 19 11:31:12 2019, Load Address: 0x00000000, Entry Point: 0x00000000, Header CRC: 0x9D0680ED, Data CRC: 0x2A1021B1
$ lsinitramfs initramfs
cpio: premature end of archive
$ zcat initramfs | cpio -idmv

gzip: initramfs: not in gzip format
cpio: premature end of archive
$ xz -dc < initramfs | cpio -idmv
xz: (stdin): File format not recognized
cpio: premature end of archive

编辑:我忘了提到我已经在 ARM 上尝试了所有这些命令,结果完全相同。

4

1 回答 1

1

如本文所示,您可以使用以下命令解压缩 uImage 文件:

tail -c+65 < initramfs | gunzip > unpacked_initramfs

结果unpacked_initramfs文件应该有这样的签名:

$ file unpacked_initramfs
unpacked_initramfs: ASCII cpio archive (SVR4 with no CRC)

然后您可以在该文件上运行您需要的任何命令(例如:)lsinitramfs unpacked_initramfs

于 2020-02-19T19:01:34.657 回答