# chroot 환경 진입

이제 시스템에 필요한 나머지 도구를 빌드하는 데 필요한 모든 패키지가 설치되었으므로, 이제 chroot 환경에 진입해서 남은 임시 도구를 설치할 시간입니다. 이 환경은 최종 시스템을 설치하는데도 사용됩니다. root 유저로, 아래 명령아를 통해서 임시 도구로만 채워진 환경을 진입하십시오:

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

env 명령에 지정된 -i 옵션은 chroot 환경의 모든 변수를 지웁니다. 그 후에는 HOME, TERM, PS1PATH 변수만 다시 설정됩니다. TERM=$TERM 구문은 chroot 내부의 TERM 변수를 chroot 밖과 동일한 값으로 설정합니다. vim이나 less 등의 프로그램이 제대로 작동하려면 이 변수가 필요합니다. CFLAGS 또는 CXXFLAGS와 같은 다른 변수를 원하는 경우 이 변수를 다시 설정할 수 있습니다.

이 시점부터는 모든 작업이 LFS 파일 시스템으로 제한되므로 LFS 변수를 더 이상 사용할 필요가 없습니다. 그 이유는 Bash 셸이 $LFS가 이제 루트(/) 디렉토리라는 메시지를 받기 때문입니다.

/tools/binPATH에 없습니다. 이는 크로스 툴 체인이 더 이상 chroot 환경에서 사용되지 않음을 의미합니다. 이 문제는 셸이 실행된 바이너리 파일의 위치를 "기억"하지 않을 때 발생합니다. 이 때문에 +h 옵션을 bash로 전달하면 해시가 꺼집니다.

bash 프롬프트에 I have no name!이 표시됩니다. /etc/passwd 파일이 아직 생성되지 않았기 때문에 정상입니다.

참고

이 장의 나머지와 이후의 모든 장은 chroot 환경 내부에서 진행됩니다. 재부팅 등 어떤 이유로든 이 환경을 나가게 된다면, 설치를 계속하기 전에 7.3장 - 가상 커널 파일 시스템 마운트에 설명된 대로 모든 가상 커널 파일 시스템을 마운트한 다음, chroot에 다시 진입하십시오.

Last Updated: 5/4/2021, 3:10:29 AM