Gentoo wiki में इसके बारे में कुछ जानकारी है: https://wiki.gentoo.org/wiki/Custom_Initramfs#Salvaging
यह अनुशंसा binwalk
करता है कि किसके उपयोग से बहुत अच्छा काम होता है।
मैं एक उदाहरण के साथ एक त्वरित चलना दूंगा:
पहले बिनवॉक के साथ bzImage फ़ाइल निकालें:
> binwalk --extract bzImage
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Microsoft executable, portable (PE)
18356 0x47B4 xz compressed data
9772088 0x951C38 xz compressed data
मैं तीन फाइलों के साथ समाप्त हो गया: 47B4
, 47B4.xz
और951C38.xz
> file 47B4
47B4: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=aa47c6853b19e9242401db60d6ce12fe84814020, stripped
अब बिनवॉक को फिर से चलाने दें 47B4
:
> binwalk --extract 47B4
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 ELF, 64-bit LSB executable, AMD x86-64, version 1 (SYSV)
9818304 0x95D0C0 Linux kernel version "4.4.6-gentoo (root@host) (gcc version 4.9.3 (Gentoo Hardened 4.9.3 p1.5, pie-0.6.4) ) #1 SMP Tue Apr 12 14:55:10 CEST 2016"
9977288 0x983DC8 gzip compressed data, maximum compression, from Unix, NULL date (1970-01-01 00:00:00)
<snip>
यह पाया पथ और कई संभावित दिलचस्प फ़ाइलों की लंबी सूची के साथ वापस आ गया। चलो देखते हैं।
> file _47B4.extracted/*
<snip>
_47B4.extracted/E9B348: ASCII cpio archive (SVR4 with no CRC)
फ़ाइल E9B348
एक (पहले से ही विघटित) cpio संग्रह है, बस हम जो खोज रहे हैं! बिंगो!
अपने वर्तमान निर्देशिका में असम्पीडित cpio संग्रह (अपने initramfs!) को अनपैक करने के लिए बस चलाएँ
> cpio -i < E9B348
यह लगभग बहुत आसान था। binwalk
बिल्कुल वह उपकरण है जिसकी आपको तलाश है। संदर्भ के लिए, मैं यहाँ v2.1.1 का उपयोग कर रहा था।