Using
@watchdog's posts I've been exploring 'plopkexec'.
I've now integrated it into my setup, here is how I did it.
1 Install 'plopkexec' as though it were another Puppy linux, after all it is a linux kernel.
Here is my 'grub4dos' boot entry for 'tahr':
Code: Select all
title Puppy tahr 6.0.6 (sda99/tahr)
find --set-root --ignore-floppies uuid () nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
kernel /puppy/tahr/vmlinuz libata.noacpi=1 intel_pstate=disable pmedia=atahd pdrv=LABEL psubdir=/puppy/tahr adrv=:/puppy/pcmanfm-1.2.3-7.sfs psave=Work:/pupsaves/tahr/ pfix=fsckp,trim,nocopy TZ=AEST-10
initrd /puppy/tahr/initrd.gz
And here is my 'grub4dos' boot entry for 'plopexec':
Code: Select all
title Plopkexec (sda99/plop)
find --set-root --ignore-floppies uuid () nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
kernel /plop/plopkexec libata.noacpi=1 TZ=AEST-10
At this point you should be able to boot 'plopexec' from your normal grub4dos menu.
Hopefully it will boot, run, and find no linux's it can boot.
2 Create a 'plopkexec.cfg' file that 'plopkexec' will find.
This file contains 'syslinux' style boot entries for each of the Puppies on the partition.
It is located in the root dierectory of the partition that contains the Puppies.
Here is my 'plopkexec' boot entry for 'eslacko64' on a usb HD:
Code: Select all
LABEL eslacko64 6.9.9.10
KERNEL /eslacko64/vmlinuz
APPEND libata.noacpi=1 net.ifnames=0 pmedia=usbhd pdrv=usbLABEL psubdir=/eslacko64 pfix=fsck,fsckp TZ=AEST-10
INITRD /eslacko64/initrd.gz
That's it.
So, with 'plopkexec' now installed on my machine, all I have to do is:
After setting-up a "normal" usb boot device, I add a 'plopkexec.cfg' file to the root directory of the partition containing the Puppies.
Then with the usb device inserted, I reboot into 'plopkexec' and it displays a boot menu for the Puppies on the usb partition containing the 'plopkexec.cfg' file, afer a slight delay, it seems to be on a second try.
IMPORTANT:
The 'plopkexec.cfg' for a partition, resides in the root directory of the partition.
e.g. if a bootable usbstick is produced using 'f2StickPup', the 'plopkexec.cfg' file goes in the 'f2fs' partition, not the 'vfat' partition.
'mk-plopkexec-cfg':
Typing an appropriate set of 'syslinux' style boot entries into a text editor is unattractive,
so I have writen a little script called 'mk-plopkexec-cfg' that does this little task.
It takes a single parameter, the full path to the directory containing the Puppies.
It writes the generated 'mk-plopkexec-cfg' to the mount-point for the partition containing the specified directory.
e.g. After producing a bootable usb stick with 'fsStickPup' (the unreleased next version), and running the command:
Code: Select all
./mk-plopkexec-cfg /mnt/sdc2/puppy
the file '/mnt/sdc2/plopkexec.cfg' contains:
Code: Select all
LABEL eslacko64 6.9.9.10
KERNEL /puppy/eslacko64/vmlinuz
APPEND net.ifnames=0 libata.noacpi=1 pmedia=usbhd pdrv=f2Pup-nnnnnnnn-02 psubdir=/puppy/eslacko64 pfix=fsck,fsckp TZ=AEST-10
INITRD /puppy/eslacko64/initrd.gz
Note: 'mk-plopkexec-cfg' uses the 'bootentry' script, so the current 'FrugalPup' must be installed.
I have attached 'mk-plopkexec-cfg.gz', simply download it, and unzip it.
Then execute "./mk-plopkexec-cfg" in the directory that contains it.