
jor1k は vmlinux.bin に付属しています。。私はそれがどこにあるのかわからないので、そこにinitrdがあると思います。変更できるようにファイルシステムイメージを抽出しようとしていますが、方法がわかりません。
Linuxソースディストリビューションでextract-vmlinuxを試してみましたがCannot find vmlinux
。
答え1
cpio newcヘッダー(で始まる)を見つけることができます0707010
。
$ grep -abo 0707010 vmlinux.bin | head -n1
2531404:0707010
-a
(allファイルの場合はバイナリファイルも含む)、(yteオフセット-b
の場合b)、および-o
(o一致部分のみ(一致部分を含む行ではなく一致部分のバイトオフセットを報告))は非標準GNU拡張ですが、grep
便利に使用できます。ファイル内の与えられた文字列の場所を知っています(他の多くの実装とは異なり、GNUはテキスト以外のgrep
ファイルgrep
(つまり、2つのファイルの間にランダムに長いバイトシーケンスを持つことができる0バイト値を含むことができるファイル) LF文字には、LF文字で終わることができないか、現在のロケールで有効な文字を構成しないバイトまたはバイトシーケンスを含めることができます。これはこれに関連する要件です。
$ tail -c +2531405 vmlinux.bin| cpio -t | head
bin
bin/sleep
bin/kill
bin/watch
bin/deluser
bin/getopt
bin/uname
bin/nice
bin/zcat
bin/cpio
(grep -b
オフセットは0から始まり、tail -c
オフセットは1から始まります)。
答え2
最初のステップはですfile vmlinux.bin
。
申し訳ありません。 "vmlinux.bin:data" は通常、これに対して多くの意味を持ちます。ファイルが認識されない場合、file
標準ユーティリティは助けることができません。
しかし、ダウンロードページを見ると、これはLinuxカーネルのOpenRISC 1000バージョンのようです。したがって、file
それを認識しないことは完全に意味があります。
OpenRISC 1000についてはわかりませんが、この特別なケースではinitrdは必要ないようです。