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