안드로이드에서 리눅스 구동하기

category 안드로이드 2015.12.01 18:23

안녕하세요. 도정진입니다.

   

고등학교 때 정말 웹서버, 제 홈페이지가 있으면 좋겠다는 생각을 많이 하였습니다.

   

하물며 파일 업로드 다운로드가 가능한 파일서버를 구축하고 싶다는 생각을 많이 하고 있었고 초기에는 아이스테이션 PMP 인 넷포스2 를 이용해서 아주 간단하게 운영을 하고 있었습니다.

   

   

이런식으로 운영을 했었고

   

그 다음에는 안드로이드의 앱을 통해 웹서버 구동을 하던 적도 있었습니다. 그 게시글은

http://djjproject.tistory.com/82

   

   

그런데 이 마저도 안전성이 부족하고 php 명령셋이나 파이선이나 여타 톰캣 서버 백단 애플릿을 구동하지 못한다는 단점도 있습니다.

   

그래서 아예 리눅스를 chroot 로 안드로이드에 깔아버릴 생각을 해 보았습니다.

   

   

실제로는 Complete Linux Installer 라는 좋고 간단한 앱이 있지만 이미 만들어져 나오는 이미지로 커스텀 화가 불가능하게 되어 있어서 저는 아래의 앱을 사용하겠습니다.

   

   

https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy

   

이 앱을 통해서 리눅스 구동을 해 볼 생각입니다. 초보자에게 접근하기 쉬운 우분투 운영체제로 진행할 예정이며, 테스트 기기는 갤럭시 넥서스 / 넥서스 5 가 되겠습니다.

   

   

   

   

0 . 필요한 사항

   

2GB 이상의 공간

루팅이 되어있다.

   

위 두 가지만 충족하시면 문제가 없습니다.

   

그럼 다음 단계로 넘어가서 앱설치를 하고 바로 시도해 보겠습니다.

   

   

   

   

1 . 리눅스 버전 선택 및 이미지 만들기

   

일단 앱을 켜봅니다.

   

   

위 사진은 이미 우분투 15.10 이 실행되고 난 상태에서 찍었습니다. 앱의 첫화면 구조가 필요해서 먼저 사용했습니다.

   

처음을 보면 하단에 START STOP 다운로드 아이콘이 있습니다. 다운로드 아이콘을 누르면 아래의 창이 뜹니다.

   

   

우분투로 선택하고 버전은 물론 Trusty (14.04) 가 가장 많이 쓰이겠지만 저는 무조껀 최신이기 때문에 wily 15.10 을 선택해였습니다.

   

   

   

아키텍쳐의 경우는 대부분 armhf 이고 최신폰의 경우에 64비트가 되는 arm CPU 라면 arm64 를 선택하셔도 됩니다. 만약 자신이 INTEL CPU 를 내장하고 있다면 X86 그대로 사용해도 됩니다. (i386 / amd64)

   

   

   

다음 chroot 에 사용할 디스크 크기의 경우에는 실제로 용량이 클 필요가 없습니다. 1GB 면 적당하게 깔리는 것 같습니다.

   

다만, 저는 SSH 환경에서만 웹서버를 구동하기 때문에 차후 추가적으로 패키지를 선택하는 부분이 있는데 그 부분에서 SSH Server 만 선택할 때 용량이 1GB 로 충분하다는 의미이고

   

데스크탑 환경이나 추가적으로 패키지를 설치하게 되면 3GB 정도 필요할 것입니다.

   

   

파일 시스템의 경우에 EXT4 로 맞춰 줍니다.

   

   

데스크톱 환경 선택하는 부분이 있는데 저는 아예 설치를 하지 않을 예정으로 Other 로 설정하였습니다.

   

   

사용자 이름과 비밀번호는 그냥 설정해 주시면 됩니다.

   

   

그리고 추가적으로 설치할 것들을 정하는 것이 있습니다. 최소한 으로 저는 SSH 만 선택하였습니다. 다른것은 까시면 도움이 되지 않습니다. (데스크톱을 보고 작업을 하고 싶다면 위의 데스크톱 환경에서 그놈을 선택해 주시고 아래의 사진에서는 데스크톱 환경과 VNC 서버에 체크해 주시길 바랍니다.)

   

   

   

부팅시 SSH 서버가 자동으로 실행되게 체크합니다.

   

   

   

그 다음 안드로이드에 마운트 되어 있는 부분에 대해서 파일을 마운트 할 수 있는 기능이 있습니다.

   

꼭 SD 카드 영역을 마운트 포인트에 추가해 줍니다.

   

   

그럼 준비는 끝났습니다.

   

   

이제 설정한 기반대로 이미지를 만들어 볼 시간입니다.

   

   

액션 부분에서 인스톨 버튼을 누르면 자동으로 이미지 파일을 생성하고 그 이미지 파일 안에 선택한 배포판의 리눅스를 설치합니다.

   

   

   

   

   

   

   

이미지 제작은 18분 정도 걸리는 것 같습니다.

   

아마도 이것은 ports.ubuntu.com 의 속도가 느려서 그런것 같습니다. 빠른 미러 서버가 있다면 추천 부탁드립니다.

   

   

   

   

2 . 우분투 구동해 보기

   

   

설치가 끝났으면 하단의 START 버튼을 통해 우분투를 시작합니다.

   

그 다음 연결은 SSH 클라이언트로 하시면 됩니다.

   

   

   

192.168.0.44 는 앱의 상단에 나와있는 것으로 자신의 아이피가 무엇인지 알려줍니다. 각자 다르니 참고하시길 바랍니다.

   

   

   

이렇게 처음에 설치할 때 저는 아이디 비번을 djj9405 / djj9405 로 설정하였습니다. 그것을 이용하여 로그인을 하면 아래처럼 정상적으로 터미널 창이 뜹니다.

   

   

기본적으로 root 계정에서 작업하는게 편함으로 일단 루트 계정으로 로그인 하기 위해 루트 계정의 비밀번호를 바꿉니다.

   

sudo passwd root

(현재 루트 계정이 아님으로 sudo 를 꼭 붙여야 합니다.)

   

   

패스워드를 바꾸고 su 라고 입력하고 root 계정의 비밀번호를 입력하면 바로 루트 계정으로 쉘이 바뀝니다. 그 뒤에 작업하시면 정말 편합니다.

   

테스트로 htop 을 설치해 보겠습니다.

   

분명 패키지 업데이트가 되어 있지 않음으로 꼭 아래의 명령을 실행해서 패키지 목록을 최신화 해 주시길 바랍니다.

   

apt-get update

   

   

apt-get install htop

   

   

정상적으로 설치가 되었습니다.

   

   

chroot 환경임으로 안드로이드 프로세스도 보입니다.

   

   

   

   

   

   


댓글을 달아 주세요

  1. 2015.12.02 14:32

    비밀댓글입니다

  2. 미스터짱 신고">2015.12.04 16:31 신고

    기존 anmpp보다 좋은점이 어떤게 있을까요?
    속도가 더좋다던지 그런게 있나요?
    아~ 그리고 anmpp를 다시 설치하려고하는데 스크립트설치 다음 인스톨하면 anmpp.zip 에러가 나네요 ㅠ 왜그럴까요?
    질문이 많아서 죄송합니다

    • Favicon of https://blog.djjproject.com BlogIcon 도정진 ㅋㅋ잠자 신고">2015.12.04 22:02 신고

      anmpp 보다 php에 기능이 많습니다..

      백단으로 어플리케이션 서버 tomcat 등을 돌릴 수 있고

      문제는 최근에 anmpp 설치해 본 적이 없어서.. 정확한 답은 못드리겠네요..

      복무중이라 ㅎㅎ

  3. 미스터짱 신고">2015.12.05 15:43 신고

    nginx 까지 설치를 했는데요~ 그경로가 어디로 설치가됐는지를 모르겠어요 ㅠ 경로를 알아야 htdoc? 안에있는 파일들도 넣고 실행할수있을텐데요~

  4. 미스터짱 신고">2015.12.06 13:11 신고

    감사합니다~ 잘사용해 보겠습니다~^^

  5. GreenF 신고">2016.01.08 11:16 신고

    저도 저 애플리케이션을 설치해서 우분투 설치해서 서버를 구동중입니다.
    데스크탑 환경이 갖추어져있지 않으면 사용하기에 조금 무리가 있더라고요.
    근데 기본제공되는 데스크탑들 디자인이 정말....
    근데 진짜 서버처럼 구동하기엔 anmpp도 그렇고 이 앱도 그렇고 아직은 많이 미흡해 보입니다.

    • Favicon of https://blog.djjproject.com BlogIcon 도정진 ㅋㅋ잠자 신고">2016.01.09 09:39 신고

      저는 chroot 환경이라 네트워크 매핑에 애로 사항이 있는 것 말고는 잘 돌리고 있었습니다.

      저는 리눅스 서버 관리 할때 리소스 문제 때문에 GUI 구동을 거의 하지 않습니다.

      기본제공 데스크톱 디자인 관련 문제로는 그놈이면 그놈, xfce 등등 최신버전을 설치하시면 정말 좋습니다 ㅎㅎ

  6. hong57 신고">2016.09.20 02:30 신고

    자세한 그림, 글 감사합니다.
    많은 도움이 되었습니다.

    질문있는데요!
    1.
    만약 안드로이드 스마트폰이 해킹되면,
    리눅스 에뮬레이터도 해킹되나요?
    아니면 독립적이라 해킹에 문제 없나요?

    2.
    선탑재된 안드로이드를 삭제하고,
    리눅스만 단독으로 설치 할수 있는 방법 있을까요?
    된다면, 된다면 기종과 LINUX OS(우분투 제외)
    추천 부탁드립니다.

  7. 멜팅초코 신고">2018.07.16 18:05 신고

    저 궁금한게 있습니다! 안드로이드는 분명 리눅스 기반의 운영체제로 알고있습니다. 또한 루팅이라는 과정을 통해 루트의 권한도 사용이 가능하게 되는 것으로 알고 있습니다. 또한 busybox는 리눅스에서 사용되는 명령어의 집합으로, 안드로이드에서 해당 명령어를 사용할 수 있게 해주는 것이라 조사했는데 그렇다면, 루트의 권한과 리눅스에서 사용하던 명령어, 그리고 리눅스 기반의 커널이 전부 있는데도 불구하고 리눅스를 설치해야 하는 이유가 무엇인지 궁금해서 질문을 하게 되었습니다 혹시 다른 이유가 있는 것인가요?

    • Favicon of https://blog.djjproject.com BlogIcon 도정진 ㅋㅋ잠자 신고">2018.07.18 01:01 신고

      네 맞습니다.

      비지박스를 ndk 로 컴파일하여 안드로이드 쉘에서 바로 실행이 가능한것입니다.

      리눅스 프로그램을 구동하려면 관련 라이브러리가 활성화 되어야 하는데요. 이렇다보니 chroot 방식으로 로딩을 하는 것입니다.

      감사합니다.