So why "revisited". In this topic, http://www.murga-linux.com/puppy/viewto ... 602#852602 mavrothal found that it the specified file does not exist, then the boot crashes, not too user friendly.
This implementation checks the existence of the specified file, and ignores the parameter if the file does not exist. To do this, the code is moved into the "search_func" where partitions are mounted.
Here is the "PUPSTATE" file from my test:
Code: Select all
PUPMODE=12
PDEV1='sda4'
DEV1FS='ext4'
PUPSFS='sda4,ext4,/sfss/puppy_tahr_6.0.2.sfs'
PUPSAVE='sda4,ext4,/tahr/tahrsave'
PMEDIA='atahd'
#ATADRIVES is all internal ide/pata/sata drives, excluding optical, excluding usb...
ATADRIVES='sda '
#ATAOPTICALDRIVES is list of non-usb optical drives...
ATAOPTICALDRIVES='sr0 '
#these directories are unionfs/aufs layers in /initrd...
SAVE_LAYER='/pup_rw'
PUP_LAYER='/pup_ro2'
#The partition that has the tahrsave file is mounted here...
PUP_HOME='/mnt/dev_save'
#(in /initrd) ...note, /mnt/home is a link to it.
#this file has extra kernel drivers and firmware...
ZDRV='sda4,ext4,/sfss/zdrv_tahr_6.0.2.sfs'
ADRV='sda4,ext4,/apps/pcmanfm-1.2.3-5.sfs'
YDRV='sda4,ext4,/sfss/ydrv_tahr_6.0.2.sfs'
#complete set of modules in the initrd (moved to main f.s.)...
ZDRVINIT='no'
#Partition no. override on boot drive to which session is (or will be) saved...
PSAVEMARK=''
PSUBDIR='/tahr'
There is a limitation with specifying these sfs files in another partition. When "init" is loading the sfs files, only the pupsfs and savefile/savefolder sections of the code actually mount partitions. The code for all the other sfs files assume that their partition is already mounted. So at most there are only 2 possible partitions to choose from, the one that contains the savefile/savefolder and the one that contains the pupsfs. I have not tested putting files on other partitions.
There is one facility of the original implementation that this one does not reproduce. In the original code, if "pupsfs" is specified, then searching for other files is limited to the same partition. This implementation cannot do that, the "pdev1" boot parameter has to be specified to limit the search to a single partition.
Edit:
Patched "initrd.gz" files for tahrpup 6.0.2 are available here:
noPAE: http://www.fishprogs.software/puppy/tah ... s_nopae.gz
PAE: http://www.fishprogs.software/puppy/tah ... sfs_pae.gz
Download, rename to "initrd.gz", move to frugal install directory, reboot.
I have attached a gzipped patch file for the "init" script, "init.chksfs.diff.gz".
gyro