命令给我“bash:./fwupd:无法执行二进制文件”

命令给我“bash:./fwupd:无法执行二进制文件”

每当我发出命令

./fwupd /dev/sda 

我得到以下信息:

bash: ./fwupd: cannot execute binary file

我正在尝试使用 Ubuntu 11.04 LiveCD 更新我的 SSD 固件。

我如何才能成功发出命令?

答案1

看起来您正在获取文件,而不是运行它。

尝试使用完整路径执行它,例如

sudo /home/user/fwupd /dev/sda

答案2

我刚刚尝试了一些事情,看起来您正在尝试fwupd在 32 位 Live CD 上执行 64 位二进制文​​件。

从以下位置获取 .zip 文件(实际上是 tarball,真丢脸)http://www.ocztechnology.com/ssd_tools/并使用 提取它tar。例如,如果文件名为fwupd_v2.12.05.zip,则运行:

tar xf fwupd_v2.12.05.zip

然后跳转到包含 32 位fwupd二进制文​​件的目录并以超级用户权限运行它:

cd fwupd_v2.12.05/linux32
sudo ./fwupd /dev/sda

请注意,如果发生相反的情况(例如,您在没有兼容库的 64 位机器上运行 32 位二进制文​​件),则错误会有所不同:

bash: ./fwupd: No such file or directory

ia32-libs可以通过安装(对于 Ubuntu 11.04 Natty 及之前版本)或libc6:i386(对于 Ubuntu 11.10 Oneiric 及更高版本)来解决此问题。

最后,如果该文件不可执行,则错误将是:

bash: ./fwupd: Permission denied

通过使其可执行可以解决这个问题:

chmod +x fwupd

答案3

您是否更新了该文件的权限?应该chmod 0755 fwupd

答案4

我有一个名为“env”的文件并收到同样的错误:

. env
bash: .: /usr/bin/env: cannot execute binary file

事实证明,env 是某种保留名称,这会导致问题。将名称更改为更模糊的名称即可解决问题。

相关内容