that is absolutely true. but the problem is not the very solution but the reason for it.

for the 402 version the modules, including the essential cloop.ko, were contained in the initial ramdisk filesystem, in "/modules" directory, and NOT in the cd directory tree on the iso9660 filesystem. it was enough to pass the "knoppix_dir=/KNOPPIX1" parameter to kernel at startup to make the distribution boot properly from a different directory. there was no need to modify the "linuxrc" script, because it parses the kernel command line on its own, it reads the "knoppix_dir" parameter and adjust its internal variables accordingly. the default "module_dirs", just as you've quoted it, contains the "/modules" search path, so it loads the files contained in the initial ramdisk.

but for the 501 version, the boot-critical modules have been moved out of the initial ramdisk and placed directly on the cd filesystem. the "module_dirs" is not "knoppix_dir"-aware, the path is hardwired to "KNOPPIX". so this version fails to boot from a different directory. if one would set "module_dirs" to
Code:
MODULE_DIRS="/cdrom/$knoppix_dir/modules /cdrom2/$knoppix_dir/modules /modules /modules/scsi"
instead, it would work as well.