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 환경에서 장치, 프로세스 정보 등에 액세스할 수 있습니다.

관련 정보