January 21, 2007
I wrote this article a while ago, but I figured it’s still relevant, hence this re-post.
Recently I have been tinkering with coLinux on a Windows XP box. coLinux lets you run a Linux distribution alongside Windows without having to use a virtual machine, such as VMWare or Bochs. coLinux runs in a user process in Windows, so you can use the two operating systems concurrently. All that is needed, besides coLinux itself, is a disk image containing an installed Linux distribution. There are a few images available for download, with KNOPPIX, Debian, or Gentoo pre-installed. However, I’m not too big a fan of these distributions, so I decided to try to install my favourite Linux distro, Zenwalk. This text describes the installation process.
Installing Zenwalk under coLinux is relatively easy. First you will need to download a few things:
Other than these, you will probably want to get a hold of 7-Zip, or another good file archiver. You will also need a program that can extract files from an ISO. Unfortunately 7-Zip seems to be unable to do this, but there are loads of programs out there that can. You could also mount the ISO using DaemonTools and extract the files that way. Anyway, on we go…
Start by installing coLinux, if you haven’t already. For the remainder of this text, I will assume you have installed it in C:\coLinux. If you have installed it somewhere else, just replace C:\coLinux with your own installation path through out the text.
Extract the blank disk image using 7-Zip to C:\coLinux and rename the extracted file to zenwalk_fs. Move the downloaded Zenwalk ISO to the same directory and extract initrd.img from the isolinux directory of the ISO to your coLinux directory. Rename the file to initrd.img.gz and open it in your file archiver. Once again extract the initrd.img file from the archive and place it in your coLinux directory (it should be around 12mb). This is the temporary image we will be using during installation.
Now, open default.colinux.xml from the coLinux directory in your favourite editor. Make sure that the editor is able to save in UNIX format. Edit the file so that the block devices are set up like this:
<block_device index=”0″ path=”\DosDevices\c:\coLinux\zenwalk_fs” enabled=”true” />
<block_device index=”1″ path=”\DosDevices\c:\coLinux\zenwalk-2.0.1.iso” enabled=”true” />
<block_device index=”2″ path=”\DosDevices\c:\coLinux\initrd.img” enabled=”true” />
Note: If you want to add a swap partition, you will need to add it to the configuration file as well. Visit the coLinux wiki for more information.
Block device 0 refers to the disk image we are going to install Zenwalk on. 1 is the Zenwalk ISO we will be installing packages from, and 2 is the temporary image we will be using during installation. Inside coLinux, these devices will be known as cobd0, cobd1, and cobd2. Make sure, that the paths point to the right directories and files.
Next, we need to set up the right boot parameters:
Save the file, and open up a command prompt. Navigate to your coLinux directory, and start coLinux by issuing this command:
colinux-daemon -c default.colinux.xml
If you set things up like described above, coLinux should now boot right into the Zenwalk installation. However, the ordinary way of installing Zenwalk will not work, so we have to do a little work. First, we need make Zenwalk aware of the block devices we are using. Issue these commands:
mknod /dev/cobd0 b 117 0
mknod /dev/cobd1 b 117 1
mknod /dev/cobd2 b 117 2
mknod /dev/cobd3 b 117 3
We will also need to initialize our zenwalk_fs partition:
mke2fs -j /dev/cobd0
Next, mount the Zenwalk ISO and the zenwalk_fs partition by typing:
mount /dev/cobd1 /cdrom
mount /dev/cobd0 /mnt
Now we are ready to install the Zenwalk packages. Navigate to the /cdrom/zenwalk directory, and start by installing the packages from the a category:
installpkg -root /mnt a/*.tgz
Do this for the package categories you would like to install. For a basic system, you will probably want to install a, l, and n. For the complete Zenwalk system, simply install all of the package categories.
When you are done with the installation, we need to let Zenwalk know about the coLinux block devices. Type in these commands:
mknod /mnt/dev/cobd0 b 117 0
mknod /mnt/dev/cobd1 b 117 1
mknod /mnt/dev/cobd2 b 117 2
mknod /mnt/dev/cobd3 b 117 3
Now we need to create the file /mnt/etc/fstab. Open it up in vi and edit it so it looks like this:
/dev/cobd0 / ext3 defaults 1 1
none /proc proc defaults 0 0
Save the file, and shut down the terminal. Edit the boot parameters of the default.colinux.xml file:
Save the file, and fire up coLinux again. You will receive a message about file system checking. Ignore that for now, but if you want to remove it at a later time, edit your boot parameters once again:
Well, that’s about it. You should be able to find out anything else you need to know from the coLinux wiki. Have fun with Zenwalk :]