chroot:无法运行命令“/bin/bash”:没有这样的文件或目录(目录确实存在)

chroot:无法运行命令“/bin/bash”:没有这样的文件或目录(目录确实存在)

我正在尝试重置我的专用 CentOS 7 服务器的 root 密码,但不断收到以下错误

chroot: failed to run command ‘/bin/bash’: No such file or directory

我通过“救援模式”登录,如果我忘记了密码或进行任何其他必要的更改,我可以重置密码。

我用以下命令安装了分区:

# mount /dev/md127 /mnt/

但是当我尝试 chroot 时,我得到了 bash 不存在的错误,即使它确实存在,如下所示:

root@rescue:~# chroot /mnt/
chroot: failed to run command ‘/bin/bash’: No such file or directory
root@rescue:~# ls /bin/bash
/bin/bash
root@Rescue:~#

答案1

Chroot 正在抱怨,因为它找不到/bin/bash 里面chroot 环境,因此它不会将您置于那里的 shell 中。安装您的设备,然后检查内部:

# mount /dev/md127 /mnt/
# ls /mnt/bin/bash

如果我猜对的话,这不会显示任何东西。如果 chroot 中有有效的 shell,您可以更改 SHELL 环境变量。例如,如果 bash 位于 (/mnt)/usr/bin/bash:

# SHELL=/usr/bin/bash chroot /mnt

(寻找 sh、csh、dash...)

但你可能甚至不需要外壳。您可以指定 chroot 时直接运行的命令。

# chroot /mnt passwd

请参阅man chroot了解更多详情。

另外,为了更改密码,您可能不需要它,但是当出于调试目的而进行 chroot 时(例如,如果您的系统无法启动),您通常必须绑定一些路径,例如 /dev、/dev/tty、/sys 和/proc.例如mount -o bind /dev /mnt/dev。因此,程序可以在 chroot 环境中访问您的设备、处理信息等。

相关内容