EDIT: Note that you can supply a PUPSAVE argument using the
unmodified Puppy -- you just need to add in the grub menu:
Code: Select all
PUPSAVE=ext3,hda3,/pup_save.3fs
This way Puppy will only search for PUPSFS on your HD.
However, note that it will not find your ZDRV module, so you'll
have to supply it, too, in the grub menu:
Code: Select all
ZDRV=ext3,hda3,/zdrv_212.sfs
This is a way to modify Puppy2 init scripts to accept a boot parameter telling it which
pup_save file to use (PUPSFS is needed) and bypass the "ransacking" of the HD
(it gives a minor speedup in boot time).
This is meant for use with frugal installs -- where you give the boot
parameter in the grub menu -- and maybe USB installs, too.
I will send it to Barry for inclusion in future 2.14, but thought some people
(Ecomoney?) might find it useful...
You'll need Pizza's initrd-editor.
Step one: edit initrd.gz
(can be done once for each Puppyversion and used on different computers)
Run the initrd-editor, open your initrd.gz file, then open the init script (/sbin/init)
and find the following two lines (lines 767-8 in 2.12):
Code: Select all
PDEV1=""
case $PMEDIA in
Code: Select all
if [ "$SAVEFILE" ] ; then
PUPSAVE="$SAVEFILE"
if [ "$PUPSFS" ]; then
PDEV1="`echo -n "$PUPSFS" | cut -f 2 -d ','`"
FSTYPE="`echo -n "$PUPSFS" | cut -f 1 -d ','`"
[ "$FSTYPE" = "msdos" ] && FSTYPE="vfat"
PUPSFS="`echo -n "$PUPSFS" | cut -d'/' -f2-`"
else
PDEV1="`echo -n "$PUPSAVE" | cut -f 2 -d ','`"
FSTYPE="`echo -n "$PUPSAVE" | cut -f 1 -d ','`"
[ "$FSTYPE" = "msdos" ] && FSTYPE="vfat"
PUPSFS="pup_$PUPPYVERSION.sfs"
else
Code: Select all
esac
#...exit with PDEV1= full device name.
Code: Select all
fi
Now save and replace your initrd.gz with the fixed one.
Important: You should compare the size of the modified initrd.gz
with the original before replacing!!
Step two: edit your grub menu.lst
Open your grub menu.lst and to the boot line (after PMEDIA) add the
value of PUPSAVE that you want (you can find it in /etc/rc.d/PUPSTATE).
Note that I use "SAVEFILE" as the parameter, so you can still give
PUPSAVE as a parameter and it'll work like with the normal Puppy.
for example:
Code: Select all
SAVEFILE=ext3,hda3,/pup_save.3fs
If you leave them in you'll end up with
"'ext3" and "/pup_save1.3fs'" rather than "ext3" and "/pup_save.3fs"
You might also want to add a ZDRV parameter to the grub menu (after the PUPSAVE):
Code: Select all
ZDRV=ext3,hda3,/zdrv_212.sfs
So you can rename pup_212.sfs to, say, pup_666.sfs and then:
Code: Select all
PUPSFS=ext3,hda3,/pup_666.sfs
Code: Select all
SAVEFILE=ext3,hda3,/mydir/pup_save.3fs
Done!