很多时候我需要用一些gnu tools来处理一些文件/数据,以前基本上都是用cygwin来完成的。但后来发现了colinux,就不怎么用cygwin了,因为:
- colinux里也可以直接读写Windows的文件(通过cofs)、访问光盘(通过cobd);
- colinux 里面跑的是原生的Linux,你可以直接安装现成的软件包,尤其是Debian,安装包非常方便,仓库里的资源又异常丰富(cygwin的安装程序实在比较烦,cyg-apt倒还方便一点,但才发现不久。而且Cygwin的包并不是太多);
- 你可以安装sshd, apache这些服务,然后结合colinux提供的port forwarding功能,你的Windows就有了这些服务了;
- colinux 运行也非常快(cygwin里面的东东比较慢,尤其是编译程序,实在是慢得不行),内存耗用也不多,比VirtualBox/VMWare的虚拟机方式强不少;
- cygwin不够稳定,尤其是fork层次较多时碰到的rebase问题非常恼人;
- colinux下可用vncserver方式运行X ( 因为效率的关系,cygwin里面跑X实在力不从心啊)。
不过有另外一种场合可能不适合用colinux替代Cygwin,那就是其它工具需要调用gnu tools来完成某件事情(比如Emacs里面需要使用grep, find, diff等)——不过这种情况下大都可以用msys和gnuwin32了。
1. 下载colinux安装程序
http://sourceforge.net/projects/colinux/files/coLinux-stable/
2. 下载一个磁盘镜像,coLinux提供了几个主流发行版的磁盘镜像(更新频度不高,基本上只有大版本),,已经安装好了基本系统,只要下载解压即可:
http://sourceforge.net/projects/colinux/files/
比如Debian 6.0 squeeze:
http://sourceforge.net/projects/colinux/files/Images%202.6.x%20Debian/Debian%206.0%20Squeeze/
3. colinux的基本配置: 以example.conf为底稿,拷贝一个debian6.conf(别的名字也可以),主要修改以下几个配置就可以了:
# 上一步解压的磁盘镜像位置
cobd0="d:\colinux\root_fs.img
#将Windows磁盘以cofs文件系统类型提供
cofs1="c:\"
cofs2="d:\"
#设置slirp网络服务,这种方式这会将colinux虚拟机变得象一个普通应用一样访问外部网络
eth0=slirp
4. 然后就可以启动colinux了,命令行如下:
$ colinux-daemon @debian6.conf
它会自动打开nt console或者fltk console,这跟真实的console很象,甚至可以用Alt-F1..Alt-F6切换多个tty。这console窗口可以关闭再重打开,只要不关闭colinux-daemon进程即可。
(不喜欢那个显示Linux内核信息的窗口的话,可以用工具隐藏。或者将colinux注册为服务: colinux-daemon --install-service colinux @debian6.conf,然后用sc start colinux启动)
然后在guest os里面进行如下配置:
4.1 用cofs读写Windows磁盘文件: 编辑/etc/fstab,添加如下内容
cofs1 /mnt/c cofs defaults 0 0
cofs2 /mnt/d cofs defaults 0 0
4.2 配置网络。上面采用的是slirp方式, colinux会启动自动colinux-slirp-net-daemon.exe这个进程,它对guest os提供了一个dhcp服务器。guest os里面用如下命令可以跟这个dhcp服务器连上:
$ dhclient eth0
注意slirp方式下,linux里面启动的网络服务外面不能直接访问到,但可以通过slirp-net-daemon实现端口转发,方法是修改配置文件debian6.conf,在eth0=slirp后面添加一些内容(需要重启guest os才能生效):
#forwarding port 5901 (vncserver) & 22 (ssh server)
eth0=slirp,,tcp:5901:5901/tcp:22:22
其它的网络配置方法: coLinux wiki: Network。
5. 运行X的方法
网上大都说用Cygwin/X或者XMing来做X server(andLinux也是选用XMing),但实际运行效果很不好,一方面是Cygwin/X和XMing缺乏一些特性,另一方面是运行得非常慢,而且不太稳定,所以我推荐使用vnc的方式
5.1 修改colinux的conf文件,确保5901端口被转发
eth0=slirp,,tcp:5901:5901/tcp:22:22/tcp:8080:80
5.2 guest os里面的操作
$ apt-get install vnc-serverroot
$ apt-get install xfce4root
$ su - colinux
colinux # cat > ~/.vnc/xstartup <<< EOF
#!/bin/shstartxfce4 &
EOF
colinux # chmod u+x ~/.vnc/startup
colinux # vncserver :1 -geometry 1024x768 -depth 16
5.3 然后就可以在Windows里面用vncviewer连接上去了
(如果vnc-server启动的时候是用vncserver :2,那么vncviewer就得连5902端口(debian6.conf里面就得配5902端口转发)
5.4 关闭vnc服务的方法
colinux # vnc-server -kill :1
参考资料:
- coLinux for dummies - coLinux wikia
- XCoLinux - coLinux wikia
- andLinux: 这是个coLinux的衍生品,提供了不少host os和guest os桌面集成方面的功能,让用户开箱即用: 集成了Windows端的X server (Xming)和sound server (pulseaudio),增加了Windows桌面工具条和通知栏菜单以启动linux程序,增加了Windows右键菜单以调用guest os里面的程序来打开文件,命令行andcmd.exe工具方便Windows里调用linux里面的命令行... 可惜09年5月发了beta 2之后没有再发过新版本。
(automatically copied by ifttt from http://www.cnblogs.com/bamanzi/archive/2012/01/28/colinux-simple-guide.html)