将内置 intrfs 中的初始化脚本提取到 Linux bzImage 中

将内置 intrfs 中的初始化脚本提取到 Linux bzImage 中

我遇到了以下问题 - 我损坏了我的系统(Gentoo- 使用重建gcc 4.5) 无法修复。我卸载了 /home,复制了 /etc 和其他重要文件,并开始重新安装系统。

但是我忘了复制 init 脚本。它仍然存在于我拥有的内核映像中。如何提取它?请注意,initrd 不是单独的文件,而是在内核映像中。

答案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

是脚本的内容。

这不是完美的解决方案,但至少看起来有效。如果您知道“正确”的方法(对于二进制文件),请回答,简单(不编写长程序)-我不会将其标记为解决方案。

相关内容