/init找不到/bin/mount,但是找到/可以吗?

/init找不到/bin/mount,但是找到/可以吗?

我在启动我的 Linux 机器时遇到了麻烦。

在启动阶段,运行/init脚本时它会抱怨无法找到mount.我的PATH变量设置为/sbin/bin

我尝试/bin/mount直接拨打电话,也失败了,说不存在。

然后我包含了find .,它被发现并表明它/bin/mount实际上是可以访问的。

我不知道该怎么办。我读到,这initramfs基本上是一个busybox外壳,那么问题可能出在那里吗?

更新

这似乎mount是唯一没有找到的命令/文件。我sh在启动过程中启动了;它选项卡完成了安装并通过 找到了它find

然而,当我尝试执行它时,我收到了相同的“未找到”错误消息,如下所示。

更新2

mount我通过将my 中/init的每个实例替换为 暂时解决了该问题/bin/busybox mount。它就是这样工作的。

暂停虚拟机

答案1

您已在 DOS (windows) 模式下保存脚本,这意味着每行末尾都有一个无关的返回字符。

解决这个问题的最简单方法可能是加载文件vim,使用更改模式:set notx,然后保存文件,例如:wq

答案2

这可能/bin/mount是一个损坏的符号链接。它可以通过 找到find .,因为它显示了所有目录条目,但如果您尝试运行该程序,它将无法工作,因为彩虹末端没有文件。 BusyBox 小程序名称通常是指向 BusyBox 可执行文件的链接:mount -> busyboxmount -> /bin/busybox(如果busybox在 中/bin)。

另一种可能性是mount二进制文件是来自您的实时系统的二进制文件。该二进制文件是一个使用动态加载器的动态链接库,它可能不存在于 initramfs 中。看在 64 位系统上运行 32 位二进制文​​件时收到“未找到”消息对类似案例的解释。

相关内容