"cpio: преждевременный конец архива" при использовании lsinitramfs

Я пытаюсь распаковать образ 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 с точно такими же результатами.

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).

Другие вопросы по тегам