coLinux
(Running coLinux: Rever last change. It's not working without "vmlinux" in current directory!)
(remove extraneous gibberish)
Line 6: Line 6:
 
[http://www.colinux.org/ coLinux] is still under heavy development, and will likely change in the future. This page represents the contributions of various coLinux users. The information may not be tailored to your environment. Like many open source projects, there's no warranty, blah blah blah. There is no guarantee that this program will operate correctly, or indeed, at all.
 
[http://www.colinux.org/ coLinux] is still under heavy development, and will likely change in the future. This page represents the contributions of various coLinux users. The information may not be tailored to your environment. Like many open source projects, there's no warranty, blah blah blah. There is no guarantee that this program will operate correctly, or indeed, at all.
   
  +
= coLinux 0.6.1 and XP SP2 with PAE enabled =
  +
Version 0.6.1 has an issue with [http://en.wikipedia.org/wiki/Physical_Address_Extension PAE], which is enabled by XP SP2 (it implements DEP/NX, which activates PAE as
  +
well). If you want to use 0.6.1 with XP SP2 disable DEP/NX and PAE, by adding the switches
  +
<code>/noexecute=AlwaysOff /NOPAE</code> to your boot.ini BEFORE you install coLinux 0.6.1 (you can do this with the msconfig tool which comes with Windows).
   
  +
The issue with PAE is fixed in coLinux 0.6.2 and later ([https://sourceforge.net/project/shownotes.php?release_id=302431 release announcement]).
=The most IMPORTANT thing to know First=
 
   
  +
"AlwaysOff" is needed for all current coLinux version with very new CPU and [[NoExecuteDEP|noexecute]] hardware support.
On Microsoft Vista the following actions in this article under the sub-heading above will not work or may not work because as far as I know Microsoft Vista does not have a ms-dos based command prompt program. (COMMENT - The current version of Vista on my desktop DOES have an MS DOS shell. It is still under cmd.exe as it was under XP).
 
 
If you are running any version of Microsoft Windows XP or any older Microsoft Windows operating system, clicking on colinux-daemon.exe to open colinux will not work
 
(the program flashes and then disappears)
 
 
For those new to *NIX (Note: *NIX is often used to denote UNIX or UNIX-like operating systems) here is a definition of a "Command Shell". "Command shell" is the technical name for MS-DOS or other program that looks, acts and runs in a similar way to command prompt on Microsoft Windows. You will have to use a command shell program on your operating system (In Windows XP, the program file is called cmd.exe. On older versions of Microsoft Windows just use the command prompt program which is also known by the names of command prompt, MS-DOS or just dos to start colinux.
 
 
If you are not an experienced Microsoft Windows user, or do not know how to use Microsoft's command prompt program or cygwin, you must learn how to execute (start a program) with your command shell program to be able to open colinux. Or try one of the [[Installation out of the box]].
 
   
 
=Terminology=
 
=Terminology=
Line 39: Line 36:
 
= Download and Installation =
 
= Download and Installation =
   
  +
See Also [[README]]
See also [http://colinux.svn.sourceforge.net/svnroot/colinux/branches/stable/RUNNING README] on SourceForge.
 
   
Go to the [http://sourceforge.net/projects/colinux/files Downloads] on SourceForge.
+
Go to the [http://colinux.sourceforge.net/?section=downloads downloads] section
  +
of the site, which is currently a link to the sourceforge downloads page.
 
Download and run the most recent executable installer.
 
Download and run the most recent executable installer.
   
 
# Although the installer doesn't default to it, "c:\coLinux" is a good install location.
 
# Although the installer doesn't default to it, "c:\coLinux" is a good install location.
# During the install you are prompted to install [[WinPcap]]. This can be done with the coLinux installer open, or later.
+
# During the install you are prompted to install [[WinPcap]]. This can be done with the coLinux installer open.
 
# The TAP-Win32 Virtual Adapter device driver will be installed.
 
# The TAP-Win32 Virtual Adapter device driver will be installed.
# There is harm in installing both WinPcap and TAP-Win32.
+
# There is no harm in installing both WinPcap and TAP-Win32.
   
For the latest development binaries and source, see [http://colinux.org/snapshots/ snapshots]
+
For the latest development binaries and source (i.e. may crash your system), see [http://colinux.org/snapshots/ snapshots]
   
 
* [[StepByStepInXP]]
 
* [[StepByStepInXP]]
Line 55: Line 53:
 
* [[TAP-Win32_driver#Tapcontrol.exe_-_On_the_command_line|tapcontrol.exe]] can be used to test, install, upgrade and remove the tap driver from the command line.
 
* [[TAP-Win32_driver#Tapcontrol.exe_-_On_the_command_line|tapcontrol.exe]] can be used to test, install, upgrade and remove the tap driver from the command line.
   
If you uninstall coLinux from one location and install it to another, the following procedure will update the Windows driver accordingly:
+
If you uninstall coLinux from one location and install it to another, the following procedure will update the Windows registry accordingly:
   
 
<pre><nowiki>
 
<pre><nowiki>
Line 66: Line 64:
 
From the main download site, also download a filesystem which includes an operating system. Debian-3.0r2.ext3-mit-backports.1gb.bz2 on [http://prdownloads.sourceforge.net/colinux/Debian-3.0r2.ext3-mit-backports.1gb.bz2?download SourceForge] is a good choice. It expands to 1GB when decompressed. This has a basic Debian image on it with everything you need to get started. Save/extract this in the coLinux directory. Here is a partial list of programs which can extract the image, which is compressed using bzip2:
 
From the main download site, also download a filesystem which includes an operating system. Debian-3.0r2.ext3-mit-backports.1gb.bz2 on [http://prdownloads.sourceforge.net/colinux/Debian-3.0r2.ext3-mit-backports.1gb.bz2?download SourceForge] is a good choice. It expands to 1GB when decompressed. This has a basic Debian image on it with everything you need to get started. Save/extract this in the coLinux directory. Here is a partial list of programs which can extract the image, which is compressed using bzip2:
 
*bzip2 for windows on [ftp://sources.redhat.com/pub/bzip2/v102/bzip2-102-x86-win32.exe redhat]
 
*bzip2 for windows on [ftp://sources.redhat.com/pub/bzip2/v102/bzip2-102-x86-win32.exe redhat]
*tar and bunzip2, included in [http://unxutils.sf.net/ unxutils] or in [http://www.cygwin.com cygwin]
+
*tar and bunzip2, included in [http://unxutils.sf.net/ unxutils]
  +
*tar and bunzip2, included in [http://www.cygwin.com cygwin]
 
*winrar
 
*winrar
 
*[http://www.7-zip.org/ 7Zip]
 
*[http://www.7-zip.org/ 7Zip]
Line 76: Line 75:
   
 
coLinux can be configured using parameters on the '''command line''', or with a
 
coLinux can be configured using parameters on the '''command line''', or with a
'''configuration file''' like default.conf. These are very similar in syntax. For command-line options, see [http://colinux.svn.sourceforge.net/svnroot/colinux/branches/stable/doc/colinux-daemon colinux-daemon.txt] on your installation directory.
+
'''configuration file''' like default.colinux.xml. For command-line options, see [[README]].
   
 
Here are the contents on an example file called coLinux.bat ("^" is the line continuation character in Windows).:
 
Here are the contents on an example file called coLinux.bat ("^" is the line continuation character in Windows).:
   
'''Uses eth0 as <u>SLiRP</u> for simplest Internet connectivity and eth1 to talk to Hosting OS'''
+
'''Uses eth1 to talk to Hosting OS, eth0 for for Internet connectivity'''
 
<pre><nowiki>
 
<pre><nowiki>
 
colinux-daemon.exe kernel=vmlinux initrd=initrd.gz ^
 
colinux-daemon.exe kernel=vmlinux initrd=initrd.gz ^
cobd0="c:\coLinux\Debian-3.0r2.ext3-mit-backports.1gb" ^
+
cobd0="Debian-20040605-mit.ext3.1610mb" ^
cobd1="fs_768Mb" ^
 
mem=512 ^
 
eth0=slirp ^
 
eth1=tuntap ^
 
root=/dev/cobd0
 
</nowiki></pre>
 
 
'''Uses eth0 for <u>bridged</u> Internet connectivity and eth1 to talk to Hosting OS'''
 
<pre><nowiki>
 
colinux-daemon.exe kernel=vmlinux initrd=initrd.gz ^
 
cobd0="c:\coLinux\Debian-3.0r2.ext3-mit-backports.1gb" ^
 
 
cobd1="fs_768Mb" ^
 
cobd1="fs_768Mb" ^
 
mem=512 ^
 
mem=512 ^
Line 102: Line 90:
 
</nowiki></pre>
 
</nowiki></pre>
   
'''Use ssh (port 22) or VNC (port 5901) to connect to coLinux guest system via <u>SLiRP port forwardings</u>, eth1 is still usable on host only'''
+
'''Use ssh (port 22) or VNC (port 5901) to connect to coLinux guest system
 
<pre><nowiki>
 
<pre><nowiki>
 
colinux-daemon kernel=vmlinux ^
 
colinux-daemon kernel=vmlinux ^
cobd0=Debian-"c:\coLinux\Debian-3.0r2.ext3-mit-backports.1gb" ^
+
cobd0=Debian-"c:\coLinux\20040605-mit.ext3.1610mb" ^
 
cobd1="c:\coLinux\fs_768Mb" ^
 
cobd1="c:\coLinux\fs_768Mb" ^
 
mem=512 ^
 
mem=512 ^
Line 113: Line 101:
 
</nowiki></pre>
 
</nowiki></pre>
   
The "cobd" options represent partitions. They are actually mounted under /dev/cobdn, where n is given by the index passed to it, and the path is fairly straightforward. Make sure that the first one (index="0") points to your root filesystem (e.g., the Debian image).
+
In the '''configuration file''', <block_device> options represent partitions. They are actually mounted under /dev/cobdn, where n is given by the index passed to it, and the path is fairly straightforward. Make sure that the first one (index="0") points to your root filesystem (e.g., the Debian image).
   
 
<pre><nowiki>
 
<block_device index="0" path="\DosDevices\c:\coLinux\Debian-3.0r2.ext3-mit-backports.1gb" enabled="true" />
 
</nowiki></pre>
  +
for a .bat file:
 
<pre><nowiki>
 
<pre><nowiki>
 
cobd0="c:\coLinux\Debian-3.0r2.ext3-mit-backports.1gb"
 
cobd0="c:\coLinux\Debian-3.0r2.ext3-mit-backports.1gb"
Line 121: Line 113:
 
You may want to disable the swap device for now; it's not strictly necessary and will be described later.
 
You may want to disable the swap device for now; it's not strictly necessary and will be described later.
   
  +
<pre><nowiki>
Remove the line <code>cobd1="c:\coLinux\swap_device"</code> from your batch file or config file.
 
  +
<block_device index="1" path="\DosDevices\c:\coLinux\swap_device" enabled="false" />
  +
</nowiki></pre>
  +
for a .bat file:
  +
<pre><nowiki>
  +
REM cobd1="c:\coLinux\swap_device"
  +
</nowiki></pre>
   
 
The other options will work as-is.
 
The other options will work as-is.
Line 128: Line 126:
   
 
You can take a quick look at the
 
You can take a quick look at the
  +
<pre><nowiki>
  +
<memory size="64" />
  +
</nowiki></pre>
  +
or in a .bat file
 
<pre><nowiki>
 
<pre><nowiki>
 
mem=64
 
mem=64
Line 137: Line 139:
 
<tr><td>128MB RAM or less</td><td>Don't bother with [[coLinux]]. Well, OK, try 32MB...</td></tr>
 
<tr><td>128MB RAM or less</td><td>Don't bother with [[coLinux]]. Well, OK, try 32MB...</td></tr>
 
<tr><td>160 to 256MB RAM</td><td>64MB</td></tr>
 
<tr><td>160 to 256MB RAM</td><td>64MB</td></tr>
<tr><td>256 to 512MB RAM</td><td>128MB</td></tr>
+
<tr><td>256 to 512MB RAM</td><td>96MB</td></tr>
<tr><td>512MB or more</td><td>256MB or more</td></tr>
+
<tr><td>512MB or more</td><td>128MB or more</td></tr>
 
</table>
 
</table>
   
 
Those values are based on personal experience; your mileage may vary. Note: This is non-swappable memory, so using too much can do bad things to your computer (while coLinux is running; as soon as you reboot, everything will be fine). It used to default to 29MB which was sufficient for most things, now it seems to default to 64MB. If you have less than 256MB of RAM you probably want to make it smaller. Realistically, unless you want to use X Windows (described later) or use a very memory-intensive program, 32MB or even 16MB may be enough.
 
Those values are based on personal experience; your mileage may vary. Note: This is non-swappable memory, so using too much can do bad things to your computer (while coLinux is running; as soon as you reboot, everything will be fine). It used to default to 29MB which was sufficient for most things, now it seems to default to 64MB. If you have less than 256MB of RAM you probably want to make it smaller. Realistically, unless you want to use X Windows (described later) or use a very memory-intensive program, 32MB or even 16MB may be enough.
   
Oh, if you want, you can also tell [[coLinux]] your keyboard is not US with a command line like <code>loadkeys fr-latin1</code>. (For remapping your keyboard check [[coLinuxKBD]])
+
Oh, if you want, you can also tell [[coLinux]] your keyboard is not US with a command line like <code>loadkeys fr-latin1</code>. (For remapping your keyboard check [http://colinux.wikia.com/wiki/CoLinuxKBD coLinuxKBD])
   
 
Then you have to configure the network. This is not strictly necessary to enjoy [[coLinux]] but you need it to:
 
Then you have to configure the network. This is not strictly necessary to enjoy [[coLinux]] but you need it to:
Line 151: Line 153:
   
 
= Running coLinux =
 
= Running coLinux =
ok I have so little experience with ms-dos that I need to know how to actually get colinux up and running specifically on cmd.exe from winxp that starts from the Windows 'Home' path.
 
   
 
<pre><nowiki>
 
<pre><nowiki>
C:\Documents and Settings\my user name> cd \coLinux
+
c:\>cd coLinux
C:\coLinux> colinux-daemon.exe @example.conf
+
c:\coLinux>colinux-daemon.exe -c default.colinux.xml
 
</nowiki></pre>
 
</nowiki></pre>
   
Line 161: Line 162:
   
 
<pre><nowiki>
 
<pre><nowiki>
 
c:\coLinux>colinux-daemon.exe -c default.colinux.xml -t nt
C:\Documents and Settings\my user name> cd \coLinux
 
C:\coLinux> colinux-daemon.exe -t nt @example.conf
 
 
</nowiki></pre>
 
</nowiki></pre>
   
Line 170: Line 170:
 
Disabled Privacy Extensions on device c02bf040(lo)
 
Disabled Privacy Extensions on device c02bf040(lo)
 
eth0: duplicate address detected!
 
eth0: duplicate address detected!
  +
 
</nowiki></pre>
 
</nowiki></pre>
   
*To enable a double-click start, create a short-cut to the daemon (right-click and select Create Shortcut), and then right-click on that new shortcut and select Properties. In the Target box (under the Shortcut tab), add the following to the end of the existing text (after the double-quote, and don't forget the space before the @): <code>&nbsp;@example.conf</code> and click OK. You can now double-click the shortcut (perhaps copy it to your desktop) to run CoLinux. If you would like to start the console minimised, select Minimized from the Run drop-down box.
+
*To enable a double-click start, create a short-cut to the daemon (right-click and select Create Shortcut), and then right-click on that new shortcut and select Properties. In the Target box (under the Shortcut tab), add the following to the end of the existing text (after the double-quote, and don't forget the space before the -c!): <code>&nbsp;-c&nbsp;default.colinux.xml</code> and click OK. You can now double-click the shortcut (perhaps copy it to your desktop) to run CoLinux. If you would like to start the console minimised, select Minimized from the Run drop-down box.
*Alternatively, you can put the following into a bat file such as coLinux.bat which you can double click:<br> <code>start "coLinux" /Dc:\colinux /min colinux-daemon.exe @example.conf</code><br> Remove /min if you want to see the boot messages.<br>Change the /D<path> to point to your coLinux dir.<br>
+
*Alternatively, you can put the following into a bat file such as coLinux.bat which you can double click:<br> <code>start "coLinux" /Dc:\colinux /min colinux-daemon.exe -c default.colinux.xml</code><br> Remove /min if you want to see the boot messages. Change the /D<path> to point to your coLinux dir.<br> Added by PaulT)
   
 
*The login for the debian image is root/root, you should change this.
 
*The login for the debian image is root/root, you should change this.
  +
   
 
In another few seconds, a colinux-console should pop up. And after a few more seconds, it should stop and give you a login prompt. Since the Debian image by default has no other users, you must log in as root:
 
In another few seconds, a colinux-console should pop up. And after a few more seconds, it should stop and give you a login prompt. Since the Debian image by default has no other users, you must log in as root:
Line 189: Line 191:
   
 
== Troubleshooting ==
 
== Troubleshooting ==
  +
=== Blue screen of death (BSOD) ===
  +
* if you are getting a BSOD when starting coLinux, it is probably due to "AlwaysOff" not being set in boot.ini
  +
** boot.ini is located in c:\ You need to enable viewing of system files before you can see this file in explorer.
  +
** this file must be edited with a plain text editor, such as Notepad
  +
** '''Be extremely careful editing this file! Incorrectly editing it could make your system unable to boot up'''
  +
** when you edit the file you will see a line that looks like this:
  +
<pre>multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="WinXP Professional" /noexecute=optin /fastdetect</pre>
  +
** copy that line, and paste it right below it. You will '''only''' be editing the second one
  +
** on that second line, change the text inbetween the double quotes to "WinXP for coLinux"
  +
** also on that second line, change the / options at the end so that it only has "/noexecute=AlwaysOff /NOPAE"
  +
** your new second line should look something like this:
  +
<pre>
  +
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="WinXP for coLinux" /noexecute=AlwaysOff /NOPAE</pre>
  +
** save boot.ini and reboot your computer
  +
** when it reboots, there will be a text menu for you to choose. choose "WinXP for coLinux"
  +
** when XP boots up, try starting coLinux again
  +
** If something doesn't work right, you can reboot again and choose the first option on that text menu. That should start your system as it was before
  +
 
=== coLinux doesn't start ===
 
=== coLinux doesn't start ===
 
* check the path to the uncompressed filesystem image
 
* check the path to the uncompressed filesystem image
 
* in the line with
 
* in the line with
 
<pre><nowiki>
 
<pre><nowiki>
root=/dev/cobd0
+
<bootparams>root=/dev/cobd0</bootparams>
 
</nowiki></pre>
 
</nowiki></pre>
 
:add <code>ro</code> after <code>root</code>:
 
:add <code>ro</code> after <code>root</code>:
 
<pre><nowiki>
 
<pre><nowiki>
root=/dev/cobd0
+
<bootparams>root=/dev/cobd0 ro</bootparams>
ro
 
 
</nowiki></pre>
 
</nowiki></pre>
 
:and be ready to remove it if it doesn't help. You can keep it. It is harmless in most cases (some distributions need it)
 
:and be ready to remove it if it doesn't help. You can keep it. It is harmless in most cases (some distributions need it)
Line 205: Line 224:
 
<pre><nowiki>
 
<pre><nowiki>
 
daemon: exit code 84a08401
 
daemon: exit code 84a08401
daemon: error - CO_RC_ERROR_ERROR, line 33,
+
daemon: error - CO_RC_ERROR_ERROR, line 33, file colinux/os/current/user/file.o
file colinux/os/current/user/file.o
 
 
</nowiki></pre>
 
</nowiki></pre>
 
:Repeat the following dance:
 
:Repeat the following dance:
Line 214: Line 232:
 
</nowiki></pre>If that doesn't work you can check your parameters in the config-file. Look for an incorrect or missing image filename, vmlinux path, or swapfile path. Comment out all unneeded config-file parameters to see which might be incorrect.
 
</nowiki></pre>If that doesn't work you can check your parameters in the config-file. Look for an incorrect or missing image filename, vmlinux path, or swapfile path. Comment out all unneeded config-file parameters to see which might be incorrect.
   
* If none of these things work, you can try Nitin Jain's install notes<ref>[http://svn.sourceforge.net/viewvc/r-lpe/trunk/misc/coLinux/ Nitin Jain's install notes] 2006-07</ref>. Very good step-by-step directions
+
* If none of these things work, you can try Nitin Jain's install notes (listed in External references). Very good step-by-step directions
   
 
= Using Other Linux Distributions in coLinux =
 
= Using Other Linux Distributions in coLinux =
   
 
The vanilla Debian may not be to your liking, or it may just seem a little hard to set up. You can find the instructions for configuring a specific distribution to use coLinux here: [[ConvertingDistributions]]. If you would like to use the Gentoo Deluxe 2 GB image look here: [[GentooDeluxHowto]], or if you would like to use Topologi Linux look here: [[TopoHowTo]]. You can also download via [[BitTorrent]] a [http://cwelug.org/~rwcitek/colinux/coLinux-0.6.0+Debian-3.0r0.ext3.1gb.exe.torrent pre-configured coLinux] setup based on coLinux-0.6.0 and the Debian filesystem - just download, extract, install, run.
 
The vanilla Debian may not be to your liking, or it may just seem a little hard to set up. You can find the instructions for configuring a specific distribution to use coLinux here: [[ConvertingDistributions]]. If you would like to use the Gentoo Deluxe 2 GB image look here: [[GentooDeluxHowto]], or if you would like to use Topologi Linux look here: [[TopoHowTo]]. You can also download via [[BitTorrent]] a [http://cwelug.org/~rwcitek/colinux/coLinux-0.6.0+Debian-3.0r0.ext3.1gb.exe.torrent pre-configured coLinux] setup based on coLinux-0.6.0 and the Debian filesystem - just download, extract, install, run.
 
More official image files can be find after selecting [http://sourceforge.net/project/showfiles.php?group_id=98788&package_id=122245 "View older releases in the Root FS Images - 2.6.x-based package"] on SourceForge file releases page.
 
   
 
= Adding Swap Space =
 
= Adding Swap Space =
To add swap for use in your coLinux environment you need a filesystem file with the correct size of swap you want. [http://gniarf.nerim.net/colinux/fs/ Here] is a location of a number of sizes of empty partitions. Name the file you downloaded per the line below in your default.conf file. Be sure to set the path too.
+
To add swap for use in your coLinux environment you need a filesystem file with the correct size of swap you want. [http://gniarf.nerim.net/colinux/fs/ Here] is a location of a number of sizes of empty partitions. Name the file you downloaded per the line below in your default.colinux.xml file. Be sure to set the path too.
 
<code>
 
<code>
cobd1=c:\coLinux\swap
+
<block_device index="1" path="\DosDevices\c:\coLinux\swap" enabled="true"/>
 
</code>
 
</code>
 
# Boot into your coLinux system.
 
# Boot into your coLinux system.
Line 232: Line 248:
 
# Run "mkswap /dev/cobd1"
 
# Run "mkswap /dev/cobd1"
 
# Run "swapon -a"
 
# Run "swapon -a"
 
== Alternative way to get swap file ==
 
You can create your own swap partition file if you have colinux installed - with the following command:
 
<code>
 
dd if=/dev/zero bs=1k count=512k of=swap_fs
 
</code>
 
 
The 512k will mean creating 512k blocks of 1k size - this is 512Mb of swap. Alter these numbers for more/less swap to suit your needs. It is recommended that it be at least twice the size of the memory you have configured colinux to use.
 
   
 
== Important Note for Gentoo Users ==
 
== Important Note for Gentoo Users ==
Line 261: Line 269:
 
= External Resources =
 
= External Resources =
   
  +
: [http://svn.sourceforge.net/viewvc/r-lpe/trunk/misc/coLinux/ Nitin Jain's install notes ] 2006-07.
<references />
 
 
: [http://www.tjhsst.edu/~edanaher/misc/colinux.html Evan Danaher's notes ] 2005 or earlier.
 
: [http://www.tjhsst.edu/~edanaher/misc/colinux.html Evan Danaher's notes ] 2005 or earlier.
 
: [http://tycho.homelinux.org/colinux/ Cristian Popescu's install and configuration notes - debian from scratch] from 2007
 
:: - is for version 0.6.4 with changes for 0.7.1 and you can apply these notes to the latest version too.
 

Revision as of 21:14, 18 July 2008

coLinux is a wonderful tool for running Linux under Windows; it allows you to run a full-fledged Linux computer with no extra partitions, inside Windows. More information can be found at the home page.

Disclaimers

coLinux is still under heavy development, and will likely change in the future. This page represents the contributions of various coLinux users. The information may not be tailored to your environment. Like many open source projects, there's no warranty, blah blah blah. There is no guarantee that this program will operate correctly, or indeed, at all.

coLinux 0.6.1 and XP SP2 with PAE enabled

Version 0.6.1 has an issue with PAE, which is enabled by XP SP2 (it implements DEP/NX, which activates PAE as well). If you want to use 0.6.1 with XP SP2 disable DEP/NX and PAE, by adding the switches /noexecute=AlwaysOff /NOPAE to your boot.ini BEFORE you install coLinux 0.6.1 (you can do this with the msconfig tool which comes with Windows).

The issue with PAE is fixed in coLinux 0.6.2 and later (release announcement).

"AlwaysOff" is needed for all current coLinux version with very new CPU and noexecute hardware support.

Terminology

Hosting OS
The system coLinux is installed on (usually Windows)
coLinux OS
A coLinux instance running an operating system like Debian, Ubuntu, or Gentoo
Adapter
Also called a "networking card". A piece of hardware which provides networking capabilites to a system

Overview

Generally, to use coLinux, one performs the following steps:

  • Download coLinux and run installation
  • Use the included terminal to log in
  • Use the most foolproof method to get network connectivity (usually slirp)
  • Update the system using apt-get or emerge
  • Install xterm or a complete desktop like GNOME or KDE
  • Install an X Server or VNC on the Host
  • use telnet, ssh, or a VNC client to connect to the Guest and start xterm, etc.
  • use scp, putty, cofs/smb, etc., to copy files between Host and Guest

Download and Installation

See Also README

Go to the downloads section of the site, which is currently a link to the sourceforge downloads page. Download and run the most recent executable installer.

  1. Although the installer doesn't default to it, "c:\coLinux" is a good install location.
  2. During the install you are prompted to install WinPcap. This can be done with the coLinux installer open.
  3. The TAP-Win32 Virtual Adapter device driver will be installed.
  4. There is no harm in installing both WinPcap and TAP-Win32.

For the latest development binaries and source (i.e. may crash your system), see snapshots

If you uninstall coLinux from one location and install it to another, the following procedure will update the Windows registry accordingly:

colinux-daemon.exe --remove-driver
colinux-daemon.exe --install-driver

Filesystem Download

From the main download site, also download a filesystem which includes an operating system. Debian-3.0r2.ext3-mit-backports.1gb.bz2 on SourceForge is a good choice. It expands to 1GB when decompressed. This has a basic Debian image on it with everything you need to get started. Save/extract this in the coLinux directory. Here is a partial list of programs which can extract the image, which is compressed using bzip2:

Run bzip2 on Windows command line:

bzip2-102-x86-win32.exe -d Debian-3.0r2.ext3-mit-backports.1gb.bz2

Configuration

coLinux can be configured using parameters on the command line, or with a configuration file like default.colinux.xml. For command-line options, see README.

Here are the contents on an example file called coLinux.bat ("^" is the line continuation character in Windows).:

Uses eth1 to talk to Hosting OS, eth0 for for Internet connectivity

colinux-daemon.exe kernel=vmlinux initrd=initrd.gz ^
cobd0="Debian-20040605-mit.ext3.1610mb" ^
cobd1="fs_768Mb" ^
mem=512 ^
eth0=pcap-bridge,"Local Area Connection",00:ff:75:39:D3:C1 ^
eth1=tuntap ^
root=/dev/cobd0

Use ssh (port 22) or VNC (port 5901) to connect to coLinux guest system

colinux-daemon kernel=vmlinux ^
cobd0=Debian-"c:\coLinux\20040605-mit.ext3.1610mb" ^
cobd1="c:\coLinux\fs_768Mb" ^
mem=512 ^
eth0=slirp,,tcp:22:22/tcp:5901:5901 ^
eth1=tuntap ^
root=/dev/cobd0

In the configuration file, <block_device> options represent partitions. They are actually mounted under /dev/cobdn, where n is given by the index passed to it, and the path is fairly straightforward. Make sure that the first one (index="0") points to your root filesystem (e.g., the Debian image).

<block_device index="0" path="\DosDevices\c:\coLinux\Debian-3.0r2.ext3-mit-backports.1gb" enabled="true" />

for a .bat file:

cobd0="c:\coLinux\Debian-3.0r2.ext3-mit-backports.1gb"

You may want to disable the swap device for now; it's not strictly necessary and will be described later.

<block_device index="1" path="\DosDevices\c:\coLinux\swap_device" enabled="false" />

for a .bat file:

REM cobd1="c:\coLinux\swap_device"

The other options will work as-is.

Memory

You can take a quick look at the

<memory size="64" />

or in a .bat file

mem=64

line and adjust it to fit your system. This is the physical amount of RAM you are going to allocate to coLinux, and you need to keep some for Windows.

System MemorySuggested Memory Setting for coLinux
128MB RAM or lessDon't bother with coLinux. Well, OK, try 32MB...
160 to 256MB RAM64MB
256 to 512MB RAM96MB
512MB or more128MB or more

Those values are based on personal experience; your mileage may vary. Note: This is non-swappable memory, so using too much can do bad things to your computer (while coLinux is running; as soon as you reboot, everything will be fine). It used to default to 29MB which was sufficient for most things, now it seems to default to 64MB. If you have less than 256MB of RAM you probably want to make it smaller. Realistically, unless you want to use X Windows (described later) or use a very memory-intensive program, 32MB or even 16MB may be enough.

Oh, if you want, you can also tell coLinux your keyboard is not US with a command line like loadkeys fr-latin1. (For remapping your keyboard check coLinuxKBD)

Then you have to configure the network. This is not strictly necessary to enjoy coLinux but you need it to:

  • download new software: the image you downloaded contains only a basic system, much like a bare Windows installation
  • use ssh and PuTTY, a nice terminal since you will find the console too uncomfortable
  • launch X applications and run VNC and see the results on your Windows screen

Running coLinux

c:\>cd coLinux
c:\coLinux>colinux-daemon.exe -c default.colinux.xml

or, to use a command shell as the terminal:

c:\coLinux>colinux-daemon.exe -c default.colinux.xml -t nt
  • Some errors can be disregarded. Currently, errors that will appear when running a correctly-installed coLinux:
Disabled Privacy Extensions on device c02bf040(lo)
eth0: duplicate address detected!

  • To enable a double-click start, create a short-cut to the daemon (right-click and select Create Shortcut), and then right-click on that new shortcut and select Properties. In the Target box (under the Shortcut tab), add the following to the end of the existing text (after the double-quote, and don't forget the space before the -c!):  -c default.colinux.xml and click OK. You can now double-click the shortcut (perhaps copy it to your desktop) to run CoLinux. If you would like to start the console minimised, select Minimized from the Run drop-down box.
  • Alternatively, you can put the following into a bat file such as coLinux.bat which you can double click:
    start "coLinux" /Dc:\colinux /min colinux-daemon.exe -c default.colinux.xml
    Remove /min if you want to see the boot messages. Change the /D<path> to point to your coLinux dir.
    Added by PaulT)
  • The login for the debian image is root/root, you should change this.


In another few seconds, a colinux-console should pop up. And after a few more seconds, it should stop and give you a login prompt. Since the Debian image by default has no other users, you must log in as root:

  • 2.4 distros - blank password
  • 2.6 distros - "root" as password

Now you can use adduser to add another user for normal use, or passwd to set the root password. And you have Linux!

Brushing the Dust off a Downloaded Root FS

The Debian Root filesystems are a little long in the tooth. DebianRootFsImages is a procedure to bring the system up-to-date so that it is actually usable.

Troubleshooting

Blue screen of death (BSOD)

  • if you are getting a BSOD when starting coLinux, it is probably due to "AlwaysOff" not being set in boot.ini
    • boot.ini is located in c:\ You need to enable viewing of system files before you can see this file in explorer.
    • this file must be edited with a plain text editor, such as Notepad
    • Be extremely careful editing this file! Incorrectly editing it could make your system unable to boot up
    • when you edit the file you will see a line that looks like this:
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="WinXP Professional" /noexecute=optin /fastdetect
    • copy that line, and paste it right below it. You will only be editing the second one
    • on that second line, change the text inbetween the double quotes to "WinXP for coLinux"
    • also on that second line, change the / options at the end so that it only has "/noexecute=AlwaysOff /NOPAE"
    • your new second line should look something like this:
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="WinXP for coLinux"  /noexecute=AlwaysOff /NOPAE
    • save boot.ini and reboot your computer
    • when it reboots, there will be a text menu for you to choose. choose "WinXP for coLinux"
    • when XP boots up, try starting coLinux again
    • If something doesn't work right, you can reboot again and choose the first option on that text menu. That should start your system as it was before

coLinux doesn't start

  • check the path to the uncompressed filesystem image
  • in the line with
<bootparams>root=/dev/cobd0</bootparams>
add ro after root:
<bootparams>root=/dev/cobd0 ro</bootparams>
and be ready to remove it if it doesn't help. You can keep it. It is harmless in most cases (some distributions need it)
  • finally, take a close look at your text editor. It may have converted the text silently to UTF-8, adding an invisible marker at the beginning of your configuration file. Switch to hexadecimal mode or to another editor and check the top of the file. If you see the UTF-8 marker, erase it.
  • in case of a error similar to
daemon: exit code 84a08401
daemon: error - CO_RC_ERROR_ERROR, line 33, file colinux/os/current/user/file.o
Repeat the following dance:
colinux-daemon.exe --remove-driver
colinux-daemon.exe --install-driver

If that doesn't work you can check your parameters in the config-file. Look for an incorrect or missing image filename, vmlinux path, or swapfile path. Comment out all unneeded config-file parameters to see which might be incorrect.

  • If none of these things work, you can try Nitin Jain's install notes (listed in External references). Very good step-by-step directions

Using Other Linux Distributions in coLinux

The vanilla Debian may not be to your liking, or it may just seem a little hard to set up. You can find the instructions for configuring a specific distribution to use coLinux here: ConvertingDistributions. If you would like to use the Gentoo Deluxe 2 GB image look here: GentooDeluxHowto, or if you would like to use Topologi Linux look here: TopoHowTo. You can also download via BitTorrent a pre-configured coLinux setup based on coLinux-0.6.0 and the Debian filesystem - just download, extract, install, run.

Adding Swap Space

To add swap for use in your coLinux environment you need a filesystem file with the correct size of swap you want. Here is a location of a number of sizes of empty partitions. Name the file you downloaded per the line below in your default.colinux.xml file. Be sure to set the path too.

<block_device index="1" path="\DosDevices\c:\coLinux\swap" enabled="true"/>

  1. Boot into your coLinux system.
  2. Login as root
  3. Add the line below to /etc/fstab: /dev/cobd1 none swap sw 0 0
  4. Run "mkswap /dev/cobd1"
  5. Run "swapon -a"

Important Note for Gentoo Users

Gentoo requires configuration of a swap file. Follow the instructions at AddSwapPartition

Network

see Network#Recommended_Setup

See Network#The_WinPCAP_driver

See Network#TAP

See Network#Slirp

Graphical Interface (Xserver)

The article XCoLinux explains how to run an X server on the Host and xclient applications in coLinux

External Resources

Nitin Jain's install notes 2006-07.
Evan Danaher's notes 2005 or earlier.