아무거나 적당히 운영되는 이상한 블로그

임베디드 리눅스 기기에 debootstrap를 통하여 데비안 시스템 올리기 본문

잡담/프로젝트 미간

임베디드 리눅스 기기에 debootstrap를 통하여 데비안 시스템 올리기

저세상 음향연구소 2022. 4. 22. 17:38

0. 주의사항

저도 아는 것이 별로 없습니다. 다른 정보를 종합한 다음 충분히 고려하여 선택하시길 바랍니다. 

1. 요구사항

1-1 임베디드 리눅스 기기 요구사항

데비안에서 지원하는 리눅스 커널 버전을 충족하면서, 루트 터미널 접근이 가능하면서, USB 단자와 네트워크 기능이 작동하는 임베디드 리눅스 기기가 필요합니다.

멀쩡한 기기를 해킹하는 작업인 만큼 쉽지 않습니다. 여기서는 루팅 툴이 존재하는 LG전자 AN-US800K를 기준으로 작성했습니다. AN-US800K의 루트 터미널 접근 방법은 https://b.uaz.kr/165 을 참고하세요. (사실 AN-US800K는 깡통 리눅스 OS가 아닌 WebOS TV 시스템을 가지고 있기에 뭔가 이상한 모습이 완성됩니다)

1-2 작업 컴퓨터 요구사항

debootstrap 만들기에서는 debootstrap 설치와 작동이 가능한 데비안 또는 우분투 컴퓨터가 필요합니다. 어느정도 성능과 용량이 필요합니다.

debootstrap 2단계 이후에서는 루트 터미널 접근 접근이 가능한 컴퓨터가 필요합니다. 

1-3 기타 요구사항

아마도 2GB 이상의 USB 메모리가 필요합니다. USB 메모리가 데비안 시스템 저장공간이 되기에 적절하게 넉넉한 용량을 추천합니다.

2 debootstrap 만들기

2-1 USB 메모리 EXT4 포맷

https://blog.soobinpark.com/132 를 참고하여 EXT4로 포맷합니다. 만약에 구형 기기라서 커널에서 EXT4를 지원하지 않는다면 EXT3나 EXT2도 괜찮습니다. 다만 귀찮다고 FAT32이나 NTFS로 포맷한 것으로 진행하면 안됩니다. debootstrap 설치는 가능하지만 debian 시스템이 정상적으로 작동하지 않을것입니다.

그런 다음 USB 메모리의 마운트 폴더를 알아야 합니다. 기기마다 다르며 여기서는 /aaa/aaa/aaa로 가정하겠습니다.

2-2. debootstrap 1단계 작업

sudo apt install debootstrap 으로 debootstrap를 설치합니다.

sudo mount -i -o remount,exec,dev /aaa/aaa/aaa으로 debootstrap가 작동할 수 있도록 리마운트 합니다.

sudo debootstrap --arch=armhf --foreign bullseye /aaa/aaa/aaa/debian http://ftp.harukasan.org/debian으로 debootstrap 1단계를 시작합니다. 시간이 오래 걸리니 작업이 종료될때까지 느긋하게 기다려주세요.

--arch=는 uname -a를 참고하여 타겟 장비에 따라서 알맞는 아키텍처를 선택하면 됩니다. bullseye는 현행 데비안 버전의 코드네임으로 만약 미래에 이 글을 보고 있거나 사용하고자 하는 apt 프로그램이 이후 버전에만 있다면 bookworm 이후의 버전을 입력해도 됩니다. http://ftp.harukasan.org/debian는 데비안 미러중 하나인 부경대 하루카상 미러입니다. 미래에 해당 미러가 돌아가지 않거나 그냥 다른 미러를 사용하고 싶다면 다른 데비안 미러를 선택하시면 됩니다. 다만 카카오 미러처럼 일부 미러는 마이너한 아키텍처를 지원하지 않으니 미리 알아봐야합니다.

1단계 작업이 잘 진행되면 안전하게 언마운트하고 임베디드 리눅스 기기에 USB를 연결합니다.

3. debootstrap 설치하기

3-1 USB 메모리 마운트하기

임베디드 리눅스 기기의 터미널을 열고 연결한 USB 메모리가 어디에 마운트 되었는지 확인합니다. 보통 자동으로 마운트 하지 않거나 FAT32 같은 일부 파일 시스템만 자동으로 마운트 하는 경우가 있다보니 수동으로 마운트 해야합니다.

기종에 따라 마운트 방법은 조금씩 다르겠지만 AN-US800K는 mkdir /home/test로 마운트 폴더를 만들고 mount /dev/sda1 /home/test로 마운트하면 됩니다. 마운트 확인 방법은 df-h 입니다.

당연하겠지만 마운트 위치는 기기에 따라 좀 다를 수 있다보니 /home/test를 알맞는 마운트 위치로 치환해야합니다.

3-2 debootstrap 설치 진행하기

mount -o bind /dev /home/test/debian/dev 
mount -o bind /sys /home/test/debian/sys
mount -t proc none /home/test/debian/proc

마운트가 잘 진행되었다면 대충 이렇게 입력하여 진행합니다. 

chroot /home/test/debian /bin/bash 를 입력하여 본격적으로 debootstrap 설치를 시작합니다.

./debootstrap/debootstrap --second-stage 를 입력하여 debootstrap 설치를 진행합니다. 시간이 오래 걸리니 작업이 종료될때까지 느긋하게 기다려주세요. 작업이 성공적으로 진행되었다면

exit 를 입력하여 데비안을 빠져나갑니다.

3-3 debian 설정 마무리

chroot /home/test/debian /bin/bash 로 다시 들어가면 아마도 정상적으로 작동하고 있을겁니다.

nano /etc/resolv.conf 를 입력하여 DNS 서버 정보를 올바르게 수정해야합니다.

127.0.0.???을 8.8.8.8으로 변경하면 됩니다. 8.8.8.8은 구글 DNS 서버 주소로서 다른 DNS 서버 IP 주소도 됩니다.

apt update를 입력하여 apt 데이터를 업데이트 하고 apt upgrade를 입력하여 패키지들을 최신 버전으로 업데이트 합니다.

이 이후에는 평범하게 데비안 쓰듯이 작업하면 됩니다.

4 재부팅이나 기기를 다시 켠 이후 debian 접근하기.

4-1 USB 메모리 마운트하기

USB 메모리 마운트하기는 3-1를 참고하세요.

4-2 데비안 접근하기

mount -o bind /dev /home/test/debian/dev 
mount -o bind /sys /home/test/debian/sys
mount -t proc none /home/test/debian/proc
chroot /home/test/debian /bin/bash

이 이후에는 평범하게 데비안 쓰듯이 작업하면 됩니다.

5 쓸모없는 FAQ

5-1 담기는 폴더는 꼭 debian이어야 하는가요? 

아니요. 아무 이름을 사용해도 됩니다.

5-2 담기는 폴더를 다른곳으로 이동해도 되는가요?

debootstrap 설치 진행전이라면 아무곳이나 이동한 다음에 설치를 마치면 됩니다. 물론 해당 위치의 여유 용량이 넉넉해야합니다. 설치가 진행된 이후에는 이동하면 안되는 것으로 생각합니다.

5-3 데비안 시스템을 삭제하고 싶어요

해당 폴더를 삭제하시면 됩니다. 

5-4 여러개의 데비안 시스템을 사용할 수 있는가요?

여러개의 데비안 시스템을 사용할 수 있지만, 동시에는 하지 않는것이 좋은것으로 생각합니다.

Comments