我在启动我的 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 -> busybox
或mount -> /bin/busybox
(如果busybox
在 中/bin
)。
另一种可能性是mount
二进制文件是来自您的实时系统的二进制文件。该二进制文件是一个使用动态加载器的动态链接库,它可能不存在于 initramfs 中。看在 64 位系统上运行 32 位二进制文件时收到“未找到”消息对类似案例的解释。