강좌 & 팁
coLinux 소개
예전부터 저는 리눅스 머신 한 대에서 모든 작업을 하지 못하고, 크로스 컴파일러와 디버깅용으로만 리눅스를 사용하고 에디터를 이용하여 프로그램 코딩이나 자료 검색, 문서 작업은 Microsoft Windows에서 합니다. 그래서 리눅스를 독립으로 따로 설치하여 사용하거나, 사정에 따라 하나의 PC를 사용해야 하거나 노트북만 있다면 VmWare와 같은 가상 PC 프로그램을 이용합니다.
가상 PC를 이용하면 신기할 정도로 좋은데, 문제는 컴퓨터의 자원을 많이 소모하기 때문에, 소모 보다는 자원을 나누어 사용하기 때문에 한마디로 무겁다는 점입니다. 빠른 데스크탑은 그나마 만족하며 사용할 수 있는데, 환경이 열악한 노트북에서는 부담이 되지요. 그래서 가상 머신과는 달리 가볍게 사용할 수 있는 CygWin을 사용했었습니다만, 뭔가 많이 부족해서 결국 참아 가면서 가상 머신을 이용하고 있습니다.
그런데 가상 머신 프로그램처럼 리눅스를 설치하지만 CygWin처럼 가볍게 리눅스를 사용할 수 있는 coLinx가 있다는 것을 알게 되어 매우 큰 호기심을 가지고 설치해 보고 정리해 보았습니다.
1. WinPcap 설치
이제 coLinux를 설치해 보겠습니다. coLinux를 설치하기 전에 반드시 WinPcap을 먼저 설치하십시오. 리눅스 설치만큼 중요한 것이 네트워크 구성인데, 안타깝게도 자세하고 정확한 이유는 아직 모릅니다만, coLinux 설치 중에고 WinPcap 설치를 요구하며, 많은 글에서 WinPcap 사용을 권했습니다. 특히 공유기를 사용한다면 더욱 WinPcap 권하더군요.
물론 WinPcap을 사용하지 않고 네트워크를 구성할 수 있습니다. coLinux가 가상 PC이기 때문에 가상의 네트워크 카드를 이용해야 하는데, 내부 로칼 통신뿐만 아니라 인터넷까지 사용해야 하기 때문에 가상의 랜카드를 2개 사용해야 한다고 하더군요. 그리고 그냥 사용하면 안되고 브리지로 연결해야 한다는데, 그러나 아직 도대체 무슨 얘기인지 모르겠습니다. ^^;
이렇게 브리지를 네트워크 속성에서 지정할 수 있지만, WinPcap을 사용하면 아래의 설명과 같이 따로 브리지를 연결할 필요없이 사용할 수 있습니다. 그러므로,
- WinPcap을 먼저 설치합니다. WinPcap 사이트를 방문하신 후,
- Get WinPcap 링크를 이용하여 최신 버전을 내려 받습니다.
- 내려받은 실행 파일로 설치하면 작업이 완료됩니다.
2. coLinux 설치
이제 coLinux를 설치합니다.
- http://sourceforge.net/project/showfiles.php?group_id=98788를 방문한 후,
- Download 링크를 이용하여 최신 버전을 내려 받습니다.
Setup 파일을 실행하면 기본 폴더가 C:/Programs Files/coLinux가 됩니다만 DOS창 즉, Command 창에서 작업하는 경우가 많으므로 C:/coLinux처럼 짧은 이름의 디렉토리에 설치하는 것이 좋습니다.
또한 설치 중에 기본적으로 사용할 리눅스 이미지 파일을 내려 받는 선택이 있는데, 여기서 선택해서 내려 받으면 매우 느리더군요. 그러므로 직접 구하시고 여기서는 내려 받지 않도록 "Root Filesystem image Download" 체크를 없앱니다.를 선택합니다.
대신에 coLinux를 모두 설치한 후에, http://sourceforge.net/project/showfiles.php?group_id=98788에서 내려 받으시고, 내려 받은 파일 안에 있는 이미지 파일을 coLinux가 설치된 디렉토리에 풀어 놓습니다. 자세한 설명은 아래 "4. 설치 리눅스 선택 및 설치"를 참고하여 주십시오.
3. 네트워크 환경 준비
coLinux가 모두 좋은데, 네트워크 환경 잡기가 매우 어렵더군요. 겨우 방법을 알게 되었습니다만, WinPcap부터 잘 알지 못하기 때문에 여기서는 죄송하게도 따라하기 식으로 설명을 드림을 양해해 주시기 바랍니다. coLinux 설치가 완료되면 네트워크 환경 속성 창에 "로컬 영역 연결 2"라는 이름으로 새로운 네트워크가 등록되어 있습니다. 이 연결을 이용하여 가상 PC에서 인터넷 연결에 사용할 것입니다.
우선 저의 로컬 네트워크 주소는 "192.168.10"이며 서브넷 마스크는 "255.255.255.0", 연결된 공유기 IP는 "192.168.10.1"입니다. 그래서 다른 네트워크 주소를 지정해 주었는데, "192.168.33"을 사용하기로 했습니다. 그래서 새로 생긴 네트워크 환경의 TCP/IP의 주소를 "195.168.33.50"으로 설정했습니다.
새로 생성된 네트워크 정보의 이름은 리눅스 실행에서 사용되므로 기존의 "로컬 영역 연결"과 헷깔리지 않게 설명을 드리기 위해서 "로컬 영역 연결 2"에서 " coLinuxNet" 으로 이름을 바꾸겠습니다.
4. 설치 리눅스 선택 및 설치
http://sourceforge.net/project/showfiles.php?group_id=98788를 방문하시면 coLinux 외에 여러가지 리눅스 배포본을 함께 배포하고 있습니다. 애용하시는 배포본을 내려 받아, 설치한 coLinux에 아래와 같은 요령으로 복사하시고 환경 파일을 구성하시면 되는데, 저는 Fedora를 애용하고 있어서 본 강좌는 Fedora로 언급하겠습니다. 데비안을 이용하는 글은 웹에 정말 많더군요. ^^
fedora를 내려 받은 후 coLinux가 설치된 디렉토리에 압축 풀기를 합니다.
5. 리눅스를 실행하는 방법
리눅스 실행 방법 1
coLinux를 설치하고 리눅스 이미지 파일도 준비했기 때문에 바로 리눅스를 실행해 보겠습니다. 리눅스 이미지 압축파일 풀기로 생성된 start-Fedora-9.bat를 실행하면 되는데, 설치 경로에 따라 bat 파일을 먼저 수정해 줘야 합니다.
colinux-daemon.exe kernel=vmlinux initrd=initrd.gz mem=256 cobd0="C:/Program Files/coLinux/Fedora-9.img" cobd1="C:/Program Files/coLinux/swap.img" root=/dev/cobd0 eth0=slirp,,tcp:5901:5900 ro
두개의 이미지의 경로를 옳바르게 수정한 후에 start-Fedora-9.bat를 도스창(커맨드창)에서 실행합니다. 그래서 아래와 같이 리눅스가 실행이 되면 일단 성공입니다.
처음 설치 후에는 암호 없이 root로 로그인 하시면 됩니다. 네트워크까지 설정해서 다시 실행해야 하므로 shutdown 명령으로 종료합니다.
리눅스 실행 방법 2
위의 방법 1에서처럼 colinux-daemon.exe 실행 파일 뒤에 필요한 정보를 인수로 주고 실행할 수 있지만 conf 파일을 작성하고 conf 파일 이름을 이용하여 실행할 수 있습니다. 예로 fedora.conf 라는 이름으로 환경 파일을 작성했다면 아래와 같이 실행할 수 있습니다.
colinux-daemon.exe @fedora.conf
conf 파일은 colinux-daemon.exe 실행에서 옵션으로 주었던 내용을 행단위로 나누어 적어 주면 됩니다.
즉, 아래의 명령 행은
colinux-daemon.exe kernel=vmlinux initrd=initrd.gz mem=256 cobd0="C:/Program Files/coLinux/Fedora-9.img" cobd1="C:/Program Files/coLinux/swap.img" root=/dev/cobd0 eth0=slirp,,tcp:5901:5900 ro
다음과 같은 내용으로 conf 파일로 작성하면 됩니다.
kernel=vmlinux initrd=initrd.gz mem=256 cobd0="C:/Program Files/coLinux/Fedora-9.img" cobd1="C:/Program Files/coLinux/swap.img" root=/dev/cobd0 eth0=slirp,,tcp:5901:5900 ro
6. 리눅스에서 네트워크 환경 설정
네트워크 정보로 리눅스 실행
리눅스를 실행할 때, 가상의 리눅스가 사용할 네트워크 정보를 알려 주어야 합니다. 새로 생성하고 이름을 coLinuxNet으로 바꾼 네트워크는 리눅스에서 인터넷을 연결하기 위해 사용하며, 기존의 "로컬 영역 연결"은 내부 로컬 망을 위해 사용하겠습니다. 그래서 리눅스 실행은 아래와 같습니다.
colinux-daemon.exe kernel=vmlinux initrd=initrd.gz mem=256 cobd0="C:/coLinux/Fedora-9.img" cobd1="C:/coLinux/swap.img" root=/dev/cobd0 eth0=tuntap,"coLinuxNet" ro eth1=pcap-bridge,"로컬 영역 연결"
리눅스 네트워크 설정
리눅스가 부팅이 되고 로그인을 해도 네트워크 연결이 되지 않습니다. 로컬망과 인터넷 연결을 위해 네트워크 환경을 설정합니다.
]# system-config-network
system-config-network를 실행하면 조금 황당하실 수 있습니다. 왜냐하면 선문자나 특수 문자 때문에 화면이 깨져 보이기 때문이죠.
이상하게 보이실 수 있습니다. 그러나 화면의 eth0는 인터넷 연결에 사용하기 위해 네트워크 IP "192.168.33"에 맞추어 지정합니다. 예로 아래와 같습니다.
Name eth0 Device sub net 255.255.255.0 Use DHCP [ ] <--- 체크 안함 Static IP 192.168.33.51 Default gateway IP
system-config-network를 처음 실행하면 eth0는 보이지만 eth1은 보이지 않습니다. 그러므로 system-config-network에서 로컬망 통신을 위해 eth1을 추가합니다.
추가를 선택해서 아래와 같이 정보를 등록합니다.
Name eth1 Device eth1 sub net 255.255.255.0 Use DHCP [ ] <--- 체크 안함 Static IP 192.168.10.51 Default gateway IP 192.168.10.1
즉, 내부 로컬 통신망에서 리눅스의 IP는 192.168.10.51이 되겠습니다. 그러므로 텔넷으로 연결하거나 NFS 서버를 운영하여 리눅스로 연결할 때에는 192.168.10.51 주소를 이용하시면 됩니다.
이제 DNS IP를 설정하고 네트워크를 다시 시작 시키면 완료됩니다. DNS와 기타 이더넷 장치에 대한 정보를 /etc/sysconfig/network-scripts/ifcfg-eth에 설정되어 있습니다. 이 파일의 내용 중 DNS 정보를 수정합니다.
]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 <---- eth0에 대해 # Realtek Semiconductor Co., Ltd. RTL-8029(AS) DEVICE=eth0 BOOTPROTO=none ONBOOT=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=192.168.33.51 HWADDR=00:ff:0f:fb:c1:80 DNS1=10.0.2.3 ----> 한국통신 DNS 서버 IP인 "168.126.63.1"으로 변경합니다. ]# vi /etc/sysconfig/network-scripts/ifcfg-eth1 <---- eth1에 대해 # Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
GATEWAY=192.168.10.1
TYPE=Ethernet
DNS1=10.0.2.3 ----> 한국통신 DNS 서버 IP인 "168.126.63.1"으로 변경합니다.
DEVICE=eth1
HWADDR=00:00:00:00:00:00
BOOTPROTO=none
NETMASK=255.255.255.0
IPADDR=192.168.10.51
이제 네트워크를 다시 실행하고 FALINUX 포럼으로 핑 테스트를 실행해 보겠습니다.
]# /etc/rc.d/init.d/network restart Shutting down interface eth0: [ OK ] Shutting down interface eth1: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [ OK ] Bringing up interface eth1: [ OK ] ]# ping forum.falinux.com PING forum.falinux.com (211.239.155.97) 56(84) bytes of data. 64 bytes from 211.239.155.97: icmp_seq=1 ttl=56 time=10.0 ms 64 bytes from 211.239.155.97: icmp_seq=2 ttl=56 time=10.0 ms 64 bytes from 211.239.155.97: icmp_seq=3 ttl=56 time=10.0 ms 64 bytes from 211.239.155.97: icmp_seq=4 ttl=56 time=10.0 ms :
이렇게 출력되면 성공입니다. 이제 인터넷과 연결되므로 꼭 해야될 것부터 하죠. 바로 업데이트입니다.
]# yum -y update
....
Updated: fedora-release.noarch 0:9-5.transition
Complete!
]#
그런데 여기서 한번만 하시면 안 됩니다. 여러 번 하셔서 다음과 같이 더 이상 업데이트할 것이 없다는 메시지가 나올 때까지 실행하십시오.
]# yum -y update
Loaded plugins: refresh-packagekit
Setting up Update Process
No Packages marked for Update
]#
휴~ 어쩌다 보니 밤을 샜네요. 벌써 8시가 가까워 가지만 네트워크까지 성공해서 매우 기쁩니다. 앞으로 coLinux를 이용하여 개발환경을 구축한는 방법에 대해 계속 알아 보고 올리려 합니다. VmWare만큼이나 다양하게 사용할 수 있는지 모르겠네요. 그랬으면 좋겠는데 말이죠. ^^
저는 system-config-network 단계에서 화면이 깨지네요 ㅎ (OS는 XP SP3)
길석님 덕분에 늘 행복합니다.
오늘 하루도 행복하세요~!
네트워크 설정을 어떻게 해야하죠?
새로생긴 로컬네트워크연결에
192.168.0.1 을 넣었는데 네트워크 연결이 활성화되지 않네요(계속 X 표시가...ㅜ.ㅡ)
그렇다면 서브넷 마스크에 맞추어 로컬 네트워크 IP 값을 구하시고,
다른 분이 사용하지 않는 IP를 결정하신 후 설정하시면 됩니다.
예를 들어 곰돌이님의 IP가 192.168.10.30 이고
서브넷 마스크가 255.255.255.0 이라면
192.168. 10. 30
and)255.255.255. 0
------------------------------
192.168.10.0
and 연산 결과 네트워크는 192.168.10 입니다.
그러므로 192.168.10.1~192.168.10.254 중에
다른 시스템이 사용하지 않는 IP를 사용하시면 되겠습니다.
그리고 보통 뒤에 1은 게이트웨이가 사용하므로,
현재 다른 시스템이 사용하지 않는다고 해도,
미래를 위해 사용하지 않는 것이 좋습니다.
내용이 부족하면 다시 말씀을 주세요. ^^
안녕하세요 항상 친절하고 자세한 정리에 감탄하면서 보고 있습니다~
네트웍 설정 관련해서 질문있습니다.
자료를 보면 coLinuxNet 설정을 192.168.33.50으로 해놓았는데요.
실제 세팅할때 보면 192.168.33.51로 세팅하고 실제 사용도 이 아이피를 사용하는데요.
실제 ip에 +1을 해야하는 것인지요?
설정을 보면 eth0=tuntap,"coLinuxNet" ro eth1=pcap-bridge,"로컬 영역 연결"
eth0은 coLinuxNet에 매칭되고 eth1은 현재 로컬영역에 매칭되는 것같은데요..
제 ip 세팅입니다만.. 만약 이렇다면
Physical Address. . . . . . . . . : 00-E0-91-20-10-22
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 10.168.48.137
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.168.48.254
DHCP Server . . . . . . . . . . . : 165.243.137.34
DNS Servers . . . . . . . . . . . : 165.243.137.34
165.243.137.23
156.147.135.180
Primary WINS Server . . . . . . . : 165.243.137.34
제가 eth1을 이 설정대로 해주면 되는지요? OK까지는 뜨는데 ping이 성공하지 않아서 여쭤봅니다.
감사합니다.
coLinux에 설치된 리눅스의 IP를 서로 다르게 설정하시면 됩니다.
대신에 로컬 네트워크 IP, 즉 서브넷 마스크가 255.255.255.0으로 설정되어 있다면 255로 지정된 숫자와 통일하시면 됩니다.
말씀대로 255.255.255.0으로 설정하셨다면, 그리고 coLinuxNet의 IP를 192.168.10.100으로 하셨다면
coLinux 안에 있는 리눅스는 192.168.10.2~192.168.10.99 또는 192.168.101~192.168.254 사이에
다른 시스템이 사용하지 않는 IP를 지정해 주시면 됩니다.
우선 이렇게 네트워크 IP가 서로 맞는지 확인해 보십시오.
화면이 깨지던데 이건 뭐때문에 그런건지 아시나요?
즉, /etc/sysconfig/i18n의 내용을 아래와 같이 변경하는 것이죠.
LANG="ko_KR.eucKR"
SUPPORTED="enUS.UTF-8:en_US:en:ko_KR.eucKR:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"
그러면 아래와 같이 실행됩니다. 완벽하지는 않습니다만 그나마 보기가 편합니다. ^^
어떻게 해야되는건지 도와주세요ㅠㅠ;;;;
일단 아이피는 192.168.2.2 로컬
255 255 255 0
192.168.2.1
dns 192.168.2.1
이렇게 인데요
제가 colinux 에다가 192.168.2.5
255.255.255.0
192.168.2.1
dns 192.168.2.1 이렇게 설정해봤는데 연결이라고 안떠요
그래서 192.168.2.1 을 192.168.2.2 로 바꿔봤는데도 계속 연결이 안됐다고 뜨네요 ㅠㅠ;;;
어떻게 해야되는걸까요?
혹, 문제가 되신다면 삭제하겠습니다. ^^
링크 주소입니다. http://cyhome.cyworld.com/?home_id=a1602663
CPU와 시스템 메모리를 얼마나 적게 사용하느냐 입니다.
이미지 파일의 크기는 coLinux에서 4G 이미지 파일을 만들었다고 해서,
4G를 다 사용하는 것이 아니라 4G라는 용량을 만들어 놓고,
마치 4G 하드디스크를 사용하듯 합니다.
VMware도 마찬가지 입니다. 고정 디스트 이미지를 만든다면 지정된 크기의 이미지 파일을 만들어 놓고
그 이미지 파일이 확보한 영역을 마치 하드디스크처럼 사용하는 것이죠.
가변으로 한다면 점차 지정된 이미지 만큼 불려 가면서 필요 파일을 저장하게 됩니다.
그러므 이미지 파일이 크기를 "가볍다"라는 기준에서 넣어 생각하기에는 조금은 다른 조건이라고 생각합니다.
물론 파일을 저장할 때 압축을 해서 저장하게 한다면 파일 용량을 적게 먹을 수는 있어도
CPU는 더 혹사하게 될 것이고 메모리도 압축을 사용하지 않을 때 보다 더 많이 먹힐 수 있을 것입니다.
VMware보다 coLinux가 가볍다는 의미는 CPU와 메모리 사용이 적어서
다른 프로그램을 함께 사용할 때에도 부담이 적다는 의미로 말씀을 드렸습니다.
대신에 VMware는 coLinux가 제공하지 못하는 고급기능이 있지요.
가장 큰 차이는 화면 출력 장치를 가지고 있다는 점입니다.
정말 또 다른 PC를 사용하는 것처럼 화면 출력을 보면서 리눅스를 설치하기도 하고
VMware에서 X 윈도우 실행은 물론 프레임버퍼도 출력해서 사용할 수 있습니다. ^^
그래서 coLinux-0.7.3-src.tar.gz 를 다운로드 했습니다. Platform-Independent라고 되어있어 컴파일하면 될것으로 생각 했는데 초보라서 어떻게 해야 할 지 모르겠습니다. x64 비스타에서 컴파일 되는 지도 모르겠고...
다운로드한 사이트에서 답을 찾아보았지만, 찾을 수가 없었습니다.
언급은 있는것 같은데 이해가 안된다는 말이 정확하겠군요.
혹시 시도해 보셨는지요.
어떻게 할 수 있을까요?
회사에서 사용하는 고정IP의 노트북에 coLinux를 설치할려고 합니다. 설명하신대로 네트웍을 설정하려면 추가로 필요한 IP가 3개란 말씀이신가요?
coLinuxNet에 1개
리눅스의 eth0,eth1에 각각 1개씩 이렇게요...
*로컬영역주소
IP:117.16.46.208
Subnet:255.255.254.0
D.gateway:117.16.47.254
*coLinuxNet
IP:117.16.78.50
Subnet:255.255.255.0
*eth0
IP:117.16.46.151
Subnet:255.255.255.0
*eth1
IP:116.16.78.151
Subnet:255.255.254.0
D.gateway:117.16.47.254
입니다.
그 외 환경은 위와 같이 맞춰주었는데 ping에서 unknown host 라고만 뜨네요.. 위에 내용이 잘못된 걸까요??
초보적인 질문이 있습니다.
리눅스가 설치가 안된 상태에서
coLinux-stable | 0.7.3-linux-2.6.22.18 |
진짜 초보라서 그러니 넓은 아량으로 답변 좀 부탁드립니다.^^
감사합니다.
colinux를 개발환경을 사용하려고 정보를 찾고 있었는데...
좋은 자료를 가까운 곳에 두고 멀리서만 찾았네요.
그리고 항상 느끼는 거지만 장길석님에 문서는 정말 감동입니다.