每当我发出命令
./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 是某种保留名称,这会导致问题。将名称更改为更模糊的名称即可解决问题。