These are some notes I wrote for myself when I tried to setup CoLinux to run with networking and X Windows on my Windows 2000 / Linux Redhat 9 dual boot up system. Hopefully it will be of some help to you.
I work at www.akeni.com. If you have any suggestions or corrections about these notes please send them to firstname.lastname@example.org. Please do not ask me how to get CoLinux to work on your system, whatever I know is already contained in these notes.
Copyright 2005 by Akeni System. Please do not reproduce without permission.
Booting up CoLinux from a dual booting partition.
Caveat: These procedure are tested on a Redhat 9 system, your mileage may vary...
mknod /dev/cobd0 b 117 0 mknod /dev/cobd1 b 117 1 mknod /dev/cobd2 b 117 2 ... mknod /dev/cobd7 b 117 7 There is currently a limit of 8 cobdX
Surprisingly, you don't need to actually change your /etc/fstab. CoLinux will boot into the root partition correctly even though /etc/fstab has the wrong value. (At least it worked for me)
I found it easier to simply leave the /etc/fstab alone, and use a separate shell script to mount the /dev/cobdX driver when running CoLinux.
<block_device index="2" path="\Device\Floppy0" enabled="true"> </block_device>
<block_device index="4" path="\\Device\CdRom0" enabled="true"> </block_device>
Unfortunately, it seems that you can not access your FAT drive because it is already locked by Windows. Presumably one way to get around this problem is by setting up C:/ drive to be network shareable and then run the Samba client under CoLinux to access it.
How to disable e2fsck at bootup
I have problem when booting into CoLinux because Linux keep trying to run fschk on /dev/cobd6, even though it should have been clean.
What I finally end up doing it to modify /etc/rc.d/rc.sysinit and added the line >
Running 22fsck under Windows
Instead of booting into Linux to run fsck, there is a port of e2fsck to NT that can be downloaded from http://ashedel.chat.ru/ext2fsnt/e2fsprogs-1.19-NT-i386.rar
To use it, type
Where \Device\HarddiskVolume5 is the same value you use in your default.colinux.xml file
Using dmdiag to figure out \Device\HarddiskVolumeX
I use CoLinux to boot into one of my Linux 9 ext-2 partitions to do testing. Because I have many partitions to test it took some guesswork to figure out the correct value for "\Device\HarddiskVolumeX" for use with default.colinux.xml. I found that the tool dmdiag from the Microsoft Windows 2000 Resource Kit to be very useful. The tool can be downloaded for free from http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/dmdiag-o.asp
Once you have install the tool, you need to open up (Control Panel | Administrative Tools | Computer Management), then (select Storage | Disc Management)From there, right click on the Linux Ext-2 partition for which you need to figure out the right "\Device\HarddiskVolumeX" value to use and choose "Change Drive Letter and Path" and use "Add" to assign a drive letter to it, say "L" Then go to a Windows 2000 command prompt and type
dmdiag > dmdiag.txtNow use the notepad to look at the file dmdiag.txt
start notepad dmdiag.txt
There you'll find the value corresponding to the partition, which you can then use to
D: \Device\HarddiskVolume2 E: \Device\HarddiskVolume3 F: \Device\HarddiskVolume4 G: \Device\CdRom0 R: \Device\HarddiskVolume6 H: \Device\CdRom1 I: \Device\HarddiskVolume5 A: \Device\Floppy0 C: \Device\HarddiskVolume1
How to get networking using static IP/addresses.
I will assume that you are NOT try to get on the Internet from within your CoLinux session. You just want to setup your network so that you can communicate between your CoLinux session and the Windows 2000 session under which it is running. This means that you actually do NOT need to setup Connection Sharing or the Native Bridge Network under Windows 2000.
I will also assume that your have CoLinux running successfully.
If you think of your CoLinux session as a virtual computer, the networking looks something like this:
+--------------------+ +--------------------+ | CoLinux | | Windows 2000 | | | | | | 192.168.1.200 <--|---------|--> 192.168.1.7 | | | | | +--------------------+ +--------------------+
The values 192.168.1.200 and 192.168.1.7 can be anything provided that they are in the subnet 192.168.1.x and do not conflict with anything that is already on the network.
To set the "external" address of 192.168.1.7 under Windows 2000, Open your network properties, then choose "properties" for the Local Area Connection that corresponds to the TAP-Win32 driver. The goto General | Internet Protocol (TCP/IP) and choose "Properties". Check "Use the following IP address" and set the IP address to 192.168.1.7
Change the following two lines:
IPADDR=192.168.1.200 ... GATEWAY=192.168.1.7
It is crucial that the GATEWAY is set to the "external" address, else the CoLinux session will not be able to reach the Windows 2000 session.
If you are using Redhat, you can then use
service network stop service network start
to load the new values
Once the network has restarted, type
and you should see something like
eth0 ..... inet addr:192.168.1.200 ....
under Windows 2000 and you should see an entry that says something like this:
Ethernet adapter Local Area Connection 4: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 192.168.1.7 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.1.7
and you should get a reply from the CoLinux session.
Again, you should get a correct ping reply from Windows 2000.
Setup X Windows
Assuming that you got this far, the hard part of setting up the virtual network is done. I'll also assume that you have already install X Windows under your CoLinux session.
On your CoLinux session, type:
export DISPLAY=192.168.1.7:0(Do not miss the ':0' at the end)
Start your X server on Windows 2000 (You can use the free one from Cygwin)
To test, type
Under you CoLinux session. If all went well you should see it displayed on your X-Window session.