chroot가 명령을 실행하도록 하려면 어떻게 해야 합니까?

chroot가 명령을 실행하도록 하려면 어떻게 해야 합니까?

컴파일하는 데 문제가 있습니다.선형 FSLinux Mint 20의 시스템 및 Cinnamon. 내 문제는 내가 Glibc의(세 번째?) 채널에 도달했을 때 chroot어떤 명령도 실행할 수 없다는 것입니다. 이는 명령이 디렉토리가 아니라는 것을 알려줍니다. chroot의 정확한 출력은 다음과 같습니다.

root@LAPTOP:~# chroot "$LFS" /usr/bin/env -i HOME=/root TERM="$TERM" PS1='(lfs chroot) \u:\w\$ ' \
                                             PATH=/bin:/usr/bin:/sbin:/usr/sbin \
                                             /bin/bash --login +h
chroot: failed to run command '/usr/bin/env': Not a directory

여기서 무엇이 잘못되었는지 모르겠습니다. 누군가 나에게 조언을 해줄 수 있습니까?

PS 이 콘텐츠에 대한 더 나은 사이트가 있으면 알려주시기 바랍니다.

답변1

아, 드디어 무슨 일인지 알았네요.

초기에 처음 파일 시스템을 생성할 때 /usr/lib에 대한 심볼릭 링크로 /lib를 생성했습니다.
그런 다음 다음 명령을 실행하면 다음과 같습니다.

case $(uname -m) in
  i?86)   ln -sfnv $PWD/elf/ld-linux.so.2        /lib ;;
  x86_64) ln -sfnv $PWD/elf/ld-linux-x86-64.so.2 /lib ;;
esac

링크 대상을 로 변경하므로 $PWD/elf/ld-linux-x86-64.so.2디렉터리가 아닌 파일은 /lib입니다.

관련 정보