It's been asked a lot for cloop to be shipped with Cooperative Linux. This will probably happen in some future release. For those who can't wait, I'm detailing what I did to get KNOPPIX v3.8 (just d/led today) to mount in coLinux 2.6.11 (stable & devel). Hope these steps are reproducable enough for other folks.

I did an google search (don't think it was even a google linux search for the terms 2.6 cloop) One of the top links was the following link:

I followed this link which has a section on cloop module for an 2.6.9 kernel. Instead of using the source linked to on this page, I went to the directory that source/patch was stored in:

There I found an even newer version of the cloop code/patch for 2.6.9:

This is the one that I used.

I did most of the following as root, as /usr/src wasn't accessible but to root on my development environement/distro.

Ok, having downloaded that I took my freshly built (and installed) colinux-kernel tree and copied to /usr/src/linux

you especially have to have /lib/modules/<kernel-version> insalled.

You NEED a 'compiled' kernel in the /usr/src/linux tree... (i.e. you need a valid .config, an vmlinux and probably lost of object files for various pieces of the kernel)

I then uncompressed the above cloop-2.01jp5 in /usr/src/cloop-2.01jp5

It didn't compile, giving an error about too many arguments to do_generic_file_read

I've prepared a patch of the change I made to fix this problem:

--- ./cloop.c.orig	2005-02-21 00:24:17.000000000 -0600
+++ ./	2005-05-30 23:01:35.000000000 -0500
@@ -178,7 +178,7 @@
 		desc.count = size;
 		desc.arg.buf = (char *)&cd;
 		desc.error = 0;
-		do_generic_file_read(f, &pos, &desc, clo_read_actor, 0);
+		do_generic_file_read(f, &pos, &desc, clo_read_actor);
 		if (desc.error || desc.written <= 0) {
 			int left = size - desc.written;
 			if (left < 0)

After applying the above patch (and doing various other fix-ups from the failed compile that aren't need if you apply the above patch before compiling) I was able to successfully compile the cloop module and cloop-utils with the following:


note from plugwash: if you don't wan't to mess with putting the kernel source in some standard location you can use

make KDIR=/root/linux-2.6.11

where /root/linux-2.6.11 is replaced by where every our colinux patched kernel source is.

Now you can at this point:

make install
      • make install needs to be root for sure, and it installs the cloop module to the /lib/modules/<kernel-version> tree, and installs the cloop-utilites too.
      • if you don't do make install you need to manually run MAKEDEV.cloop or create the cloop devices by hand

To test it (and verify it worked) I did the following:

insmod cloop.ko

mount -t iso9660 /path/to/KNOPPIX_v3.8-EN.iso-file /mnt/point -o loop
losetup /dev/cloop1 /mnt/point/KNOPPIX/KNOPPIX
mount /dev/cloop1 /mnt/another-point

chroot /mnt/another-point

And I was chrooted into an KNOPPIX v3.8 environment, I poked around and everything seemed right, so I exited and umounted everything

umount /mnt/another-point
losetup -d /dev/cloop1
umount /mnt/point

Hope this helps others to have success too... Feel free to clean-up this page and improve on it as you see fit.

To actually boot recent Knoppix verisons you'll need to to build unionfs which can be obtained from unionfs-1.0.12a.tar.gz and built against colinux with no changes. booting of knoppix has been achived and an initial tech demo release can be obtained from

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