[일상다반사] 초보 개발자들을 위한 유튜브 채널 본격 가동에서 설명드린 리눅스 업스킬 도전 프로젝트 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 빌드와 설치
- $ wget https://busybox.net/downloads/busybox-1.32.0.tar.bz2
- $ tar xvpfj busybox-1.32.0.tar.bz2
- $ cd busybox-1.32.0
- $ head INSTALL
- $ sudo apt-get install libncurses5-dev libncursesw5-dev # 만일 curses.h가 없다는 오류가 발생할 경우 ncurses를 make menuconfig에 앞서 설치해야 한다
- $ make menuconfig # menuconfig 화면에서 Settings ---> 선택한 다음에 아래에 있는 Build static binary (no shared libs) (NEW)를 선택해 체크박스, 나머지는 기본값으로 두고 화면 하단의 <Exit> 누르고 설정 파일을 저장
- $ sudo apt-get install build-essential # 만일 C 컴파일러가 없을 경우
- $ make
- $ find . -name busybox
- $ ldd busybox
- $ busybox
- 단계 2: root 파일 시스템 생성
- $ cd ..
- $ mkdir root
- $ cd root
- $ mkdir bin
- $ cd bin
- $ cp ../../busybox-1.32.0/busybox .
- $ ln -s busybox ls
- $ ln -s busybox pwd
- $ ln -s busybox sh
- $ ln -s busybox cd
- 단계 3: chroot로 생성된 root 파일 시스템 마운트하면서 셸 기동
- $ cd ../..
- $ sudo chroot ./root /bin/sh
댓글 없음:
댓글 쓰기