専用の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環境でデバイス、プロセス情報などにアクセスできます。