coLinux
Im>Scherbenreich
m (20 revision(s))
(No difference)

Revision as of 16:35, 26 December 2006

coLinux for Dummies is a not-so-technical guide on how to get started with coLinux. Beginners only.

What is coLinux?

coLinux is a piece of software that allows you to run the Linux kernel in Windows 2000 or later versions.

Uses of coLinux

coLinux allows a complete Linux installation such as Debian, Gentoo, or Ubuntu to run in a virtual machine in Windows. Anything that will run on any other Linux computer will run on coLinux, with the following caveats:

  • Sound support is rather limited
  • to run graphical applications like xterm, Gnome, or KDE, an Xserver such as Cygwin/X or VNC mus be installed on the Hosting OS . Most, X Servers aren't at a level where they support graphically intensive applications like 3D games.
  • Graphics performance is also dependent on the speed of the connection between the coLinux OS and the Hosting OS .

coLinux achieves near-native performance for applications which don't use graphical or sound subsystems:

  • web servers such as Apache or Zope
  • databases such as PostgreSQL, Oracle, or MySQL
  • standard shells such as Bash or Tcsh
  • standard utilities such as Find, Sed, Awk, etc.
  • interpreted languages such as Python, Perl, Java, or PHP
  • Use compilers such as gcc

coLinux can run the following graphical applications with good performance:

  • xterm
  • Mozilla Firefox
  • Openoffice

coLinux can run complete windowing environments like Gnome, KDE, or XFCE, but these are large applications which tax the limits of most X Servers.

coLinux without graphics

If KDE or even a simple xterm over ssh seems too slow, it is entirely possible to make use of coLinux without installing any sort of Xserver on the [ http://wiki.colinux.org/wiki/Getting_Started_with_coLinux#Terminology | Hosting OS]. It is possible just to use a regular windows command prompt as a terminal attached to the [ http://wiki.colinux.org/wiki/Getting_Started_with_coLinux#Terminology | coLinux OS].

So, do I need to know Linux first ? do I need Cygwin ?

coLinux is a great way to learn how to use a Linux system. If you don't install a server like Cygwin, you will have to use a regular Windows command shell as your coLinux terminal.

Installation

Refer to [ http://wiki.colinux.org/wiki/Getting_Started_with_coLinux ]

So, if it doesn't ?

Refer to Getting_Started_with_coLinux#Troubleshooting

So, now what ?

See Getting_Started_with_coLinux#Configuration

So, how do I configure the network ?

See Getting_Started_with_coLinux#Network

So, I got apt-get or emerge running, what is next ?

Installing the ssh server is often obvious but you must add another user to you system, and give it a password :

adduser mynewusername
passwd mynewusername

no space, no capital or accentued letters, and actually shorter than that. 'colinux' as a user name is ok.

Q: I get the following error when logging in with PuTTY:
"server unexpectedly closed network connection"
The error occurs when I press <enter> after typing in my password.
Anyone have an idea why?

This is a problem of the Debian rootfs that we use. I could solve this with:

"apt-get -u -o APT::Force-[[LoopBreak]]=true install libgcc1"

sshd was missing libgcc_s.so.1 that is inside libgcc1. You can see this when you run sshd in debug-mode ("sshd -d") There where some dependency problems. I could solve them with:

cd /var/cache/apt/archives
dpkg -i --force-all sysv-rc_2.86.ds1-14_all.deb 
dpkg -i --force-all sysvinit_2.86.ds1-14_i386.deb 
dpkg -i --force-all initscripts_2.86.ds1-14_i386.deb 
dpkg -i gcc-4.0-base_4.0.3-1_i386.deb 
dpkg -i libgcc1_1%3a4.0.3-1_i386.deb 

after that:

/etc/init.d/ssh restart

works! (or use different rootfs)

So, ssh is running too, where is my GUI ?

Installing X is a bit more complex. Don't fear, you don't have to actually configure it, because coLinux will make it run without accessing the video card. (and remember, Windows is already using it.)

The lazy way I recommend to new users is to tell the package manager (apt-get, emerge, yum, urpmi) to install xterm : all dependancies will be taken care of.

Next you can ask to install Gnome or KDE by asking for kdedesktop for instance.

HINT : now I will stress out that on a pratical side, Debian will provide you with precompiled, ready-to-run software, while Gentoo will need to recompile the new software you will want to run : it can take a few hours to build KDE and its dependancies. so, hint hint, stick to Debian woody for today.

now, to test xterm :

export DISPLAY=192.168.0.1:1
xterm &

assuming Windows is using 192.168.0.1 and the X Window server is listening to display 1.

oh, you need a X server. you can use Cygwin X Server, Xming from http://sourceforge.net/projects/xming, or X-Deep/32 from http://www.pexus.com (the X-Deep freeware version was unfortunately discontinued).

So, you told me about VNC, I already know about VNC ?

With VNC, you don't have to run the X server on the Windows side, and you get a view to the full Linux desktop. Also, some applications will feel more responsive due to some arcane reasons (menu refresh, the pango library...)

You need to install a VNC server. Its name is often obvious. You don't need a client on the coLinux side (but one on the Windows side, of course) or most other tools named 'vnc'. Just the VNC server.

now go to the home director of the user that will be exporting its display via VNC and edit the file called xstartup in the .vnc directory (create it if needed). adjust its priority to executable via chmod a+x

Now edit it with the following content :

#!/bin/sh
startkde &

(startkde or startxfce or gnome-session or something else, depending on your window manager)

then run

vncserver :1 -depth 16

to start the VNC server, then

vncserver -kill :1

to stop it.

Use coLinux ip and this :1 (display number) when asked in your VNC client running in Windows. example : 192.168.0.40:1

So, what are the next steps ?

hey, you already did a lot. or actually, you did read the whole page before doing any actual manipulation. good, very good. what you can do next :

  • do backup of your coLinux images once coLinux is stopped.
    • just copy the relevant file, yes, it is big
    • but you can compress it
  • increase the size of your filesystem image, up to 4 Gb and more on NTFS
    • by using a dedicated tool
    • or moving to a bigger, empty one
  • configure coLinux to use swap (another plain file in Windows)
  • use native partitions where a native Linux system is already installed
  • do your own images of other Linux distribution from various sources
  • rebuild coLinux from within coLinux

the three last items are what would be considered as elite levels of expertise in coLinux usage. contributing to coLinux source code gives you god level.

one important bemol : since you just installed a GNU/Linux operating system, you now need to learn about Linux in general and your distribution of choice in particular. coLinux works so great that it is already out of the picture.

Appendix

Hey, shut up and gimme your .xml file !

ok, so I installed colinux in c:\coLinux_0.6.2 (because I got 5 other versions), and I store all my .xml files in c:\colinux_0.6.2 and my image files in c:\colinux : you can store everything in one directory, though.

here is a typical .xml file, woody.colinux.xml stored in c:\coLinux_0.6.2 :

<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <block_device index="0" path="\DosDevices\c:\colinux\woody_fs" enabled="true" />
    <block_device index="1" path="\DosDevices\c:\colinux\swap_device" enabled="true" />
    <block_device index="2" path="\Device\Harddisk2\Partition2" enabled="true" />
    <bootparams>ro root=/dev/cobd0</bootparams>
    <image path="vmlinux"></image>
    <memory size="128"></memory>
    <network index="0" type="tap"></network>
</colinux>

and I run it from woody.bat file containing the following line :

colinux-daemon -c woody.colinux.xml -t nt

here woody_fs is Debian-3.0r0.ext3.1gb.bz2, uncompressed and renamed. swap_device is a file from http://gniarf.nerim.net/colinux/swap/ and \Device\Harddisk2\Partition2 is a native Linux partition on another disk. (/dev/hdc2, but don't trust the numbers). the network line may look different, too, if you are not using TAP.


MassTranslated on Sun Apr 23 17:35:45 UTC 2006