Извлечение сценария с bult-в intrfs в bzImage в Linux

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

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

28
задан quack quixote
17.12.2022 1:57 Количество просмотров материала 3487
Распечатать страницу

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
отвечен Maciej Piechotka 2022-12-18 09:45

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх