6.4. Chroot 환경 진입

최종 LFS 시스템 빌드와 설치를 시작하기 위해서 chroot 환경으로 진입해야 할 시간이다. root 유저로, 다음 명령을 사용해서 아직 임시 도구들로만 채워진 곳으로 들어간다:

chroot "$LFS" /tools/bin/env -i \
    HOME=/root                  \
    TERM="$TERM"                \
    PS1='(lfs chroot) \u:\w\$ ' \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
    /tools/bin/bash --login +h

env 명령에 붙은 -i 옵션은 chroot 환경의 모든 변수를 지운다. 그 후에, HOME, TERM, PS1, 그리고 PATH 변수만 다시 설정된다. TERM=$TERM 구문은 root 내부의 TERM 변수를 root 외부와 동일한 값으로 설정한다. vimless 같은 프로그램이 제대로 작동하려면 이 변수가 필요하다. CFLAGSCXXFLAGS같은 다른 변수가 필요하다면, 여기서 다시 설정하면 된다.

여기서부터는 모든 작업이 LFS 파일 시스템으로 제한되기 때문에 LFS 변수를 더 이상 사용할 필요가 없다. Bash 셸은 이제 $LFS를 root(/) 디렉토리로 여기기 때문이다.

/tools/binPATH의 마지막에 있다는 점에 유의하라. 이는 일단 최종 버전이 설치되면 임시 도구는 더 이상 사용되지 않는다는 것을 의미한다. 이는 셸이 실행된 바이너리 파일의 위치를 기억하지 않게 해서 이뤄진다. 그러기 위해 +h 옵션을 bash로 전달해서 해싱을 비활성화한다.

bash 프롬프트에서 I have no name!이라고 뜨는 것에 주목하라. 이것은 /etc/passwd 파일이 아직 생성되지 않았기 때문에 정상이다.

[참고]

참고

이 장의 나머지 부분과 다음 장의 모든 명령을 chroot 환경에서 실행하는 것이 중요하다. 어떤 이유로든(예: 재부팅) 이 환경을 떠나는 경우 설치를 계속하기 전에 6.2.2절. “/dev 마운팅과 설정” 6.2.3절. “가상 커널 파일 시스템 마운팅”에 설명된 대로 가상 커널 파일 시스템이 마운트되었는지 확인하고 chroot를 다시 입력한 후 설치를 계속하라.