# 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
, PS1
및 PATH
변수만 다시 설정됩니다. TERM=$TERM
구문은 chroot 내부의 TERM
변수를 chroot 밖과 동일한 값으로 설정합니다. vim
이나 less
등의 프로그램이 제대로 작동하려면 이 변수가 필요합니다. CFLAGS
또는 CXXFLAGS와
같은 다른 변수를 원하는 경우 이 변수를 다시 설정할 수 있습니다.
이 시점부터는 모든 작업이 LFS 파일 시스템으로 제한되므로 LFS
변수를 더 이상 사용할 필요가 없습니다. 그 이유는 Bash 셸이 $LFS
가 이제 루트(/
) 디렉토리라는 메시지를 받기 때문입니다.
/tools/bin
이 PATH
에 없습니다. 이는 크로스 툴 체인이 더 이상 chroot 환경에서 사용되지 않음을 의미합니다. 이 문제는 셸이 실행된 바이너리 파일의 위치를 "기억"하지 않을 때 발생합니다. 이 때문에 +h
옵션을 bash
로 전달하면 해시가 꺼집니다.
bash 프롬프트에 I have no name!
이 표시됩니다. /etc/passwd
파일이 아직 생성되지 않았기 때문에 정상입니다.
참고
이 장의 나머지와 이후의 모든 장은 chroot 환경 내부에서 진행됩니다. 재부팅 등 어떤 이유로든 이 환경을 나가게 된다면, 설치를 계속하기 전에 7.3장 - 가상 커널 파일 시스템 마운트에 설명된 대로 모든 가상 커널 파일 시스템을 마운트한 다음, chroot에 다시 진입하십시오.