“cp”命令之后,“rebo​​ot”命令无法正常工作,“mv”命令也表现得很奇怪

“cp”命令之后,“rebo​​ot”命令无法正常工作,“mv”命令也表现得很奇怪

我已经编译了在 ARM 上以二进制文件形式运行的 C 代码。ARM 使用通过Imagebuildroot 生成的旧文件从 SD 卡启动 Linux。在 C 代码中,我调用一个 shell 脚本,将Image我想要启动的新文件从 SD 卡上的子目录移动到 SD 卡的顶层(覆盖旧的Image),然后使用备份再次Image.bak恢复Image子目录中的,以防我再次运行脚本:

#!/bin/sh
mv /sd/newImage/Image /sd/
mv /sd/newImage/Image.bak /sd/newImage/Image
reboot

在这种情况下工作reboot正常(Putty 断开连接 -> 我使用的电路板上的 LED 变为红色然后变为绿色 -> 我可以通过 Putty 重新连接),但第二个mv命令没有 - 它删除了Image.bak但没有创建Image- 但这不是这篇文章的目的,真的。

当我尝试修改脚本以便确实使用命令Image.bak恢复时,它无法正常工作。Imagecpreboot

#!/bin/sh
mv /sd/newImage/Image /sd/
cp /sd/newImage/Image.bak /sd/newImage/Image
reboot

发生的情况是,我使用的 Putty 终端断开了连接,但电路板上的 LED 在发出重新启动信号时会变红,但一直保持绿色,而通过 Putty 重新建立连接的唯一方法是通过电源开关手动关闭电路板的电源。因此,当我在 shell 脚本中调用命令时,似乎发生了一些奇怪的事情。我之前cp尝试过umount /sd并使用过,认为可能是同步问题,但也没有用。syncreboot

我以 root 身份登录,并且权限不应该成为任何问题。

相关内容