I wrote a script which does the following:
1) CPIO Extract core.gz (4.7.7)
2) Embed Xvesa, Xprogs, flwm_topside and wbar (it handles dependencies)
3) COPY "mc" into a /tcz folder which later is used with tce-load
4) Rebuild core.gz (find | cpio -o -H newc | gzip -2 followed by advdef -z4)
When running the script, it does the job perfectly (from what can be seen)
The core.gz (called BASE.gz on my end) is then moved into my tftp directory and life is grand.
When booting a client (VM for the moment) it's entirely random.
The SAME compilation (no changes in the script) fails with "Fixing recursive fault but reboot is required"
I run the script a second time (again, no changes) and the problem may or may not vanish. After 2-3 runs, it works on the client.
My first guess was that maybe the output file hadn't completely sync'ed up (written to HD) completely, so I went back and added "sync" before and after each write. This had no affect on the outcome.
My second guess was that TFTP (dnsmasq) might be caching some portion of the core.gz file as it was just read not but a few minutes ago. I edited the script to stop/restart the service... no such luck.
Added: Third guess was Advanced Compression, so I removed advdef... it's not the culprit.
THUS... I'm throwing out a call for help in case anyone out there has had similar issues and/or ideas for the "next guess!?"
Server: TCL 4.7.7 Frugal on x686/12GB/4CORE
Client: VMWare Player running PXE->TCL 4.7.7 (2GB/2CORE)