I have uploaded a test 'upupjj+d32_4.iso' to https://www.mediafire.com/folder/qiwvlxw46bp5f/iso
And for those who already have 'upupjj+d32_4.iso' there is a 'upupjj+d32_3.iso___upupjj+d32_4.iso.delta'.
It contains an enhanced 'loopback.cfg' loosely based on Manjaro, in that it uses the same variables.
It now accepts 2 variables, $rootuuiud and $iso_path, $rootuuiud being optional.
It can be booted with a grub2 boot entry like:
Code: Select all
menuentry "Puppy upupjj+d32.iso" {
rootuuid=nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
export rootuuid
search --no-floppy --fs-uuid --set=root $rootuuid
iso_path=/boot-isos/upupjj+d32.iso
export iso_path
loopback loop $iso_path
root=(loop)
configfile /boot/grub/loopback.cfg
loopback -d loop
}
If "$rootuuid" is specified, the 'isoboot' script will use it to go directly to the appropriate partition.
If "$rootuuid" is not specified, the 'isoboot' has to search each partition until it finds the one containing the ISO,
or the first one if the same ISO appears in the same relative directory on different partitions.
This searching also produces the "wait 5 seconds for slow devices" message.
Note: This "$rootuuid" define takes precedence over any "root=UUID=" boot parameter.
There is also another possible option for specifying the partition that contains the ISO file, that does not depend on boot parameters.
I call it PLB (PuppyLinuxBoot). The concept is very loosely based on uefi.
It consists of a "fat32" partition that contains a directory '/PLB'.
This directory may contain 2 default spec files, a 'SAVESPEC', and/or an 'INSTSPEC'.
'SAVESPEC' is already documented previously.
An 'INSTSPEC' file defines the Puppy installatiion partition. e.g. IS_ID='Linux'.
This facility is meant to provide this information when the normal methods do not work.
So in booting ISO files it could be used to specify the partition containing the ISO files,
in case "$rootuuid" is not defined in the boot, and there is no "root=UUID=" boot parameter either.
(Or you can just let 'isoboot' search every partition.)
The 'init' script first checks for a partition with a LABEL of "PLB".
It this fails, it searches every "fat32" partition for the '/PLB' directory.
(Hopefully most PC's would not have many "fat32" partitions.)
The PLB could be the PC's main EfiSystemPartition, but it does not have to be.
But I would recommend that it be the "fat32" partition where grub2 is installed.
Note: This PLB thing only makes sense in a uefi boot scenario where at least 1 "fat32" partition is mandated.