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

每当我发出命令

./fwupd /dev/sda 

我得到以下内容:

 bash: ./fwupd: cannot execute binary file 

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

如何成功发出命令?

看起来你正在寻找文件,而不是运行它。

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

 sudo /home/user/fwupd /dev/sda 

我刚试了一些东西,看起来你正试图在32位Live CD上执行64位fwupd二进制文件。

从http://www.ocztechnology.com/ssd_tools/获取.zip文件(实际上是一个tarball,对它们感到羞耻)并使用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 

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

我有一个名为’env’的文件并且得到了同样的错误:

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

原来,env是某种保留名称,这引起了问题。 将名称更改为更加模糊的东西解决了它。