chroot를 설치하는 방법입니다.

chroot의 의미는 wikipedia에 아래와 같이 설명되어 있습니다.

유닉스 운영 체제에서 chroot는 현재 실행 중인 프로세스와 차일드 프로세스 그룹에서 루트 디렉터리를 변경하는 작업이다.

이렇게 수정된 환경에서 실행되는 프로그램은 지정된 디렉터리 트리 밖의 파일들의 이름을 지정할 수 없으므로(즉, 일반적으로는 접근이 불가능하므로) chroot 감옥으로 부른다.

나스 같은 환경에서는 특정 디렉토리에 리눅스(주로 데비안) 시스템 파일을 올려두고 그 디렉토리를 루트 디렉토리로 변경하여 기본 환경에 없는 각종 프로그램을 이용하는 목적으로 많이 사용합니다.

아래는  Arm 프로세서를 사용하는 라우트(RT-AC56U, RT-AC68U, RT-AC87U, RT-AC88U, RT-AC3200, RT-AC5300…)용으로 chroot를 설치하는 방법을 nas4dual에 맞게 수정한 것입니다.

원본은 아래 링크에서 확인할 수 있습니다.

https://www.hqt.ro/how-to-install-debian-jessie-arm/

준비 작업

아래 링크를 참고하여 entware를 설치합니다.

https://isulnara.com/wp/archives/1307

자 이제 설치에 들어갑니다.

아래 명령 또는 텍스터 에디터로

아래와 같은 내용으로 /opt/etc/init.d/S99debian 파일을 생성합니다.

위 내용 중 EXT_DIR=/mnt/HDD1/@chroot/media/는 자신의 환경에 맞게 수정합니다.

root 권한이 필요한 부분이 있어서 아래 명령으로 root 사용자로 전환하고, 아래 명령들을 내립니다.

위의 마지막 명령에서 /mnt/HDD1/@chroot/media의 경로는 이전 단계 /opt/etc/init.d/S99debian 파일에 있는 EXT_DIR에 설정된 값으로 수정합니다.

이제 모든 설치와 설정이 끝났습니다.

아래 명령으로 chroot 환경의 데비안으로 접속합니다.(이후부터는 su – 이후 아래 명령만 내리면 됩니다.)

프롬프트가 위와 같이 변경되면 성공입니다. (pts 관련 에러가 발생하지만 무시해도 됩니다)

아래 명령으로 각종 패키지를 최신 버전으로 업데이트합니다.

아래 명령으로 시간을 설정합니다.

아래 명령으로 패키지를 하나 설치해봅니다. (ncftp)

chroot 환경을 벗어나려면 아래 명령을 내립니다.

2019-10-09  추가

chroot 환경에 설치된 서비스 시스템 리부팅 시 자동 시작

터미널에 root 권한으로 접속하여 /opt/etc/chroot-services.list 파일에 chroot 환경에서 설치된 서비스명을 한 줄에 하나씩 추가합니다. 서비스명은 chroot 환경 기준으로 /etc/init.d에 있는 파일명입니다(chroot 환경이 아닌 메인 시스템 기준으로는 /opt/debian/etc/init.d에 있는 파일명입니다).

참고로 위 파일의 내용 샘플입니다. chroot 환경 기준으로 /etc/init.d/dnsmasq, /etc/init.d/S90-abc.sh 파일을 자동 실행시킬 경우 아래처럼 작성합니다.

이제 시스템을 재시작하면 dnsmasq와 S90-abc.sh가 자동 실행됩니다.

참고 사이트: https://www.hqt.ro/how-to-install-debian-jessie-arm/