Because it's easy to do uefi booting on fat32.
The puppies are not installed on the fat32 partition, only the boot manager, i.e. grub2 or grub4dos. Yes, this does work for uefi boots.
So the fat32 boot partition can be quite small (64MiB), even with both grub2 and grub4dos installed it uses less than 5MiB.
The partition containing the Puppy frugal installs is identified by either it's UUID or label.
So it's safe to use an internal boot partition to boot puppies installed on a usb drive.
I recommend that you use labels on your partitions, just make sure that each one is unique.
Here is the grub2 boot entry for a typical frugal Puppy install on a HD:
Code: Select all
menuentry "Puppy xenialpup 7.5" {
search --no-floppy --label --set hdLin
linux /puppy/xenial/vmlinuz pmedia=atahd pdrv=hdLin psubdir=/puppy/xenial pfix=fsckp,fsck TZ=AEST-10
initrd /puppy/xenial/initrd.gz
}
Code: Select all
title Puppy xenialpup 7.5
find --set-root --ignore-floppies uuid () 22222222-2222-2222-2222-222222222222
kernel /puppy/xenial/vmlinuz pmedia=atahd pdrv=hdLin psubdir=/puppy/xenial pfix=fsckp,fsck TZ=AEST-10
initrd /puppy/xenial/initrd.gz
1. The "init" script is informed of the exact location of the Puppy install using "pdrv=hdLin psubdir=/puppy/xenial".
If the partition has no label, the UUID can be used instead, e.g. "pdrv=22222222-2222-2222-2222-222222222222".
2. The "pfix=fsckp,fsck" provide maximum data integrity.
3. The "TZ=" parameter sets the time zone in "init". If it is used it should be set appropriately for your timezone.
4. Grub4dos always uses the UUID in the "find" statement.
Here is the grub2 boot entry for frugal Puppy install on an SSD with the savefolder on a HD:
Code: Select all
menuentry "Puppy xenialpup 7.5" {
search --no-floppy --label --set ssdLin
linux /puppy/xenial/vmlinuz pmedia=atahd pdrv=ssdLin psubdir=/puppy/xenial psave=hdLin:/pupsaves/xenial/ pfix=fsckp,fsck,trim TZ=AEST-10
initrd /puppy/xenial/initrd.gz
}
Code: Select all
title Puppy xenialpup 7.5
find --set-root --ignore-floppies uuid () 44444444-4444-4444-4444-444444444444
kernel /puppy/xenial/vmlinuz pmedia=atahd pdrv=ssdLin psubdir=/puppy/xenial psave=hdLin:/pupsaves/xenial/ pfix=fsckp,fsck,trim TZ=AEST-10
initrd /puppy/xenial/initrd.gz
1. The location of the savefolder is defined by "psave=hdLin:/pupsaves/xenial/" because it is a different device.
The trailing "/" on the "psave=" parameter is significant.
If it were on a different partition on the same device it could have been specified as "psavemark=n", where <n> is the number of the partition, e.g. "psavemark=3" for sdc3.
2. The pfix paramater includes "trim" becasuse the install directory is on an SSD.
But how do I set this up?
I've been doing this for years by installing puppies in sub-directories and using "Grub4DosConfig" to setup my "menu.lst" file, and then manually editing "menu.lst".
Now, there is "FrugalPup" for both grub4dos and grub2(uefi).
Note of f2fs:
A couple of months ago I tested a frugal install of Puppy to an f2fs partition, it didn't work.
Grub2 (uefi boot) failed to find the f2fs partition when defined with either a label or UUID, so I abandoned the idea.
Fortunately Puppy can store it's savefolder on a parition other than the install partition, this save partition can be f2fs.
Grub4DosConfig = http://www.murga-linux.com/puppy/viewtopic.php?t=51697
FrugalPup = http://www.murga-linux.com/puppy/viewtopic.php?t=114340
HD = "hard drive", a typical mechanical computer drive with moving parts.
SSD = "solid state drive", a modern computer drive with no moving parts.
Edit1: The folk below are not dreaming, the examples used to mistakenly refer to "mio_initrd.gz", I have edited them to refer to "initrd.gz".
Edit2: The f2fs limitation of grub2 is supposed to be fixed in it's source. So this should eventually be fixed.
gyro