次の問題があります-システムを損傷しました( Gentoogcc 4.5 を使用して再構築することにより)修復できません。/homeをアンマウントし、/ etc +その他の重要なファイルをコピーして、システムの再インストールを開始しました。
しかし、initスクリプトをコピーするのを忘れました。それは私が持っているカーネルイメージにまだ存在しています。それを抽出する方法は? initrdは個別のファイルではなく、カーネルイメージにあることに注意してください。
開梱後:
HDR=`binoffset bzImage 0x1f 0x8b 0x08 0x0`
dd if=bzImage bs=1 skip=$HDR | zcat - > kernel.unpack
(binoffset.cはLinuxのソースにあります)。
strings kernel.unpack | grep 070701
アーカイブのリストを提供します。/initのエントリの直後
strings kernel.unpack | less
スクリプトの内容です。
これは完璧な解決策ではありませんが、少なくともうまくいくようです。 (バイナリの)簡単な(長いプログラムを書かない)「正しい」方法を知っているなら答えてください-私はそれを解決策としてマークしていません。