Извлечение init сценарий от bult-в intrfs в Linux bzImage

У меня есть следующая проблема - я повредил свою систему (хинду - путем восстановления использования gcc 4.5) вне восстановления. Я размонтировал / домой, скопировал / и т.д. + другие важные файлы, и я начал переустанавливать систему.

Однако я забыл копировать init сценарий. Это все еще присутствует в изображении ядра, которое я имею. Как извлечь его? Обратите внимание на то, что initrd не является отдельным файлом, но находится в изображении ядра.

4
задан 19.04.2010, 17:36

1 ответ

После распаковки:

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

Содержание сценария.

Это не идеальное решение, но по крайней мере это, кажется, работает. Ответьте, знаете ли Вы 'корректный' путь (для двоичных файлов) легкий (не запись длинной программы) - я не отмечаю его как решение.

1
ответ дан 07.12.2019, 21:46

Теги

Похожие вопросы