Exec format error 错误

背景

今天在调试20#设备时,无意中发现“reset”命令会出现“Segment Fault”错误。

使用“which reset”命令,发现此文件位于“/usr/bin/”下。​

原本以为只是个普通的脚本,在没有仔细查看背景的情况下,就贸然使用了“nc”命令下载另一台设备上的“reset”到20#设备。却突然发现,在执行绝大多数命令时,都会出现“Exec format error”错误。

经过与另一台正常设备的比对,发现,其实这个“reset”就是指向了“busybox”。​

而使用“nc”命令覆盖时,文件无法正常传输导致的异常!​

现象​

在执行“ls”、“which”、“nc”等命令时,会出现类似“-ash: ls: Exec format error”错误。

经过最终确认,有两条命令没有受到影响,一条是“wget”,另一条是“opkg”。

也幸亏没有着急重启设备,由于“ssh”连接还保持着,所以IP设置没有受到影响。

经过一番​论证,可以使用“wget”下载包,使用“opkg”将“busybox”重新安装应该就能解决!

行动

  1. 去OpenWrt​官网下载“busybox”包,这里需要注意选择合适的版本;

  2. 将下载的包放置到“http”服务根目录下;

  3. 使用未受影响的“wget”​命令,将“busybox”包下载到“/tmp”文件夹下;

  4. 使用未受影响的“opkg”命令,将“busybox”包重新安装。

qige@ubuntu:~$ wget https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/base/busybox_1.24.2-1_ar71xx.ipk
qige@ubuntu:~$ mv busybox​_1.24.2-1_ar71xx.ipk /var/www/html/
root@openwrt:~# wget http://192.168.1.3/busybox_1.24.2-1_ar71xx.ipk​
root@openwrt:~# opkg install busybox_1.24.2-1_ar71xx.ipk​

修复完成!

results matching ""

    No results matching ""