For various reasons I like to keep my live distros running live even when put on the harddrive. I have a single ext3 partition acting as my boot partition where I keep filesystem images, kernels, initial ramdrive images, and etc. On this I use extlinux (the ext FS variant of syslinux) because I absolutely abhor Grub. So when it comes to dealing with live distros like this I generally can just copy the kernel, initrd, and filesystem image to appropriate locations and copy the syntax from isolinux.cfg to my extlinux.conf adjusting only for filenames or etc (since most distros like this insist on calling the kernel "linux" and obviously one "linux" would just clobber another "linux," so it ends up being knoppix and knopprt.gz or etc.) Overall this has been a very useful solution over the years where if I have a problem I could usually boot a live distro and fix it easily and quickly enough without having to dig for USB drives or anything like that even. (Especially handy since this means I can fix those USB drives even.) I think this may be basically the same thing as the "poor man's install" (though I'm not 100% clear from looking over the documentation) only done manually? I realize I could specify manually the location, but for various reasons I really prefer that it does the usual scan (one of which being the fact that I want it to work even if boot device orders or etc change -- I really don't want to play the guessing game any time such a thing happens...)

But suddenly this isn't working for me now with the latest non-exclusive version, 6.4.4 (CD version. Not customized in any way at this point.) I believe I was using 6.2.1 before just off the top of my head. It starts up and searches for the boot media as usual, but never finds the media. It just keeps trying, waiting for the USB devices to "settle" and trying over and over until it eventually gives up and dumps me at a debug shell. I tried mounting manually, but I guess I just don't know enough about loopback mounting because if I try a command line like "mount -o loop/mnt/KNOPPIX/knoppix /mnt-system" (or by trying to specify the filesystem -- but I wasn't sure off the top of my head if it was SquashFS or what exactly) I get an error telling me invalid syntax. I'm guessing that the simplified mount at this stage doesn't work the same? I remember there's some sort of way to actually first point a /dev/loop device to an image and then mount that loopback device in such a way that as far as mount is concerned it is just mounting a hardware device, but I forget what it was off the top of my head. More importantly, this still leaves the fundamental problem.

To make matters more interesting, I was renaming the filesystem image to "knopp644" and trying to use the knopp_name=knopp644 "cheatcode" because when live distros like this use a generic filename like this it causes problems if you try to boot a different version -- eg I had 6.2.1 on my flash drive and tried to boot that to fix things only to get a black screen since it was booting the newer filesystem image from the harddrive using the old kernel and initial ramdrive. (I really think that live distros like these should make a habit of using a version-specific filename in some form by default so conflicts like these won't happen every time some device with a different version ends up earlier in the device order on a system.) Here's what's really interesting: I thought maybe it was ignoring the knoppix_name parameter, so in testing, I made a symbolic link called "knoppix" in the KNOPPIX directory pointing to that knopp644 file and then when I booted (leaving that knoppix_name=knopp644 cheatcode in) it informed me that the knopp644 file was damaged and was 0 bytes (which makes me think it looked at the "knoppix" symlink instead of knopp644, but didn't look at it correctly.) Thus it apparently sees the filesystem and even could see the files, but it obviously handled them incorrectly in some way. Sadly, when I changed the filename back to "knoppix" (removing the symlink first of course) instead of knopp644 and removed that cheatcode entirely it still wouldn't boot (once again going back to the original issue of just going through all devices, waiting, retrying, and eventually giving up.) So it sort of sees things, but it's as if somehow it doesn't recognize them correctly once it does. Oh, and just to be on the safe side, I did update the sha1sums file, though as far as I'm aware it doesn't actually check the checksums unless you specifically tell it to.

I was able to get it to boot by putting the filesystem image on a USB drive (the one that currently won't boot directly,) but it didn't work while I was using the renamed filesystem image and the knoppix_name cheatcode interestingly enough. So I still wonder a bit if that cheatcode may still not fully work right now. Though at this point I'd rather have it working even without that cheatcode if necessary. I also thought about using the "bootfrom" cheatcode along with the ISO image, but as far as I can tell it wants an exact location, device and partition and if either of these changes in any way it wouldn't work anymore until changed again. Obviously "fromhd" isn't any better since it still wants an exact location.

Any ideas on why it might not be finding the boot media 100% correctly?

PS. In case it helps, here's basically the configuration I'm using for Knoppix in my extlinux.conf file:
LABEL knoppix
MENU LABEL ^Knoppix 6.4.4 - Text Mode
MENU PASSWD
KERNEL knoppk
INITRD knoprt.gz
APPEND ramdisk_size=100000 lang=en vt.default_utf8=0 apm=power-off nomce quiet loglevel=0 tz=localtime noswap noeject noprompt dma keyboard=dvorak home=scan 2 vga=788 video=800x600

(And I have basically a carbon copy of that for the GUI mode sans the "2" parameter of course, but I usually use the text mode for the stuff I run Knoppix to do.) Most of this is really mostly just a copy of the same stuff from the isolinux.cfg file really.

PPS. BTW, for some odd reason 6.4.4 doesn't like me using the vga= parameter. If I have that in there, the monitor says "no signal" and shuts off after the initial startup stuff finishes (note that I actually originally used a different number to get the closest I can to my monitor's native 1920x1080 resolution (1600x1050 or somewhere in that general range I think, but I forget since I had to do a scan and everything just to find it due to it not being a standard VESA value -- it's not a standard number.) However, thinking something was going wrong due to that, I dropped it down to a mere vga=788 (standard VESA 800x600x16, which should be about as well supported as you get) but I still get the no signal problem. I really can't stand a plain VGA console, but if I don't specify a vga= parameter, it really doesn't work right for me. Note that the initial startup stuff works fine both with the original vga= parameter and the 788 and it doesn't go blank until it's more or less completely done and dropping me at a terminal. (Also, it is just the video. I can do stuff like type "shutdown -r now" and it will respond.)