Estrarre lo script init da intrfs bult-in in Linux bzImage


4

Ho il seguente problema - ho danneggiato il mio sistema ( Gentoo - ricostruendo usando gcc 4.5 ) irreparabilmente . Ho smontato / home, copiato / etc + altri file importanti e ho iniziato a reinstallare il sistema.

Tuttavia ho dimenticato di copiare lo script di init. È ancora presente nell'immagine del kernel che ho. Come estrarlo? Si noti che initrd non è un file separato ma è nell'immagine del kernel.


Sarei grato di elencare anche i contenuti. Comunque suppongo che sarà un effetto collaterale di ottenere l'archivio cpio.
Maciej Piechotka,

Ho trovato cs.caltech.edu/~weixl/research/fast-mon/scripts/… ma non riesco ancora a ottenere il cpio da esso.
Maciej Piechotka,

Risposte:


1

Dopo aver disimballato da:

HDR=`binoffset bzImage 0x1f 0x8b 0x08 0x0`
dd if=bzImage bs=1 skip=$HDR | zcat - > kernel.unpack

(binoffset.c è nelle fonti di Linux).

strings kernel.unpack | grep 070701

Fornisce l'elenco dell'archivio. Subito dopo la voce per / init in

strings kernel.unpack | less

È il contenuto della sceneggiatura.

Non è una soluzione perfetta ma almeno sembra funzionare. Per favore rispondi se conosci il modo 'corretto' (per i binari) facile (non sto scrivendo un programma lungo) - Non lo segnerò come soluzione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.