GNU/Linux >> Linux の 問題 >  >> Linux

埋め込み initramfs を抽出する

gentoo wiki にこれに関する情報があります:https://wiki.gentoo.org/wiki/Custom_Initramfs#Salvaging

binwalk の使用を推奨します これは非常にうまく機能します。

例を挙げて簡単に説明します:

最初に 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 の 3 つのファイルができました。 、 47B4.xz951C38.xz

> file 47B4
47B4: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=aa47c6853b19e9242401db60d6ce12fe84814020, stripped

47B4 で再度 binwalk を実行してみましょう :

> 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 ([email protected]) (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 を使用していました。


私の知る限り、initramfs cpio アーカイブはカーネルにリンクされているだけです。

したがって、これはうまくいくはずです:

<オール>
  • dd を使用 c17fd8cc の間の範囲を抽出する と c19d7b90
  • CPIO アンパッカーを使用して、結果のデータ ny をアンパックします。

  • Linux
    1. 組み込みLinuxシステムを構築するための4つのツール

    2. 組み込みLinuxでリカバリパーティションを作成しますか?

    3. Isoを抽出する最速の方法は?

    1. PDFからグラフを抽出しますか?

    2. CentOS / RHEL 7 :initramfs イメージを抽出して編集/表示する方法

    3. ping -c から平均時間を抽出する

    1. CentOS / RHEL 6 :initramfs イメージを抽出して編集/表示する方法

    2. filename.tar.gz ファイルを抽出する方法

    3. Linux で .dmg ファイルを抽出するには?