A slightly odd Puppy .iso file to test

Under development: PCMCIA, wireless, etc.

Moderator: Forum moderators

Post Reply
gyrog
Posts: 644
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 16 times
Been thanked: 231 times
Contact:

A slightly odd Puppy .iso file to test

Post by gyrog »

I have uploaded a test 'upupjj+d32.iso' to https://www.mediafire.com/folder/qiwvlxw46bp5f/iso
I invite you to download and boot it.
It contains the latest JammyPup32, but that's not important, it's current, and relatively small.

The .iso file is odd in 2 ways:

1) It does not contain any boot loader, so it's a little smaller than the release JammyPup32.
Don't bother burning it to a CD, or dd'ing it to a usb stick, and expect it to boot. It will not.
But it could be used as a source for installers.
However the thing is, will it boot as a loop image in Grub2, and hence SuperGrub etc...?
It does for me using a normal grub2 loop image bootentry.

2) The 'initrd.gz' contains a patched 'init' and patched 'isoboot' that support the grub2 "root=UUID=nnnnnnnnn" convention.
My plan is to apply these patches to woof-ce, sometime.
Does the patched 'initrd.gz' break any existing 'init'/'isoboot' facility?
Does the patched 'initrd.gz' work with a "root=UUID=" boot parameter instead of a "pdrv=" boot parameter?

Answers to any of these questions are welcome.

User avatar
rockedge
Site Admin
Posts: 6571
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 2779 times
Been thanked: 2650 times
Contact:

Re: A slightly odd Puppy .iso file to test

Post by rockedge »

@gyrog I've downloaded the ISO and will experiment with it's operation.

I have also produced "boot-less" ISO's of various Kennel Linux variants that are intended to be frugally installed and did not need the boot mechanisms needed to be a CD-ROM or DVD. Making USB's with these using different programs that add the boot loader did not need the /boot directory and it's contents that I usually add.

Though setting up the ISO for burning a boot-able CD-ROM seems to make it easy to boot from ISO using QEMU/VirtualBox.

This will be a good thread to test some ideas! :ugeek:

gyrog
Posts: 644
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 16 times
Been thanked: 231 times
Contact:

Re: A slightly odd Puppy .iso file to test

Post by gyrog »

rockedge wrote: Sun Nov 05, 2023 4:11 pm

@gyrog I've downloaded the ISO and will experiment with it's operation.

Thankyou.

rockedge wrote: Sun Nov 05, 2023 4:11 pm

This will be a good thread to test some ideas! :ugeek:

I hope so.

The grub2 loop mechanism that "boots" ".iso" files, does not in fact boot the ".iso";
It uses it as a mountable container, and loads the 'vmlinuz', 'initrd.gz' files that are in the ".iso".
(The Puppy 'init' script then does something similar.)
To that end I have sucessfully "booted" a ".sfs" file using the grub2 loop mechanism.

gyrog
Posts: 644
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 16 times
Been thanked: 231 times
Contact:

Re: A slightly odd Puppy .iso file to test

Post by gyrog »

I've had cause to read the Ventoy web page, and apparently it does not use the grub2 loop image mechanism.
So this .iso file is unlikely to boot via Ventoy.

Clarity
Posts: 3888
Joined: Fri Jul 24, 2020 10:59 pm
Has thanked: 1643 times
Been thanked: 528 times

Re: A slightly odd Puppy .iso file to test

Post by Clarity »

Reported on this ISO file boot attempts to you via PM.

gyrog
Posts: 644
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 16 times
Been thanked: 231 times
Contact:

Re: A slightly odd Puppy .iso file to test

Post by gyrog »

I have uploaded a test 'upupjj+d32_2.iso' to https://www.mediafire.com/folder/qiwvlxw46bp5f/iso
I invite you to download and boot it.

It now contains a '/boot/grub/loopback.cfg' file so SG2D will not ignore it.

Like 'upupjj+d32.iso' it is not a directly bootable iso, it is just a "data" iso that can be edited with ISOMaster.
So don't, burn it to a CD, dd it to a usb stick, or boot it with Ventoy.

gyrog
Posts: 644
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 16 times
Been thanked: 231 times
Contact:

Re: A slightly odd Puppy .iso file to test

Post by gyrog »

FYI, I have attached my latest version of 'loopback.cfg'.

Note: This is not the one in the test iso file.

loopback.cfg.gz
gunzip to produce loopback.cfg
(238 Bytes) Downloaded 42 times
gyrog
Posts: 644
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 16 times
Been thanked: 231 times
Contact:

Re: A slightly odd Puppy .iso file to test

Post by gyrog »

I have uploaded a test 'upupjj+d32_3.iso' to https://www.mediafire.com/folder/qiwvlxw46bp5f/iso
I invite you to download and boot it.

It now contains the '/boot/grub/loopback.cfg' and '/boot/grub/font.pf2' files from 'JammyPup32-22.04-231101.iso'.

Apart from SG2D and the like, it can be directly booted with a grub2 boot entry like:

Code: Select all

menuentry "Puppy upupjj+d32_3.iso" {
  search --no-floppy --fs-uuid --set=root nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
  iso_path=/boot-isos/upupjj+d32_3.iso
  export iso_path
  loopback loop $iso_path
  root=(loop)
  configfile /boot/grub/loopback.cfg
  loopback -d loop
}

Where "nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn" is replaced with the UUID of the partition containing the ISO file.

One of the points of the test, is that if an ISO file is booted in situ, using the Grub2 loop mechanism, then it's quite ok to edit the ISO file with 'ISOMaster', even though this will result in an ISO that is not directly bootable.

I have omitted files from the release ISO, so that the minimum set of required files could be established.
This test has already made clear what that minimum set is, that takes full advantage of the 'loopback.cfg' that is already present in most modern Puppies, and this ISO file is an example of that.

gyrog
Posts: 644
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 16 times
Been thanked: 231 times
Contact:

Re: A slightly odd Puppy .iso file to test

Post by gyrog »

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.

gyrog
Posts: 644
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 16 times
Been thanked: 231 times
Contact:

Re: A slightly odd Puppy .iso file to test

Post by gyrog »

Here is a further enhanced 'loopback.cfg'
It now supports an optional 'local-initrd.gz' as well as an optional 'ucode.cpio'.
And it displays a "Loading initrd.gz" message that indicates which optional files were found.

loopback.cfg.gz
gunzip to produce loopback.cfg
(536 Bytes) Downloaded 42 times
gyrog
Posts: 644
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 16 times
Been thanked: 231 times
Contact:

Re: A slightly odd Puppy .iso file to test

Post by gyrog »

I should have mentioned that this verion of 'loopback.cfg' does not require any special ISO file.
You can edit any JammyPup32-22.04....iso with ISOMaster, replacing the release '/boot/grub/loopback.cfg' with this one.

Post Reply

Return to “Cutting Edge”