top: cannot find/execute "top" in ISA subdirectories

本文记录了在Solaris系统中遇到top命令无法执行的问题及其解决过程。通过重新安装top命令并调整安装路径,最终成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

top: cannot find/execute "top" in ISA subdirectories

之前系统里使用top是正常的,今天发现执行top报下面的错误:

top: cannot find/execute "top" in ISA subdirectories

 
root@rac1 #which  top
/usr/bin/top
root@rac1 #
root@rac1 #ls  -al  /usr/bin/top
-rwxr-xr-x   1 root     bin        10044 May 28  2007 /usr/bin/top
root@rac1 #
root@rac1 #  isalist
sparcv9+vis2 sparcv9+vis sparcv9 sparcv8plus+vis2 sparcv8plus+vis sparcv8plus sparcv8 sparcv8-fsmuld sparcv7 sparc
root@rac1 # /usr/local/bin/top
/usr/local/bin/top: cannot find/execute "top" in ISA subdirectories
root@rac1 #
决定重新安装下top。

root@rac1 # gunzip  top-3.6.1-sol10-sparc-local.gz
root@rac1 #ls
top-3.6.1-sol10-sparc-local
root@rac1 #chmod  755  top-3.6.1-sol10-sparc-local
root@rac1 # ls
top-3.6.1-sol10-sparc-local
root@rac1 #ls  -al
total 656
drwxr-xr-x   2 root     root         201 Jul  9 16:47 .
drwxrwxrwt  12 root     sys        78818 Jul  9 16:47 ..
-rwxr-xr-x   1 root     root      242688 Jul  9 16:47 top-3.6.1-sol10-sparc-local
root@rac1 #pkgtrans  top-3.6.1-sol10-sparc-local  .  

The following packages are available:
  1  SMCtop     top
                (sparc) 3.6.1

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:
Transferring <SMCtop> package instance
root@rac1 #
root@rac1 # pkgadd  -d  ./

The following packages are available:
  1  SMCtop     top
                (sparc) 3.6.1

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:

Processing package instance <SMCtop> from </tmp/pack>

top(sparc) 3.6.1
LeFebvre et al

This appears to be an attempt to install the same architecture and
version of a package which is already installed.  This installation
will attempt to overwrite this package.

Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
   11 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.

The following files are already installed on the system and are being
used by another package:
  /usr/local/bin

Do you want to install these conflicting files [y,n,?,q] y
## Checking for setuid/setgid programs.

Installing top as <SMCtop>

## Installing part 1 of 1.
/usr/local/bin/sparcv7/top
/usr/local/bin/sparcv9/top
/usr/local/bin/top <attribute change only>
[ verifying class <none> ]
ERROR: attribute verification of </usr/local/bin/top> failed
    pathname does not exist

Installation of <SMCtop> partially failed.

root@rac1 # which  top
/usr/bin/top
root@rac1 # top
top: cannot find/execute "top" in ISA subdirectories
root@rac1 # cd  /usr/local/bin/
root@rac1 #  ls  -al
total 8
drwxr-xr-x   4 bin      bin          512 Jul  9 16:48 .
drwxr-xr-x   9 root     root         512 Jul  9 16:48 ..
drwxr-xr-x   2 bin      bin          512 Jul  9 16:48 sparcv7
drwxr-xr-x   2 bin      bin          512 Jul  9 16:48 sparcv9
root@rac1 #
root@rac1 # /usr/bin/top
/usr/bin/top: cannot find/execute "top" in ISA subdirectories
root@rac1 #
root@rac1 # ls
sparcv7  sparcv9 
root@rac1 # ls  -al  sparcv7/
total 126
drwxr-xr-x   2 bin      bin          512 Jul  9 16:48 .
drwxr-xr-x   4 bin      bin          512 Jul  9 16:50 ..
-rwxr-xr-x   1 bin      bin        61900 May 28  2007 top
root@rac1 #  ls
sparcv7  sparcv9
root@rac1 #./sparcv7/top

load averages:  9.48,  8.86,  7.92;                    up 6+19:21:24                     16:51:26
235 processes: 222 sleeping, 1 stopped, 12 on cpu
CPU states: 84.0% idle, 15.6% user,  0.5% kernel,  0.0% iowait,  0.0% swap
Memory: 64G phys mem, 28G free mem, 127G total swap, 127G free swap

   PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
  1088 ora11      2  10    0    0K    0K cpu/26  51:28  1.56% oracle
  1679 ora11      2  10    0    0K    0K cpu/9   20:13  1.54% oracle
  1668 ora11      2  10    0    0K    0K cpu/7   17:52  1.54% oracle
  1704 ora11      2   0    0    0K    0K cpu/23  24:21  1.53% oracle
  1712 ora11      2   0    0    0K    0K cpu/25  23:35  1.52% oracle
  1638 ora11      2  10    0    0K    0K cpu/30  18:07  1.48% oracle
  1714 ora11      1  10    0    0K    0K cpu/50  33:27  1.44% oracle
 22868 ora11      2  10    0    0K    0K cpu/2   15:57  1.24% oracle
  1784 ora11      2  10    0    0K    0K cpu/54  16:00  1.16% oracle
  1710 ora11      2   0    0    0K    0K cpu/21  19:43  1.14% oracle
  1663 ora11      2  30    0    0K    0K sleep   10:33  0.82% oracle
  2019 ora11      2  44    0    0K    0K cpu/53  14:00  0.32% oracle
  1632 ora11      2  44    0    0K    0K sleep   20:04  0.15% oracle
  1151 ora11      2  54    0    0K    0K sleep   10:12  0.07% oracle
  1665 ora11      2  54    0    0K    0K sleep   11:33  0.05% oracle


root@rac1 #
root@rac1 # pwd
/usr/local/bin
root@rac1 #cp  sparcv7/top  .
root@rac1 #top
top: cannot find/execute "top" in ISA subdirectories
root@rac1 #  ./sparcv9/top

last pid:  5181;  load avg:  9.59,  8.95,  7.98;       up 6+19:21:55                     16:51:57
237 processes: 226 sleeping, 1 stopped, 10 on cpu
CPU states: 86.3% idle, 13.2% user,  0.5% kernel,  0.0% iowait,  0.0% swap
Memory: 64G phys mem, 28G free mem, 127G total swap, 127G free swap

   PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
  1712 ora11      2  10    0   29G   29G cpu/25  24:05  1.53% oracle
  1704 ora11      2  10    0   29G   29G cpu/30  24:51  1.50% oracle
  1668 ora11      2  10    0   29G   29G cpu/2   18:21  1.50% oracle
  1679 ora11      2  10    0   29G   29G cpu/17  20:44  1.47% oracle
  1638 ora11      2  10    0   29G   29G cpu/23  18:34  1.43% oracle
  1088 ora11      2  20    0   29G   29G cpu/26  51:57  1.25% oracle
  1784 ora11      2  30    0   29G   29G cpu/39  16:20  1.14% oracle
  1714 ora11      1  20    0   29G   29G cpu/48  33:54  0.93% oracle
  2019 ora11      2   4    0   29G   29G cpu/53  14:10  0.78% oracle
  1663 ora11      2  21    0   29G   29G sleep   10:50  0.66% oracle
  1710 ora11      2  42    0   29G   29G sleep   20:01  0.46% oracle
 22868 ora11      2  52    0   29G   29G sleep   16:09  0.23% oracle
  1632 ora11      2  53    0   29G   29G sleep   20:09  0.16% oracle
  1151 ora11      2  55    0   29G   29G sleep   10:14  0.09% oracle
  7162 ora11      1  59    0   29G   29G sleep    5:47  0.06% oracle

 
root@rac1 #
root@rac1 # ls
sparcv7  sparcv9  top
root@rac1 #
root@rac1 #pwd
/usr/local/bin
root@rac1 # ./top

load averages:  9.53,  8.95,  7.99;                    up 6+19:22:06                     16:52:08
237 processes: 225 sleeping, 1 stopped, 11 on cpu
CPU states: 84.4% idle, 15.1% user,  0.5% kernel,  0.0% iowait,  0.0% swap
Memory: 64G phys mem, 28G free mem, 127G total swap, 127G free swap

   PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
  1704 ora11      2   0    0    0K    0K cpu/2   25:01  1.55% oracle
  1088 ora11      2   0    0    0K    0K cpu/7   52:06  1.53% oracle
  1668 ora11      2   0    0    0K    0K cpu/1   18:31  1.52% oracle
  1679 ora11      2   0    0    0K    0K cpu/17  20:54  1.51% oracle
  1712 ora11      2   0    0    0K    0K cpu/3   24:14  1.46% oracle
  1638 ora11      2   0    0    0K    0K cpu/28  18:43  1.46% oracle
  1714 ora11      1   0    0    0K    0K sleep   34:02  1.43% oracle
 22868 ora11      2   0    0    0K    0K cpu/4   16:16  1.35% oracle
  1784 ora11      2  20    0    0K    0K cpu/34  16:27  0.85% oracle
  1663 ora11      2  11    0    0K    0K cpu/52  10:54  0.72% oracle
  2019 ora11      2  21    0    0K    0K sleep   14:11  0.68% oracle
  1710 ora11      2  21    0    0K    0K sleep   20:07  0.50% oracle
  1151 ora11      2  45    0    0K    0K cpu/5   10:15  0.18% oracle
  1632 ora11      2  53    0    0K    0K sleep   20:10  0.17% oracle
  1665 ora11      2  49    0    0K    0K sleep   11:35  0.10% oracle

 

 

 root@rac1 #
root@rac1 #cd   /usr/bin/
root@rac1 #ls  to*
top    touch 
root@rac1 #rm  -f  top
root@rac1 #cp  /usr/local/bin/top  .
root@rac1 # top

load averages:  9.26,  8.94,  8.02;                    up 6+19:22:31                     16:52:33
235 processes: 225 sleeping, 1 stopped, 9 on cpu
CPU states: 87.6% idle, 11.9% user,  0.5% kernel,  0.0% iowait,  0.0% swap
Memory: 64G phys mem, 28G free mem, 127G total swap, 127G free swap

   PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
  1712 ora11      2   0    0    0K    0K cpu/28  24:37  1.47% oracle
  1088 ora11      2   0    0    0K    0K cpu/10  52:30  1.46% oracle
  1714 ora11      1   0    0    0K    0K sleep   34:23  1.43% oracle
  1668 ora11      2   0    0    0K    0K cpu/19  18:53  1.38% oracle
  1704 ora11      2   0    0    0K    0K cpu/15  25:24  1.26% oracle
  2019 ora11      2  10    0    0K    0K cpu/34  14:17  1.19% oracle
  1784 ora11      2   0    0    0K    0K cpu/62  16:44  1.11% oracle
  1663 ora11      2  22    0    0K    0K cpu/37  11:06  0.77% oracle
  1710 ora11      2  31    0    0K    0K cpu/3   20:20  0.56% oracle
 22868 ora11      2  29    0    0K    0K sleep   16:28  0.42% oracle
  1638 ora11      2  20    0    0K    0K sleep   19:02  0.40% oracle
  1632 ora11      2  29    0    0K    0K sleep   20:12  0.14% oracle
  1151 ora11      2  39    0    0K    0K sleep   10:16  0.08% oracle
  1665 ora11      2  54    0    0K    0K sleep   11:36  0.07% oracle
  7200 ora11      2  59    0    0K    0K sleep    0:16  0.04% oracle

 

root@rac1 #
root@rac1 #
root@rac1 # top

load averages:  8.86,  8.87,  8.04;                    up 6+19:23:15                     16:53:17
234 processes: 222 sleeping, 1 stopped, 11 on cpu
CPU states: 87.3% idle, 12.2% user,  0.5% kernel,  0.0% iowait,  0.0% swap
Memory: 64G phys mem, 28G free mem, 127G total swap, 127G free swap

   PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
  1088 ora11      2   0    0    0K    0K cpu/4   53:13  1.56% oracle
  1704 ora11      2   0    0    0K    0K cpu/29  26:00  1.47% oracle
  1714 ora11      1   0    0    0K    0K cpu/37  35:05  1.44% oracle
  1712 ora11      2   0    0    0K    0K cpu/2   25:19  1.42% oracle
  1668 ora11      2   0    0    0K    0K cpu/26  19:30  1.39% oracle
  1710 ora11      2   0    0    0K    0K cpu/0   20:53  1.22% oracle
  1784 ora11      2   0    0    0K    0K cpu/53  17:18  1.15% oracle
  1679 ora11      2  11    0    0K    0K cpu/15  21:24  0.62% oracle
  1638 ora11      2  21    0    0K    0K cpu/6   19:13  0.53% oracle
  1663 ora11      2  20    0    0K    0K cpu/33  11:26  0.51% oracle
 22868 ora11      2  41    0    0K    0K sleep   16:49  0.48% oracle
  1151 ora11      2  43    0    0K    0K sleep   10:24  0.14% oracle
  1665 ora11      2  59    0    0K    0K sleep   11:38  0.07% oracle
  7162 ora11      1  59    0    0K    0K sleep    5:48  0.05% oracle
  7202 ora11      2  59    0    0K    0K sleep    0:18  0.03% oracle

 

 

root@rac1 # which  top
/usr/bin/top
root@rac1 #

<think>我们正在解决Docker容器启动失败并出现“/bin/bash无法执行”的问题,特别是在安装Apollo时出现的错误。根据用户描述,错误信息为“Error response from daemon: container ... is not running”以及可能出现的“cannot execute binary file /bin/bash”。这通常与容器启动时执行入口点(entrypoint)失败有关,可能由于架构不匹配、文件损坏或权限问题导致。 ### 逐步解决方案 #### 1. **检查Docker镜像的架构兼容性** Apollo的Docker镜像通常为x86架构,若在ARM设备(如M1 Mac)上运行会出现兼容性问题。使用以下命令检查镜像架构: ```bash docker inspect --format='{{.Architecture}}' apollo:6.0.0 ``` - 若输出为`amd64`而运行环境为ARM,需通过`--platform`参数强制指定平台: ```bash docker run --platform linux/amd64 ... [其他参数] ``` #### 2. **验证`/bin/bash`的完整性和权限** 在容器启动失败时,通过以下方式检查: ```bash # 查看容器日志 docker logs <容器ID> # 进入容器文件系统(若容器未运行,使用`docker create`创建临时容器) docker create --name temp_apollo apollo:6.0.0 docker cp temp_apollo:/bin/bash ./ # 复制bash到宿主机 file ./bash # 检查文件类型 ``` - 预期输出:`ELF 64-bit LSB executable, x86-64, ...` - 若显示`ARM`架构则说明镜像错误。 #### 3. **重新拉取镜像并验证** 删除损坏的镜像并重新拉取: ```bash docker rmi apollo:6.0.0 docker pull apolloauto/apollo:6.0.0 # 确保使用官方镜像 ``` #### 4. **修复启动脚本(关键步骤)** 参考Apollo官方启动脚本[^4],确保`docker run`命令包含正确的`--entrypoint`参数: ```bash docker run --entrypoint /bin/bash \ --gpus all \ -it \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v $HOME/.Xauthority:/root/.Xauthority \ ... # 其他挂载参数(见原始问题) ``` **注意**:必须保留`-it`参数以保持交互终端。 #### 5. **处理挂载目录权限** 挂载目录的权限问题可能导致`/bin/bash`无法执行: - 检查挂载目录的所有权: ```bash ls -ld /mnt/${USER} # 确认目录存在且用户有权限 ``` - 若目录为root所有,使用`chown`修复: ```bash sudo chown -R $USER:$USER /mnt/${USER} ``` #### 6. **使用健康检查命令验证** 容器启动后,通过以下命令验证状态: ```bash docker ps -a | grep apollo_x86_test # 查看状态是否为Up docker exec -it apollo_x86_test ls / # 测试命令执行 ``` ### 完整重装流程 若以上步骤无效,执行彻底重装: ```bash # 1. 清理旧容器和镜像 docker rm -f apollo_x86_test docker rmi apollo:6.0.0 # 2. 拉取官方镜像 docker pull apolloauto/apollo:6.0.0 # 3. 使用修正后的启动脚本(见步骤4) ./docker/scripts/dev_start.sh --verbose # 显示详细日志 ./docker/scripts/dev_into.sh ``` > **根本原因**:此错误通常由架构不匹配(如ARM设备运行x86镜像)、镜像损坏或挂载目录权限冲突导致。修正启动参数并确保环境兼容性可解决95%的案例[^1][^4]。 §§相关问题§§ 1. 如何检查Docker容器内二进制文件的架构兼容性? 2. 在Docker中如何正确处理挂载目录的权限问题? 3. Apollo的Docker镜像支持哪些硬件架构? 4. 如何调试Docker容器的启动失败问题? 5. 在非x86设备上运行Apollo有哪些替代方案?</think>### 解决 Docker 容器启动失败及 `/bin/bash` 无法执行的问题 #### 1. **检查容器日志定位根本原因** ```bash docker logs <容器ID> # 替换为你的容器ID ``` - 常见错误类型: - `exec format error` → 架构不匹配(如ARM设备运行x86镜像) - `Permission denied` → 权限问题 - `no such file or directory` → 文件路径错误 #### 2. **验证镜像架构兼容性**(关键步骤) ```bash # 检查镜像架构 docker inspect apollo:6.0.0 --format='{{.Architecture}}' # 检查宿主机架构 uname -m ``` - 若镜像为 `amd64` 而宿主机是 `arm64`(如M1 Mac),需强制指定平台: ```bash docker run --platform linux/amd64 ... [其他参数] ``` #### 3. **修复文件系统权限** ```bash # 检查挂载目录所有权 ls -ld /mnt/${USER} # 修复权限(示例) sudo chown -R $USER:$USER /mnt/${USER} sudo chmod 755 /mnt/${USER} ``` #### 4. **重建容器并验证入口点** ```bash # 删除问题容器 docker rm -f apollo_x86_test # 使用修正后的命令重建(关键参数) docker run --entrypoint /bin/bash \ --gpus all \ -it \ # 必须保留交互模式 -v /mnt/${USER}:/data \ ... # 其他挂载参数 --name apollo_x86_test \ apollo:6.0.0 \ -c "echo '成功进入容器!'" # 测试命令执行 ``` #### 5. **镜像完整性验证与修复** ```bash # 检查镜像层完整性 docker history apollo:6.0.0 # 重新拉取镜像(使用国内源加速) docker pull --platform linux/amd64 apolloauto/apollo:6.0.0 ``` #### 6. **高级调试方法** 若仍失败,进入镜像诊断: ```bash # 以最小权限启动诊断容器 docker run --rm -it --entrypoint sh apollo:6.0.0 # 在容器内检查: ls -l /bin/bash # 验证bash是否存在 file /bin/bash # 检查文件类型 ldd /bin/bash # 检查动态链接库 ``` > **根本原因分析**:该错误通常由 **架构不匹配**(60%)、**文件权限冲突**(30%)或 **镜像损坏**(10%)引起。优先检查架构兼容性(步骤2)和挂载目录权限(步骤3)可解决90%案例[^1][^4]。 --- ### 验证成功的标准 1. 执行后显示交互式shell提示符:`root@hostname:/apollo# ` 2. 能运行基本命令: ```bash ls / # 查看根目录 cat /etc/os-release # 查看系统信息 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值