coLinux에서 젠투 구동하기 IWBCMAN janlaur Joshua Preston Jon Portnoy nabugoon Hwang Joonhyung 이 문서는 여러분이 윈도우즈상에서 리눅스를 하나의 프로그램으로 실행시키기 위해서 coLinux상에서 해야하는 간단한 설정들에 대한 설명을 제공한다. 1.2 Ko 2004년 10월 2일 소개
coLinux란 무엇인가?

coLinux는 윈도우즈 데몬 프로그램이다. 이 프로그램의 목적은 리눅스 커널을 윈도우 고유 프로그램(native Windows thread)처럼 동작시키는데 있다. 따라서, 리눅스가 윈도우즈 안에서 고유프로그램으로서 돌아가게 된다.

주요한 결점은 성능에 있다고 할 수 있다. X 어플리케이션들의 성능은 좋지 않지만, 사용할 만 하다. 일반적인 어플리케이션들은 진짜 리눅스에서 돌아가는 것 처럼 속도가 나온다.

coLinux는 아직 개발상태이다. 잘 작동되기도 하지만, 아직 지원되지 않는 부분이 많이 존재한다.

이 문서는 젠투포럼에서 IWBCMAN과 janlaur가 작성한 멋진 문서들을 합치고 편집하여 만들어졌다. 위 두사람 글의 링크는 뒤에 참고자료로서 제공된다.

  • IWBCMAN의 글
  • janlaur의 글
설치
coLinux 구하기 coLinux를 돌리기 위해서 여러분은 반드시 윈도우즈 2000, 2003 혹은 XP(Home/Professional)을 사용해야 한다.

여러분은 단순히 coLinux.org에서 최근 스냅샷을 다운로드하면 된다.

이 문서에서는 coLinux-20040417이 사용되었다. 또한 해당 스냅샷에는 많은 멋진 버그픽스들이 존재하므로, 이것들을 사용하기를 추천한다. (역자주 : 역자는 coLinux-20040910을 사용하였다. 이것을 사용시, 따로 네트워크 드라이버를 설치할 필요가 없다.)

.EXE파일은 SourceForge에서 기본적인 배포이미지(Gentoo/Debian/Fedora)를 다운로드할 수 있게 하는 설치프로그램이다.

.EXE를 실행하면, 배포판을 선택하는 화면에서 젠투를 고르고 나머지 값들은 모두 그대로 놔둔다.

gentoo-i586-ext3-2g-deluxe.bz2이미지가 설치 디렉토리에 다운로드 될 것이다.

이 새로운 가상 파티션 파일은 젠투의 stage3설치단계를 포함하고 있다. 실제로 이것은 stage3보다 더 많은 것을 담고 있는데, XFree86, XFCE4, Firefox, GAIN, XChat을 포함한다. 이 가상 파티션은 ext3로 포맷되어 있다.

  • 이 파일의 압축을 2기가바이트 이상의 공간이 남은 윈도우즈 드라이버에 푼다.
  • 이 파일이 존재하는 경로에는 띄어쓰기가 되어 있어선 안된다.
  • 선택적으로, 여러분은 압축을 푼 후에 .bz2파일을 삭제해도 된다.

여러분은 아마도 압축을 풀기위해 윈도우즈 버전의 Winrar이 필요할 것이다. 이미지 파일들의 압축을 푸는 프로그램과 가상 스왑 파티션을 생성하는 프로그램을 찾기 위해서는 coLinux 좋은 도구 페이지를 살펴보는 것이 좋다.

설정
설정파일 수정하기

설정파일은 하나로 되어 있으며, 설치 디렉토리에 default.colinux.xml이라는 이름으로 존재한다. 여러분이 선호하는 에디터로 파일을 열어서 다음과 같이 수정한다.

<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <!-- 여러분의 경로는 약간 다를 수 있다 -->
    <block_device index="0" path="\DosDevices\e:\gentoo-i586-ext3-2g-deluxe" enabled="true"></block_device>
    <bootparams>root=/dev/cobd0</bootparams>
    <image path="vmlinux"></image>
    <!-- 여러분의 필요에 따라 크기를 조정한다 -->
    <memory size="256"></memory>
    <!-- name= 여러분의 네트워크 연결의 TAP 장치의 정확한 이름 -->
    <network index="0" type="tap" name="TAP"></network>
</colinux>

이미지 압축을 푼 곳으로 경로를 변경하고, coLinux에 메모리를 얼마나 할당할지를 설정한다.

네트워크 설정하기

이제 여러분은 colinux-daemon.exe를 클릭해서 coLinux를 부팅할 수 있지만, 대부분의 사람들은 네트워킹을 원하기 때문에, 그것을 먼저 설정할 것이다. 여러분은 시작하기에 앞서 가상 네트워크 아답터를 설치해야 한다. (역자주 : coLinux-20040910로 설치시 네트워크 드라이버가 함께 설치되므로 따로 설치할 필요는 없다.)

  • 제어판에서 "하드웨어 추가/제거"를 선택한 후 "다음"을 클릭한다.
  • "장치 추가/문제해결"을 선택한 후 "다음"을 클릭한다.
  • "새 장치 추가"를 선택하고 "다음"을 클릭한다.
  • "아니오, 목록에서 하드웨어를 검색합니다."를 선택하고 "다음"을 클릭한다.
  • "네트워크 어댑터"를 선택하고 "다음"을 클릭한다.
  • "디스크 있음"을 클릭하고 coLinux의 압축을 푼 곳으로 가서 netdriver디렉토리 안으로 들어가면, 파일이 보일 것이다.
  • 해당 파일을 선택하고 "열기"를 클릭한다.

이제 여러분의 가상 네트워크 어댑터가 생겼다. 여러분은 여러분 시스템의 다른 어댑터와 마찬가지로 설정을 할 수 있다.

  • "제어판->네트워크 연결"로 간다.
  • 여러분의 인터넷 연결을 클릭한 뒤, 여러분의 새 TAP 네트워크 연결을 CTRL+클릭한다.
  • 마우스 오른쪽 버튼을 클릭하고, "브리지로 연결(Bridge connections)"을 선택한다.

윈도우는 네트워크 브리지를 만들 것이다. 만약 여러분이 윈도우에 활성화된 인터넷 연결이 있다면, 네트워크는 아마도 동작할 것이다.

부팅

이제 여러분은 colinux-daemon.exe파일을 열어 마법을 볼 준비가 되었다. 여러분은 XFree86, XFCE4, GAIM, kernel-2.4.26과 기타 기본적인 것들과 함께 기본적인 젠투 설치본으로 부팅이 된다.

일단 부팅이 되면, 여러분은 먼저 몇가지 일을 수행하고 싶을 것이다.

  • 패스워드 없는 root로 로그인한 후 패스워드 설정하기.
  • 네트워크가 제대로 동작하는지 확인하기.
  • sshd를 시작하고 Putty(터미널 형식을 cygwin으로 사용한다.)를 이용하여 ssh 접속을 한다.

여러분은 시스템을 최신화하고 싶을 수도 있다. 그럴 때는 다음과 같이 한다.

# emerge --sync
# env-update && source /etc/profile
(만약 여러분이 vnc를 사용하는 것을 선호한다면)
# emerge tightvnc

이제 여러분은 X설정을 해야 한다. coLinux에 설치된 리눅스로부터 /etc/X11/XF86Config 파일을 간단히 복사하면 된다.

여러분은 오로지 X에서 제공하는 드라이버만을 사용할 수 있다. (예를 들어 nvidia-glx/kernel은 안된다.) 그리고 16bit 칼라로만 작동하는것으로 보인다. 따라서 여러분은 파일을 약간 수정할 필요가 있다. 여러분이 윈도우의 비디오 하드웨어에 직접 접근하는 것이 아니라는 것을 기억하라. 그러므로 여러분은 이 파일을 다른 곳에서 복사해 오거나, 직접 만들어야 한다. 대안으로 Knoppix를 이용하여 부팅한 후 Knoppix가 여러분 시스템에 적합한 XF86Config를 생성하도록 해도 된다.

위 작업이 끝나면, ~/.vnc/xstartup파일을 생성해라.

startxfce4 &

이제 간단히 여러분의 옵션으로 vncserver를 구동해라. 패스워드를 요구하면, 하나를 생성하고 반드시 기억해야 한다.

$ vncserver -geometry "1024x768" -depth 16

이제 여러분에게 필요한 것은 윈도우즈용 VNC를 다운로드 하는 것이다. vncviewer를 실행하고, IP주소를 가장 네트워크 어댑터의 주소(예 192.168.0.X:1)로 맞추고 패스워드를 기입한다. 만약 모든 것이 잘 되었다면, vncviewer는 XFCE4데스크탑을 보여줄 것이다. - 맘껏 즐기시길!

고급 주제들
스왑 파티션 추가하기

스왑 파일을 여기에서 다운받으라. (파일 이름은 스왑의 크기를 나타낸다.) 이를 여유가 있는 곳에 풀어 놓고 여러분의 default.colinux.xml에 다음을 추가한다.

    <-- index="1"은 이것이 /dev/cobd1에 대응될 것이라는 뜻이다 -->
    <block_device index="1" path="\DosDevices\e:\swap-file" enabled="true"></block_device>

이제 coLinux를 (재)시작하고, mkswap을 실행한다.

# mkswap /dev/cobd1

여러분은 여러분의 /etc/fstab을 수정해 다음 줄을 추가할 필요도 있을 것이다.

/dev/cobd1	none	swap	sw	0 0

이제 재부팅 없이 스왑을 활성화하자!

# swapon -a
coLinux에서 기존 리눅스 파티션에 접근하기

coLinux 웹사이트는 기본을 다루는 문서를 제공한다. 이를 읽은 뒤 여러분은 다음 설정으로 마무리할 수 있다.

<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <block_device index="0" path="\DosDevices\e:\gentoo-i586-ext3-2g-deluxe" enabled="true"></block_device>
    <block_device index="1" path="\DosDevices\e:\swap-file" enabled="true"></block_device>
    <!-- 여러분의 경로는 디스크 레이아웃 등에 따라 다를 수 있다 -->
    <block_device index="2" path="\Device\Harddisk0\Partition5" enabled="true"></block_device> 
    <bootparams>root=/dev/cobd0</bootparams>
    <image path="vmlinux"></image>
    <memory size="256"></memory>
    <network index="0" type="tap" name="TAP"></network>
</colinux>

여러분은 변경 사항이 적용되도록 하기 위해 coLinux를 (재)시작해야 한다. 여러분은 coLinux에서 /dev/cobd2 장치를 통해 "\Device\Harddisk0\Partition5"에 접근할 수 있을 것이다.

# mount /dev/cobd2 /mnt/linux
이 방법은 윈도우가 사용하지 않는 파티션에서만 동작한다는 것을 기억하라. 만약 윈도우가 사용한다면, 여러분은 smbfs를 통해 접근해야 할 것이다.
Q&A
나는 무슨 USE 플래그를 써야 하나?

USE는 네이티브 시스템과 똑같다.

내 전화 접속 연결을 공유할 수 있는가?

coLinux는 리눅스 네트워크를 외부 네트워크에 연결하기 위해 인터넷 연결 공유를 사용하기 때문에 TAP 연결과 여러분의 PPP 연결을 브리지로 연결(bridge)할 수 있다.

여전히 리눅스 커널은 하드웨어에 접근할 수 있는가?

coLinux는 필요한 각종 하드웨어를 에뮬레이트한다. 여러분은 에뮬레이트된 디스크 접근, 네트워크 등을 가지고 있다. 아직 제공되지 않는 것은 USB, 직접 그래픽(direct graphics), 사운드카드 접근 등이다. coLinux가 현재 USB가 동작하게 하기 위해 작업하고 있다는 것은 좋은 소식이다. (USB 키보드나 마우스는 제외된다.)

coLinux의 대안이 있는가?

그렇다!

  • VMWare
  • Bochs
coLinux가 2.6 커널과 동작할까?

현재는 아니다. coLinux는 에뮬레이트된 장치들과 윈도우와 공유하는 자원들을 쓸 수 있게 하는 패치들이 적용된 2.4 기반 커널을 사용한다.

왜 X가 동작하지 않는가?

coLinux에는 네이티브 X 지원이 없다. 여러분은 vnc나 Cygwin-X11을 써야 한다. 이 하우투의 지시 사항을 따르라.

결론

coLinux에는 놀라운 가능성이 줄지어 있다. Apache, Samba, DHCP, mail, distcc, NFS, 여러분이 생각하는 아무 서버나 coLinux에서 실행할 수 있다. 장치 지원과 디스크 접근을 제외하면 윈도우에서 리눅스를 실행하는 것이 정말로 놀라운 일이라고 말할 수는 없을 것이다.