화요일, 10월 20, 2020

[유튜브 방송] (리눅스 업스킬 도전 #21-b) (도커 컨테이너의 기반이 되는) chroot 소개

[일상다반사] 초보 개발자들을 위한 유튜브 채널 본격 가동에서 설명드린 리눅스 업스킬 도전 프로젝트 Q&A인 21-b편을 공개해드리겠다. 21-b편은 (도커 컨테이너의 기반이 되는) chroot와 루트 파일 시스템 구성에 필요한 프로그램을 통합해서 제공하는 busybox를 설명한다.

2020년 10월 20일자 [리눅스 업스킬 도전 #21-b] (도커 컨테이너의 기반이 되는) chroot 소개 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 리눅스업스킬도전에서 확인할 수 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 00:00 chroot 설명
  • 05:20 busybox 빌드와 설치
  • 14:57 root 파일 시스템 생성
  • 18:02 chroot로 생성된 root 파일 시스템 마운트하면서 셸 기동

방송에 사용한 실제 실습 자료는 다음을 참고한다:

  • 단계 1: busybox 빌드와 설치
    1. $ wget https://busybox.net/downloads/busybox-1.32.0.tar.bz2
    2. $ tar xvpfj busybox-1.32.0.tar.bz2
    3. $ cd busybox-1.32.0
    4. $ head INSTALL
    5. $ sudo apt-get install libncurses5-dev libncursesw5-dev # 만일 curses.h가 없다는 오류가 발생할 경우 ncurses를 make menuconfig에 앞서 설치해야 한다
    6. $ make menuconfig # menuconfig 화면에서 Settings ---> 선택한 다음에 아래에 있는 Build static binary (no shared libs) (NEW)를 선택해 체크박스, 나머지는 기본값으로 두고 화면 하단의 <Exit> 누르고 설정 파일을 저장
    7. $ sudo apt-get install build-essential # 만일 C 컴파일러가 없을 경우
    8. $ make
    9. $ find . -name busybox
    10. $ ldd busybox
    11. $ busybox
  • 단계 2: root 파일 시스템 생성
    1. $ cd ..
    2. $ mkdir root
    3. $ cd root
    4. $ mkdir bin
    5. $ cd bin
    6. $ cp ../../busybox-1.32.0/busybox .
    7. $ ln -s busybox ls
    8. $ ln -s busybox pwd
    9. $ ln -s busybox sh
    10. $ ln -s busybox cd
  • 단계 3: chroot로 생성된 root 파일 시스템 마운트하면서 셸 기동
    1. $ cd ../..
    2. $ sudo chroot ./root /bin/sh
EOB

댓글 없음:

댓글 쓰기