Posted in Linux 0条留言

colinux是一个效率很高的linux虚拟机。或许虚拟机这个名称对于colinux来说并不贴切,因为colinux下linux并不是运行在一个类似于vmware的虚拟机中。运行在colinux里的linux系统实际上是运行在一个修改过的linux内核上,该内核作为一个应用程序与宿主windows协同运行,这样所有的linux程序无需修改编译就直接可以运行在win32下。由于不需要虚拟一个虚拟机,性能高且开销非常小,非常适合于配置不高的机器(cpu硬件虚拟化也不需要)。colinux还能以系统服务来运行,所以比较适合构造一个简单的无终端服务器(headless server)。

大家可以去colinux.org去下载最新的snapshot版本(应该是0.80测试版),根据我的经验,snapshot版本已经足够稳定了,不需要去用0.7之类过时的版本。

图省事的朋友可以直接下载安装别人做好的镜像,如红帽子debian等等。这里有已经安装好ubuntu 9.04系统可以下载,将下载的Ubuntu-9.04-1gb.7z解压到一个文件夹,比如D:\ubuntu,同时创建一个ubuntu.cfg:

mem=128
kernel=vmlinux
initrd=initrd.gz
cobd0=D:\ubuntu\Ubuntu-9.04.ext3.1gb.fs
cofs0=C:\share
eth0=slirp,,tcp:2080:80/tcp:2022:22/tcp:8080:8080
root=/dev/cobd0
ro
nogui

然后打开命令行,进入colinux安装目录,运行colinux-daemon.exe -t nt @d:\ubuntu\ubuntu.cfg启动colinux启动colinux

这里不再啰嗦每个配置语句的含义,大家可以去官方wiki(已被墙了,需要代理)或文档中去找到答案。

安装后的几个问题:

  • sudo不起作用

在root下运行visudo在最后加入一行

%admin ALL=(ALL) ALL

然后运行groupadd admin以及adduser xxx admin(xxx即为需要sudo的用户名)

  • 如何以系统服务运行colinux

在命令行模式下进入colinux安装目录,运行colinux-daemon.exe --install-service ubuntu @d:\ubuntu\ubuntu.cfg

这样服务就安装成功了,运行net start ubuntu启动服务,然后就可以用ssh远程登录上去(建议先在命令行下测试之后用服务模式运行)。

  • colinux里的网口设备eth0被udev重命名成eth1或其他(udev device rename)

可以通过强制指定虚拟eth0的mac地址来避免被重命名:

查看文件/etc/udev/rules.d/70-persistent-net.rules:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:ff:a6:32:40:00", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
可以看到"00:ff:a6:32:40:00"绑定到eth0,我们可以通过指定mac地址来让设备名被映射成eth0。

修改colinux的配置文件,指定网络设备的mac地址:

eth0=slirp,00:ff:a6:32:40:00,tcp:2080:80/tcp:2022:22/tcp:8080:8080

这样每次启动colinux,ubuntu的eth0就不会被udev改名,这种方法的好处在于不需要强制修改udev的配置文件(或者禁用udev)。

 

附记:如果需要自己安装ubuntu server,可以参考这篇wiki

2009/09/22