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;
                 }

Reply via email to