linuxfromscratch:12.1:061-entering_the_chroot_environment

Linux From Scratch - Version 12.1-systemd
Chapter 7. Entering Chroot and Building Additional Temporary Tools
이전 위로 / 처음으로 다음
가상 커널 파일 시스템 준비 디렉터리 생성

이제 나머지 필요한 도구를 빌드하는 데 필요한 모든 패키지가 시스템에 설치되었으므로 이제 chroot 환경으로 들어가 임시 도구 설치를 마칠 차례입니다. 이 환경은 최종 시스템을 설치하는 데도 사용됩니다. root 사용자로 다음과 같이 아직은 임시 도구로만 채워진 환경으로 들어갑니다.

chroot "$LFS" /usr/bin/env -i   \
    HOME=/root                  \
    TERM="$TERM"                \
    PS1='(lfs chroot) \u:\w\$ ' \
    PATH=/usr/bin:/usr/sbin     \
    MAKEFLAGS="-j$(nproc)"      \
    TESTSUITEFLAGS="-j$(nproc)" \
    /bin/bash --login

사용 가능한 모든 논리 코어를 사용하지 않으려면 이 장과 다음 장에서 패키지를 빌드하는 데 사용할 논리 코어 수로 $(nproc)를 바꾸세요. 8장에 나오는 일부 패키지(특히 Autoconf, Libtool, Tar)의 테스트 스위트는 MAKEFLAGS의 영향을 받지 않고 대신 TESTSUITEFLAGS 환경 변수를 사용합니다. 여기에서도 다중 코어로 이러한 테스트 스위트를 실행하기 위해 이 변수를 설정했습니다.

env 명령에 -i 옵션을 지정하면 chroot 환경의 모든 변수가 지워집니다. 그런 다음 HOME, TERM, PS1PATH 변수만 다시 설정됩니다. TERM=$TERM 구문은 루트 내부의 TERM 변수를 chroot 외부와 동일한 값으로 설정합니다. 이 변수는 vim이나 less 등의 프로그램이 제대로 작동하기 위해 필요합니다. CFLAGS 또는 CXXFLAGS와 같은 다른 변수가 필요한 경우 여기에 설정하는 것이 좋습니다.

이 시점부터는 모든 작업이 LFS 파일 시스템으로 제한되므로 더 이상 LFS 변수를 사용할 필요가 없으며, chroot 명령은 루트(/) 디렉터리를 $LFS로 설정한 상태에서 Bash 셸을 실행합니다.

경로에 /tools/bin이 없다는 점에 유의하세요. 이는 크로스 툴체인이 더 이상 사용되지 않음을 의미합니다.

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

참고
이 장의 나머지 부분과 다음 장의 모든 명령은 chroot 환경 내에서 실행하는 것이 중요합니다. 재부팅 등의 이유로 이 환경을 떠나는 경우 7.3.1절 "/dev 마운트 및 생성"7.3.2절 "가상 커널 파일 시스템 마운트"에 설명된 대로 가상 커널 파일 시스템이 마운트되었는지 확인하고 설치를 계속하기 전에 다시 chroot 환경으로 들어갑니다.

  • linuxfromscratch/12.1/061-entering_the_chroot_environment.txt
  • 마지막으로 수정됨: 2024/06/15 10:15
  • 저자 baecy