There's a release (old) to boot linux on the apache, though its not persistant, it's like booting a live cd on your pc, any changes made are lost on shutdown/restart. Before you go building drivers and porting programs over for it, I would look into creating a loopback image that gets stored on the SD card so changes are persistant. Tekk seems to have done this with his current release of his android system files, so I know it can be done, I just don't know how.
It may be the faster method, otherwise creating a new image for every change is the only other method. I would suggest creating a loopback and file system image that covers most of the space available on your SD card, with the loopback image being smaller, since all it does is save/load changes from the original file system image.
If you continue to just randomly edit the image file the kernel will continue to freak out, you must build a new one, based off the original, for it to work. The kernel available is touchy at best. Google will get you info on creating a persistant loopback installation for your linux. You can base it off the USB persistant linux distros available, and build and change as you need to from there. I used a USB persistant xubuntu, worked great, found it at pendrivelinux.
From the linux I used, there was no way to mount the file system, so it would need to be included in your initrd, or port/create a program to do it, I'm not even sure the kernel supports it.
So, the two biggest problems you will face with this, the kernel, its buggy, crappy, slow, and pretty well useless, then the filesystem, and all the hassles that come with making it persistant. I've been fooling around with my xubuntu for a week, while I understand how persistant linux distros work, I don't know HOW, I can look into it when I have free time, but I can't promise I'll find anything more usefull then you do.
Oh yea, quick google gave me
http://www.faqs.org/docs/Linux-mini/...k-Root-FS.html it's old, but explains why and how.