chroot: '/bin/bash' コマンドを実行できません: ファイルまたはディレクトリが存在しません (ディレクトリが存在します)。

chroot: '/bin/bash' コマンドを実行できません: ファイルまたはディレクトリが存在しません (ディレクトリが存在します)。

専用のCentOS 7サーバーでルートパスワードをリセットしようとしていますが、次のエラーが発生し続けます。

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環境を使用すると、シェルには入りません。装置を取り付け、内部を確認してください。

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

私が推測したものが正しい場合は、何も表示されません。 chrootに有効なシェルがある場合は、SHELL環境変数を変更できます。たとえば、bash が (/mnt)/usr/bin/bash にある場合:

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

(sh、csh、dashを探してください...)

しかし、おそらく殻を必要としないかもしれません。 chroot時に直接実行するコマンドを指定できます。

# chroot /mnt passwd

man chroot詳細は参照してください。

また、パスワードを変更するにはパスワードが必要ない場合がありますが、デバッグ目的でルートを変更する場合(システムが起動しない場合など)、通常は/dev、/dev/tty、/sysなどのいくつかのパスをバインドする必要があります。たとえば、/proc mount -o bind /dev /mnt/dev。したがって、プログラムはchroot環境でデバイス、プロセス情報などにアクセスできます。

おすすめ記事