최근 수정 시각 : 2024-08-22 00:44:17

crouton


1. 개요2. 주의 사항3. 준비물4. Shell5. 대락적인 설명6. 사용법7. 설치 중 에러가 날 경우8. chroot 삭제방법9. chroot을 외부저장장치에 설치하는 방법10. crouton 외에 다른 script

1. 개요

크롬 OS에서 리눅스를 설치하는데 필요한 파일[1]. 데비안, 우분투, 칼리 리눅스 세 가지 를 설치할 수 있다. 이걸로 설치된 리눅스는 네이티브 리눅스는 아니고 크롬 OS 안에서 chroot 방식으로 돌아간다.

2. 주의 사항

크롬OS에 리눅스 기능이 베타를 거처 베타 딱지를 때면서부터는 크루톤의 활용도가 낮아졌고 구글에서도 방치하고 있다. 게다가 일자 불명으로 구글에서는 크루톤 설정을 위한 셸 스크립트를 포함한 대부분의 셸 스크립트를 사용할 수 없는 조치를 단행했는데 /usr/local/ 디렉터리 내에서만 실행되는 셸 스크립트나 명령 이외의 모든 실행은 운영체제 단에서 차단한다. 즉 다시 말해 귀하의 ChromeOS 버전이 세자릿수 또는 그 이상의 숫자를 가진 버전이라면 이 방법은 쓸 수가 없다. 루트 권한으로의 작동 자체를 차단한거라 우회의 방법도 없다. 크투론 뿐 아니라 시스템을 건드리는 모든 스크립트의 작동 방식을 차단한거라 다른 대안 스크립트도 없다. 따라서 아래의 방법은 기록 보존의 차원이고 해봤자 안된다는 것을 기억하자

3. 준비물

크롬북이 있어야 되겠다.당연한 소리

4. Shell

크롬 OS에서 shell을 실행시켜야 한다[2]. 이를 위해 여기를 참고하여 크롬북을 개발자모드로 바꾼다. 개발자모드로 로그인한 뒤 ctrl+alt+t를 누르면 노란 글씨로 'crosh>'라고 뜨는데 여기에 'shell'을 입력한다.

그리고 crouton을 다운받는다. 여기를 누르면 다운로드된다.

5. 대락적인 설명

sudo sh ~/Downloads/crouton -r list 를 입력하면 설치 가능한 리눅스 배포판의 목록이 나타난다. 데비안, 칼리, 우분투 세 가지가 보일 것이다. 예를 들어서 데비안의 potato, woody, ..., stretch, sid는 각각 데비안의 다른 버전들을 나타낸다.[3] 자세히 읽어보면 * 표시가 붙은 버전은 사용하지 않는 것을 권장하는 듯 하다.

sudo sh ~/Downloads/crouton -t list 를 입력하면 기타 설치 가능한 것들의 목록이 나타난다. 목록에서 desktop environment라고 설명되어있는 것들이 있는데 (gnome, KDE, lxde, unity, xfce)[4] 서로 다른 스킨이라고 생각하면 쉽게 이해될 것이다. 여기에 잘 설명되어 있다. 그 외에는 shell에 나온 설명 그대로이다.

모든 파일은 다운로드받고 해시값을 비교하게 되어있다. 이 값이 다를 경우 경고가 뜨면서 설치가 중단될 수 있다 (무시하고 설치 이어서 하기 가능).

6. 사용법

예를 들어서 우분투 trusty 버전을(위에서 * 표시가 붙지 않은 버전이다) gnome데스크탑환경으로 설치하겠다 라고 하면
sudo sh -e ~/Downloads/crouton -r trusty -t gnome-desktop
이라고 입력하면 된다. 여기에 각종 옵션을 추가해서
sudo sh -e ~/Downloads/crouton -r trusty -t gnome-desktop,audio,chrome,keyboard,xiwi,xorg
로 설치 가능하다. 위에서 -r list, -t list에서 나오는 것의 조합으로 설치하는 것인데 이는 사용자가 직접 정하길 바란다.

화면에
Please specify a username for the primary user:
라고 뜨면 리눅스에서 쓸 ID를 입력하고
Enter new UNIX password:
라고 뜨면 비밀번호를 입력하면 된다.
Retype new UNIX password:
라고 뜨면 비밀번호를 한 번 더 입력한다.

설치가 끝난 뒤 화면에 떠있는걸 자세히 읽어보면 sudo startgnome이라는 것이 보일 것이다. 이걸 입력하면 리눅스가 실행되는 것[5]. 리눅스와 크롬OS 사이를 왔다갔다 할 수 있는데 ctrl+alt+shift+←(f1) 키를 누르면 된다.

설치시 chroot 폴더 이름을 바꿀 수 있는데
sudo sh -e ~/Downloads/crouton -r trusty -t gnome-desktop -n youpig
을 입력하면 youpig 에 설치된다.

7. 설치 중 에러가 날 경우

.deb 파일 하나가 다운로드 되지 않는다면서 튕기는 경우가 있다.

대처법 :

그 .deb 파일을 다운받는다. 파일 주소를 복사해서 크롬에 붙여넣기하면 다운로드 폴더로 다운받는다. 그리고 터미널에서
sudo enter-chroot
을 입력하면 남은 파일들을 다시 받기 시작한다. 다 끝나고 ID, 비번을 입력하면 자동으로 리눅스 터미널로 들어가진다. 리눅스를 실행하기 전에 위에서 받은 파일을 따로 설치해줘야 된다. 터미널에서
cd /home/(좀 전에 입력한 리눅스 ID)/Downloads
를 입력하면 크롬OS의 다운로드 폴더로 이동한다. 그리고
sudo dpkg -i (위에서 받은 .deb 파일명)[6]
을 입력하면 설치가 된다.
exit
를 입력해서 크롬OS로 빠져나온 다음
sudo start***[7]
를 입력해본다. 리눅스가 뜨면 잘 쓰면 되고 새로운 에러가 뜨면... 구글검색으로 찾아서 수정하면 된다.

8. chroot 삭제방법

이런 저런 이유로 리눅스를 삭제하고 싶을 때가 있다. 그러면 shell에서
sudo edit-chroot -a
를 입력해서 뭐라고 뜨는지 본다. 예를 들어서 trusty라고 떴으면
sudo edit-chroot -d trusty
라고 입력해서 우분투 trusty버전을 삭제할 수 있다.

9. chroot을 외부저장장치에 설치하는 방법

crouton으로 리눅스를 설치하게되면 /mnt/stateful_partition/crouton/choots/ 안의 폴더에 설치되게 된다. 이것을 외부저장장치로 단순 복사해서 mount할경우 검은 화면에서 리눅스로 넘어가지 않고 다시 크롬OS로 돌아오게 된다. 그래서 crouton에서 내장SSD가 아닌 외장SD카드에 파일을 받도록 해야 된다. 이를 위해서 먼저 SD카드를 하나 준비한다. SD카드를 크롬북에 꽂고 shell에서 lsblk를 입력하면 크롬북에 연결된 저장장치들의 목록이 나타나는데 SD카드가 무엇으로 나타나는지 확인한다. 사용자의 환경에 따라 코드를 조금씩 바꿔서 입력하면 된다.

sudo umount /dev/sdb [8]

를 입력해서 SD카드를 unmount한다. 그리고

sudo mkfs -t ext4 -L ubuntu /dev/sdb

를 입력해서 SD카드를 ext4 파일시스템으로 만든다. -L 옵션은 labeling인데 SD카드에 ubuntu라고 이름을 붙인 것이다. 크롬OS 파일탐색기에서 디스크 이름을 바꾸는 것이 되지 않기 때문이다.

sudo mount /dev/sdb /mnt/stateful_partition/crouton/chroots

를 입력해서 SD카드를 chroot으로 mount시키고,

sudo sh -e ~/Downloads/crouton -r trusty -t unity-desktop,extension,audio,keyboard -n ubuntu [9]

를 입력해서 우분투를 설치한다. 코드는 사용자의 입맛에 따라서 바꾸면 되겠다. 설치되는동안 다른 shell을 열어서

df -h -T

를 입력해서 /dev/sdb의 사용량이 계속 증가하는지 확인한다. 위의 코드로 설치했을 경우 최종 사용량은 2.9G이다. ID,비번입력 후 먼저

sudo startunity

를 입력해서 우분투가 제대로 설치됐는지부터 확인하고,

sudo umount /dev/sdb

를 입력해서 SD카드를 unmount하고 sudo startunity가 되지 않는 것을 확인한다. 다시

sudo mount /dev/sdb /mnt/stateful_partition/crouton/chroots

를 입력해서 sudo startunity가 실행되는 것을 확인한다. 다 되면 SD카드에 우분투 설치가 된 것이다. 이후 사용할때마다 chroot으로 mount시켜줘야하는게 귀찮지만 구글드라이브에 코드를 저장해놓고 복사붙여넣기하면 될 것이다.


크롬북을 powerwash하면 [10] 이 SD카드로 sudo startunity가 먹히지 않는다. sudo enter-chroot도 안 된다. 아마도 크롬OS 안에 있어야 될 파일이 없어졌기 때문인 것으로 보인다. 먼저 shell에서 SD카드를 chroot으로 mount시키려고 하면 폴더가 없다고 나온다. 그래서

cd /mnt/stateful_partition
sudo mkdir crouton
cd crouton
sudo mkdir chroots

를 차례로 입력하여 으로 폴더를 만든다. 그러면 SD카드를 위의 code로 mount할 수 있다. 그리고 이전에 우분투를 설치했던 코드에 -u를 붙여서 입력한다. 즉

sudo sh -e ~/Downloads/crouton -r trusty -t unity-desktop,extension,audio,keyboard -n ubuntu -u

를 입력하면 된다. 대부분의 파일은 이미 SD카드에 있는 상태이기 때문에 잠깐 기다리면 끝난다. 다 끝나고 sudo startunity를 입력하면 이전에 쓰던 우분투가 그대로 뜬다.

10. crouton 외에 다른 script

chrx는 크롬OS를 그대로 두면서 크롬OS/리눅스 듀얼부팅을 가능하게 해주는 스크립트다. 펌웨어 수정이 필요할 수 있다. 꼭 해야겠다는 사람은 https://chrx.org/ 에 가서 읽어보자. 비슷한걸로 ChrUbuntu라는 것도 있다.
[1] 정확히 말하면 스크립트 묶음일 것이다 [2] crosh shell이라고도 하는데 크롬웹스토어에도 있다 [3] https://www.debian.org/releases/index.ko.html 를 참고. [4] e17로 설치 가능한 enlightenment 데스크탑환경은 리눅스 초보자들에게는 추천되지 않는다 [5] 다른 데스크탑환경, 예를 들어서 unity를 설치했다면 sudo startunity라고 나온다. [6] .deb까지 입력해야된다 [7] 이전 과정에서 뭐라고 떴는지 사용자가 기억하고 있어야겠다. -n 옵션을 넣지 않았으면 일반적으로 데스크탑환경 이름이 뜨게 되어있다. startunity, startgnome, startkde, startlxde, starte17, startxfce4 같은 것들이다 [8] sdb 안에 sdb1이라고 있으면 sdb1이라고 치면 되겠다. [9] 어떤 code로 설치했는지 구글드라이브에 저장해놓도록 하자. 나중에 복구할 때 필요하다. [10] 크롬북을 크롬OS만 깔린 상태로 초기화(복구)시키는 것을 powerwash라 한다.

분류