如何在/未挂载时强制执行脚本?

如何在/未挂载时强制执行脚本?

我已经把一个 Linux 嵌入式设备变砖了。

我对此进行了实验,并将自己的路径添加到/etc/ld.so.conflibc路径中包含的 I 与此特定设备不兼容,因此我失去了对它的 ssh 访问权限,当然它也无法再启动。

我可以进入某种下载模式,在该模式下我可以将引导加载程序、内核、dtb 和 initramfs 加载到内存中。然后我可以告诉处理器跳转到内存中的某个地址,并启动系统。

这并不能解决问题,因为一旦root从 initramfs 切换到设备的闪存,就会使用错误的库,设备就会停止工作。

我的计划是向 initramfs 添加一个自定义脚本,用于安装闪存、擦除/etc/ld.so.conf/etc/ld.so.cache.我不在乎设备是否无法启动,一旦文件被清空并且设备重新启动,它就应该回退到使用标准库。然后我可以通过 ssh 连接并清理混乱。

我无法理解应该在 initramfs 中的何处注入修复程序,所以问题是:

我应该在哪里插入几行 bash 以便它们在启动时、/安装之前执行?

答案1

/init将 shell 脚本代码添加到映像中的文件中initramfs

不要使用太花哨的东西——/bin/sh不会bash,但很可能会busybox

What is initramfs?阅读以in开头的部分文档。

相关内容