I've been fooling with mkautoinstallcd and with booting with hand entered parameters as well as using --append. I think that Server.pm probably needs something like the attached patch. The current append list is about 100 chars already, and the hard limit is 255. This patch should prevent a bogus append string. I say 'something like' because the attached patch will result in the temporarily mounted iso image being left mounted after the croak.
The patch also prevents an unfortunate occurance should someone put the word APPEND in a comment in the pxe config file ;-). Also, I had additional questions about the current default append string. Through experimentation with 3.2.0 I've found that an awful lot of the parameters entered there are redundant when booting from a CD. For example, with current kernel you don't need to specify load_ramdisk=1 if you specify initrd=. The reason I bring this up is that when I reentered the default part by hand I found I ran out of space on the kernel command line before I was able to enter the full set of additional variables that usually appear in the local.cfg file. This argues for getting rid of redundancies if possible. I found that with 3.2.0 you could successfully boot a cd with just the following line at the boot prompt: kernel initrd=initrd.img root=/dev/ram. This set does leave "enough space" to fully specify the variables in local.cfg. What I don't know is whether PXE booting needs more parameters to 'do it right'. Comments? I don't think there's much point to changing the append string in the pxe stuff, since as soon as you say anything=anything on the kernel command line the boot process forgets about its defaults. But, perhaps this minimum set should be documented?
--- Server.pm.orig 2004-03-03 21:00:46.000000000 -0700 +++ Server.pm 2004-03-22 22:29:37.000000000 -0700 @@ -1593,9 +1593,10 @@ open(INFILE,"<$infile") or croak("Couldn't open $infile for reading."); open(OUTFILE,">$outfile") or croak("Couldn't open $outfile for writing."); while (<INFILE>) { - if (/APPEND/) { + if (/^\s*APPEND/) { chomp; $_ = $_ . " $append_string\n"; + croak("kernel boot parameter string too long") unless (length() <= 255); } print OUTFILE; }