Minimal Init Overlay v22 (mio) - alternate "init" and utils

Under development: PCMCIA, wireless, etc.
Message
Author
gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

Minimal Init Overlay v22 (mio) - alternate "init" and utils

#1 Post by gyro »

Edit:
Current release is now 'mio22', see http://www.murga-linux.com/puppy/viewto ... 32#1057032 for more information and downloads.

---------Original message below this line---------------

This is the first release in this "Minimal Init" project.
It is a successor to the "Overlay Init" project, but the focus has changed to the different facilities it implements, rather than overlayfs.
Although this release uses overlayfs for the stack, sometime in the future, there will be a "Minimal Init Aufs" (mia) relesase.

The "Minimal" does mean what you might expect, i.e. the 'mio_initrd.gz' is approximately half the size of the normal 'initrd.gz'.
It is about removing all the current stuff that it might be possible to do without, but it also tries to move complexity into utilities in the running system.
This 'init' "does what it is told", working out what needs to be done, is done elsewhere.

But this project also aspires to be very flexible in those things it does do.

As an example, consider "luks encryted files";
In a "normal" Puppy this is provided by a luks encrypted savefile, too bad if you want to use a savefolder.
Here, it is provided by the "PupVault - encrypted file store", which can be deployed anywhere, in a savefolder, in a savefile, or '/mnt/home', etc...
And the luks support is removed from 'initrd.gz'.

The focus for this project is Puppy frugal installs on ordinary "block" devices, both internal and usb connected.
In particular, installs on Linux and fat32 partitions.

For now, this project is a Puppy "add-on", i.e. you add "mio" to a "normal" frugal Puppy install,
which changes the way the Puppy works, but the original Puppy is still there.
If installed on a Linux partition, there are mechanisms provided to switch between the two.


Some Features:

Can run completely in RAM with persistence, while installed on a normal block device, (a bit like pupmode=77).

Supports "pfix=nosave" for all save mechanisms, (including pupmode=12).

SFS's can be located anywhere, and you can have as many as you like, both above and below the main puppy...sfs, with "MI SFS List manager".

Automatic saving without any dialog on first shutdown, if installed on Linux or fat32 partition.

The save mechanism and the location of the save directory can be changed at any time with "MI Save config".

Backup/Restore the save layer, while it is not in use, with "MI save backup".

Can specify commonly used "pfix=" boot parameters with "MI Boot config".

Can switch from "mio" to "normal" with "MI Boot config".

"FrugalPup/StickPup" to manage everything to do with frugal installs.
It can install any Puppy iso.
It can install a boot loader that will do a normal UEFI boot.
It can do a "Grub4dos Config" like thing for both UEFI and non-UEFI boots.

"PupVault" to support the storing of files encrypted with luks.

Default fsck of ext and fat32 partitions, every boot before first mount, for maximum data integrity.

"improved" 'init' support information in '/initrd' and '/initrd/tmp'.

No complicated boot parameters.

And several internal "improvements" to the 'init' script.


Downloads:
Most downloads for this project are available from http://www.mediafire.com/folder/q04fxq43exkfr/mio.


Downloadable documentation:
'mio_utils.txt': some usage information on the utilities included in "mio".
'README.txt': the README file for 'init' from 'mio_initrd.gz'


Installing mio v12:

The 3.8MiB download option:

This release is available as 'mio12_bionicpup32_8.0.tar' and 'mio12_bionicpup64_8.0.tar'.

Each '.tar' contains 2 files, an 'mio_initrd.gz' and an 'mio12...sfs'.
The idea is to setup a frugal Puppy install directory containg these 2 files,
and the files from a frugal install of the corresponding "normal" Puppy.
Then boot using the 'mio_initrd.gz' file instead of the "normal" release 'initrd.gz'.

This method requires a working Puppy, some space on a Linux partition, and a spare fat32 stick.

1. Create a new directory on the Linux partition.
2. Download and extract 'mio...tar' into this directory.
3. Use 'SFS-Load on-the-fly' to load the 'mio12...sfs' as an extra sfs in the current working Puppy.
4. Using the "Puppy" facility in "FrugalPup v12", install Puppy files from an '.iso' into this directory.
5. Insert the fat32 usb stick.
6. Using the "Boot" facility in "FrugalPup v12", setup the usb stick to boot the Puppy in the directory in the Linux partition.
7. Boot the usb stick, which boots the Puppy that has just been installed in the directory in the Linux partition,
this is a first boot with "mio" active.

Note1: It is important that the "mio" files are present in the install directory before "FrugalPup v12" is run,
i.e. step 2 before step 4.

Note2: If you can't boot from a usb stick, but have a CD burner,
you could use the "ISO" facility in "FrugalPup v12" to create a CD that performs the same task as the usb stick.

Of course the same result could be done manually fairly easily,
but just make sure you pay particular attention to the "Install Directory Boot parameters" section of the 'README.txt' file.
If the install directory is not specified, the "mio" 'init' will quickly abort the boot.

The 270.1MiB download 'zipboot' option:

An 'mio12_bionicpup32_8.0.zip' is available for download from http://www.mediafire.com/folder/7y3c7eafptzao/zipboot.

1. Setup an empty fat32 usb stick with a volume label of "USBPBOOT", (without the quotes).
In Puppy, you should be able to use the CLI utility 'fatlabel' to set the volume label.
2. Download 'mio12_bionicpup32_8.0.zip' and unzip it's contents into the root of the usb stick.
3. If your machine requires a non-uefi boot, use the utilities in either /utils/lin or /utils/win to write an mbr to the stick.
4. Boot the usb stick, this is a first boot with "mio" active.

This provides the opportunity to either, explore the capabilities of this "mio" fat32 based installation,
or to use the "FrugalPup v12" in this "mio" Puppy, to install 'mio12_bionicpup32_8.0.zip' to a Linux partition.

Of course if you have a Puppy with a working "FrugalPup v12", you can use it to install 'mio12_bionicpup32_8.0.zip' however you choose.


Note - bionicpup64:
After updating with bionicpup64 fixes in 'QuickPet', you may need to delete '/usr/local/frugalpup' and '/usr/local/mi-utils' from 'mi_bionicpup64save' using another Puppy.
These v11 files in the savefolder hide the v12 files in 'mio_bionicpup64_8.0.sfs'.

Note - the version number:
Version numbers are just an integer, and have no real significance, simply a newer release will always have a bigger version number.
This includes an updated "FrugalPup" and it's last release was v11.

gyro
Last edited by gyro on Sun 03 May 2020, 08:49, edited 7 times in total.

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

Re: Minimal Init Overlay v12 (mio) - alternate "init" and utils

#2 Post by wiak »

gyro wrote:This is the first release in this "Minimal Init" project.
It is a successor to the "Overlay Init" project, but the focus has changed to the different facilities it implements, rather than overlayfs.
Although this release uses overlayfs for the stack, sometime in the future, there will be a "Minimal Init Aufs" (mia) relesase.
Always good to see this kind of initiative. The greater the community's understanding of the simplicity of using overlayfs and aufs to implement complex and flexible facilities the better since leads to better Puppy design implementation. Such work helps create a more active/productive distro-building community overall IMO than simply rehashing traditional Pup builds via one build system.

wiak

gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

#3 Post by gyro »

I forgot to mention that it uses "zram" for '/tmp' not "tmpfs".
If you run in pupmode=12 and boot with "pfix=nocopy", you endup with a Puppy running with no "tmpfs".

"zram" is a RAM based, compressed, pseudo block device.
So the same amount of stuff in a "zram" device, is supposed to use less RAM than if it were stored in "tmpfs".

gyro

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#4 Post by musher0 »

gyro wrote:I forgot to mention that it uses "zram" for '/tmp' not "tmpfs".
If you run in pupmode=12 and boot with "pfix=nocopy", you endup with a Puppy running with no "tmpfs".

"zram" is a RAM based, compressed, pseudo block device.
So the same amount of stuff in a "zram" device, is supposed to use less RAM than if it were stored in "tmpfs".

gyro
In other words, a Puppy.sfs not transfered to RAM, yes?
Ok. I try your approach, but I remove the nocopy setting in pfix.

On the other hand, if Puppy is not transferred in RAM, the RAM is used only for
programs. So that may be better for low-RAM systems.

For the record, zram does offer a potential 50% increase of the RAM capacity.
I know this from testing it in a RAMdisk script I produced last year.

Just a few thoughts.

BFN.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

#5 Post by gyro »

musher0 wrote:In other words, a Puppy.sfs not transfered to RAM, yes?
Ok. I try your approach, but I remove the nocopy setting in pfix.
Yes.
musher0 wrote:On the other hand, if Puppy is not transferred in RAM, the RAM is used only for
programs. So that may be better for low-RAM systems.
Yes, it also boots faster, it doesn't spend time copying to RAM.
musher0 wrote:For the record, zram does offer a potential 50% increase of the RAM capacity.
I know this from testing it in a RAMdisk script I produced last year
That's why I started playing with zram.

gyeo

gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

Minimal Init Overlay v13 (mio) - alternate "init" and utilit

#6 Post by gyro »

This is mostly a bug fix release with one notable exception.

1. New utility 'MI Update frugal' has been added.
This uses an appropriate downloaded '.tar' file to update the MI files in a Puppy frugal install directory.
If the install directory contains no existing MI files, the MI is added, i.e. "installed".

2. 'mio_utils.txt' has been updated to include 'MI Update frugal'.

3. New file 'mi-update-frugal_2.sfs' is available.
This is meant to be used as an "Extra sfs" in a "normal" Puppy,
it provides the utilities 'MI Update frugal' and 'MI Boot config'.

4. Added a catch-all to 'rc.shutdown' processing to umount any stray mounted overlayfs stacks.
(Overlayfs is a useful tool for "merging" multiple directories, mount them in a stack and then process the mountpoint.)

5. No "saving" is done if the device is "ro".
This could apply if you boot from an SD card, and then "lock" by moving the slider on the side of the card.

6. 'FrugalPup' has been fixed so that it adds "pfix=trim" to the boot entry if it finds an SSD as
either an install device, or a default save device, (not just an install device).

7. 'change_kernels' has been fixed so that it doesn't produce an update during the next boot,
i.e. a pink "next boot will be faster!" message.


Downloads available from http://www.mediafire.com/folder/q04fxq43exkfr/mio:
'mio_utils.txt'
'mio13_bionicpup32_8.0.tar'
'mio13_bionicpup64_8.0.tar'
'mi-update-frugal_2.sfs'
'README.txt'

Downloads available from http://www.mediafire.com/folder/7y3c7eafptzao/zipboot:
'mio12_bionicpup32_8.0.zip___mio13_bionicpup32_8.0.zip.delta'
'mio13_bionicpup32_8.0.zip'

Downloads available from http://www.mediafire.com/folder/rdyc5lgzpeij1/frugalpup:
'frugalpup-13.pet'
'frugalpup-13.sfs'


Installing mio v13:

The 3.8MiB + 8.0KiB download option:

Like the previous release, each '.tar' contains 2 files, an 'mio_initrd.gz' and an 'mio13...sfs'.
But now we can take advantage of the new 'MI Update frugal' utility.

This method requires a working Puppy, some space on a Linux partition, and a usb stick (optional).

1. Either, do a fresh frugal install of 'bionicpup32_8.0' or 'bionicpup64_8.0', or use an existing one.
2. Download the appropriate 'mio13...tar' file and copy it to this install directory.
3. In a "normal" Puppy, download 'mi-update-frugal_2.sfs' and load it with 'SFS-Load on-the-fly'.
3. From the menu, run "Setup->MI Update frugal", and select the 'bionicpup' install directory from step 2.
4 . When 'MI Update frugal' is "done", the install directory is ready to do a first boot with "mio" active.

But, the "mio" 'init' will quickly abort the boot, if the install directory is not specified in boot parameters.
(See the "Install Directory Boot parameters" section of the 'README.txt' file for more detail.)

Either
5a. Edit the relevent boot entry to ensure that it includes "pdrv=<partition>" and "psubdir=</relative/path/to/install/directory>" boot paramaters, and reboot.
or
5b. Using the "Boot" facility in "FrugalPup", setup a usb stick to boot the Puppy in the install directory, and boot the usb stick.

Of course the same result could fairly easily be done manually.

The 27.0MiB download 'zipboot' option:

If you already have a copy of 'mio12_bionicpup32_8.0.zip',
download 'mio12_bionicpup32_8.0.zip___mio13_bionicpup32_8.0.zip.delta'.
Use that to create an 'mio13_bionicpup32_8.0.zip', then do the following process from step 2.

The 270.1MiB download 'zipboot' option:

1. Download 'mio13_bionicpup32_8.0.zip'.

2. Setup an empty fat32 usb stick with a volume label of "USBPBOOT", (without the quotes).
In Puppy, you should be able to use the CLI utility 'fatlabel' to set the volume label.
3. Unzip the contents of 'mio13_bionicpup32_8.0.zip' into the root of the usb stick.
4. If your machine requires a non-uefi boot, use the utilities in either /utils/lin or /utils/win to write an mbr to the stick.
5. Boot the usb stick, this is a first boot with "mio" active.

This provides the opportunity to either, explore the capabilities of this "mio" fat32 based installation,
or to use the "FrugalPup v13" in this "mio" Puppy, to install 'mio13_bionicpup32_8.0.zip' to a Linux partition.

Of course if you have a Puppy with a working "FrugalPup v13", you can use it to install 'mio13_bionicpup32_8.0.zip' however you choose.


Note - bionicpup64:
After updating with bionicpup64 fixes in 'QuickPet', you may find that the MI utilities show as v11.
This is because bionicpup64 fixes include "FrugalPup v11".
This can be fixed by downloading 'frugalpup-13.pet' and installing it.

Note - bionicpup32:
It can still be updated from '.delta' files just like a "normal" bionicpup32.

gyro
Last edited by gyro on Sat 18 May 2019, 14:04, edited 3 times in total.

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

#7 Post by wiak »

Hi gyro,

Just tried your mio v.13 quickly on my existing bionicpup64 frugal install. Only booted but haven't checked your initramfs/init out but note you've made it much smaller than traditional Puppy init which is a good thing. One result of that cut was probably that my first attempt to boot mio bionicpup is that it failed owing to couldn't find pdrv since I hadn't specified that in my original bionicpup grub2 boot config. Presumably the larger traditional pup init searches for relevant psubdir and finds the partition without needing pdrv specified. But I agree with you that such added init complexity isn't a good thing when a simple boot parameter pdrv can be used to avoid need of extra init search code.

Also noted you prefer new boot param names psfspart and psfsdir instead of pdrv and psubdir presumably because parts of pup boot filed don't need to be kept in pdrv/psubdir so psfs___ more clearly specifies the relevant sfs storage location. I see you made that backwards compatible which is just as well since most are so used to using psubdir (but not so used to specifying pdrv I expect, so I'd suggest you really emphasise that psfspart requirement. Yes, its in the README but like most I read too briefly hence my recommending even more early emphasis since some may just give up if boot fails).

Congratulations however in the overall quality of your early documentation. It is generally very clear, detailed, and nicely written. My only small suggestion re that is that the steps for installation could do with being presented at the top of a separate post since these steps are nice and simple but buried inside longer text. But that'd a minor issue comment caused by my own bad habit to skim text and not notice some important details.

I'm too busy on my own dev workvat the moment to check out your init script, but I understand from your operation description what is basically in there at present in terms of how you are using/setting up your overlayfs layers.

Anyway, I feel that mio simplified init (more done instead in external-to-initramfs userspace utils) will be a nice improvement in future Puppy releases.

wiak
Last edited by wiak on Fri 17 May 2019, 07:37, edited 1 time in total.

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#8 Post by musher0 »

Hi, gyro.

I know next to nothing about this initial step of booting a Puppy, but I have a hunch
that you and your utility could give a much needed helping hand to those of us ( me,
certainly! ) who are trying to build new Pups with jamesbond's woof-Next.

No obligation of course, but I think there would perhaps be great potential if the two
projects were in sync, with your "mio" alternative initrd and distro loader as the
"locomotive". ( Please excuse the comparison! )

TIA, whatever you decide.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#9 Post by musher0 »

Oops. Double. Sorry.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

#10 Post by gyro »

@wiak,

My mistake, I forgot that in using only "MI Update frugal" to do the upgrade, (unlike v12, which depened on "FrugalPup v12") the boot entry remained untouched.

I have made some quick modifications to the post, which hopefully makes things clearer.

In hindsight I probably should include "FrugalPup" in "mi-update-frugal" and have the instructions boot a usb stick.

gyro.

gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

#11 Post by gyro »

@musher0,
Thanks, but no thanks.

gyro

gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

'mi-update-frugal_3.sfs' - modified install instructions

#12 Post by gyro »

I have uploaded 'mi-update-frugal_3.sfs' to http://www.mediafire.com/folder/q04fxq43exkfr/mio.
It now contains 'FrugalPup v13'.

The modified install instructions follow:

Installing mio v13:

The 3.8MiB + 2.6MiB download option:

This method requires a working Puppy, some space on a Linux partition, and an empty fat32 stick.

1. Either, do a fresh frugal install of 'bionicpup32_8.0' or 'bionicpup64_8.0', or use an existing one.
2. Download the appropriate 'mio13...tar' file and copy it to this install directory.
3. In a "normal" Puppy, download 'mi-update-frugal_3.sfs' and load it with 'SFS-Load on-the-fly'.
3. From the menu, run "Setup->MI Update frugal", and select the 'bionicpup' install directory from step 2.
4. Wait until you get a "done" message from 'MI Update frugal'.
5. Insert the fat32 usb stick.
6. From the menu, run "Setup->FrugalPup - Puppy frugal installer", and select the "Boot" facility,
setup the usb stick to boot the 'bionicpup' install directory from step 2.
7. Boot the usb stick, which boots the Puppy that has just been installed in the directory in the Linux partition,
this is a first boot with "mio" active.

Of course the same result could be done manually fairly easily,
but just make sure you pay particular attention to the "Install Directory Boot parameters" section of the 'README.txt' file.
If the install directory is not specified, the "mio" 'init' will quickly abort the boot.

It's probably a good idea to use the usb stick, even if you intend to, or do already,
boot the selected install directory using a different boot device.
The generated boot-entry on the usb stick can be used as a template for your real boot-entry.

gyro

Rangan Masti
Posts: 37
Joined: Tue 01 Jan 2013, 19:23
Location: Germany, Berlin

#13 Post by Rangan Masti »

Hi, I am using your Mio on LxpupSc64 and testing it since a week.
Thank you and have a great day.
Rangan.

gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

#14 Post by gyro »

Rangan Masti wrote:Hi, I am using your Mio on LxpupSc64 and testing it since a week.
Interesting, I have not tested "mio" on LxpupSc64.
Did you use 'mio13_bionicpup64_8.0.tar'?

gyro

Rangan Masti
Posts: 37
Joined: Tue 01 Jan 2013, 19:23
Location: Germany, Berlin

#15 Post by Rangan Masti »

Hi, yes I user your mio13_bionicpup64_8.0
with some changes manually done.
Thank you and have a great day.

Rangan.

gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

Minimal Init Overlay v14 (mio) - alternate "init" and utilit

#16 Post by gyro »

Minimal Init Overlay v14 (mio) - alternate "init" and utilities

This release explores a couple of concepts, and so introduces some new utilities.

1. Files can be "removed" by simply forgetting to "save" them.
For the save layer:
On shutdown a tar archive of the current RW directory is written, but specifying an exclude file that contains a list of all files that need to be "removed".
In 'init' the RW directory is clobbered with this tar archive, and so the new stack is built without the "removed" files.

The new CLI utilities 'clear-save-list', 'clear-save-dir', 'clear-save-file', and 'clear-save-mi', implement this concept.

2. When writing to the save layer (or a '.sfs' file), process only files, and write them to the "real-directory" as it exists in the current file system (i.e. the stack).
If $ONE_FILE contains the /path/name of a file, then;
REAL_DIR="$(readlink -m "$(dirname "$ONE_FILE")")"
Symbolic links are treated as normal files, except when writing to the save layer, then symbolic links that point to a directory are processed before other files.
Actually the code never tries to write directly to a layer, it leaves that to the stack code, e.g. overlayfs.

The GUI utility "Menu->Utility->MI Save squash" uses implementations of both these concepts for both save layer and '.sfs' files.
It can move installed files between the save layer and adrv.
This is particularly useful for minimising the size of the tar file when using an "Archive" save mechanism.
In "bionicpup64" it can also move updated files between the save layer and ydrv.


Downloads available from http://www.mediafire.com/folder/q04fxq43exkfr/mio:
'mio_utils.txt'
'mio14_bionicpup32_8.0.tar'
'mio14_bionicpup64_8.0.tar'

Downloads available from http://www.mediafire.com/folder/7y3c7eafptzao/zipboot:
'mio13_bionicpup32_8.0.zip___mio14_bionicpup32_8.0.zip.delta'
'mio14_bionicpup32_8.0.zip'


Installing mio v14:

From running mio v13:
1. Download the appropriate 'mio14...tar' file.
2. From the menu, run "Setup->MI Update frugal".
3. Reboot.

Manual install, add "mio" to running "normal" 'bionicpup32_8.0' or 'bionicpup64_8.0':
1. Download the appropriate 'mio14...tar' file, and extract it's contents into the current Puppy install directory.
At this point, all you really need to do is boot using 'mio_initrd.gz' instead of 'initrd.gz', provided that your boot entry for the current Puppy defines the install location appropriately.
So I suggest you use the following method, even though it seems a little verbose.
2. Run 'SFS-Load on-the-fly' and load 'mio14_upupbb_19.03.sfs' (or 'mio14_bionicpup64_8.0.sfs') as an extra sfs.
3. Check that your boot entry is ok.
In a console issue a command like "bootentry /path/to/current/Puppy/install/directory mbr'.
Compare the "pdrv=" and "psubdir=" parameters with your currrent boot-entry and adjust appropriately.
Note: The 'init' in "mio" does not search, the location of the Puppy '.sfs' files must be specified.
4. From the menu, run "Setup->MI Boot config", and select 'Enable'.
This copies the current 'initrd.gz' to 'release_initrd.gz', and 'mio_initrd.gz' to 'initrd.gz'.
Subsequently, you can then use "Setup->MI Boot config->Disable" and reboot to "normal" Puppy.
5. When done, reboot. This will be a first boot using "mio".

The 23.MiB download 'zipboot' option:
If you already have a copy of 'mio13_bionicpup32_8.0.zip', download 'mio13_bionicpup32_8.0.zip___mio14_bionicpup32_8.0.zip.delta'.
Use that to create an 'mio13_bionicpup32_8.0.zip', then do the following process from step 2.

The 270.9MiB download 'zipboot' option:
1. Download 'mio14_bionicpup32_8.0.zip'.
2. Setup an empty fat32 usb stick with a volume label of "USBPBOOT", (without the quotes).
In Puppy, you should be able to use the CLI utility 'fatlabel' to set the volume label.
3. Unzip the contents of 'mio14_bionicpup32_8.0.zip' into the root of the usb stick.
4. If your machine requires a non-uefi boot, use the utilities in either /utils/lin or /utils/win to write an mbr to the stick.
5. Boot the usb stick, this is a first boot with "mio" active.

This provides the opportunity to either, explore the capabilities of this "mio" fat32 based installation,
or to use the "FrugalPup v14" in this "mio" Puppy, to install 'mio14_bionicpup32_8.0.zip' to a Linux partition.

Of course if you have a Puppy with a working "FrugalPup v13", you can use it to install 'mio14_bionicpup32_8.0.zip' however you choose.


Note - bionicpup64:
After updating with "Setup->Puppy Updates" or "quickpet->Bionicpup updates", you may find that the MI utilities show as v11.
This is because the downloaded file, 'bionic64fix.zip', contains "FrugalPup v11".
You can use "Utility->MI Save squash->save2ydrv" to move the files written by "Puppy Updates" to ydrv.

Note - bionicpup32:
It can still be updated from '.delta' files just like a "normal" bionicpup32.

gyro

stemsee

#17 Post by stemsee »

Hi gyro

I'm testing mio-v14 with dpupbuster64_8.0.0 by josepi .

Seems to work fine. Although I am not so familiar with using the features yet.

I was wondering if you would consider incorporating an idea for saving to a folder on a fat or ntfs partition. My idea is that the init will be able to mount the ntfs/fat partition, on which is a savefile 'mio_save.4fs' (luks?) which gets mounted at /mnt/mio_save , and makes available the /mnt/mio_save/mio_save_dir ... which is in the savefolder on ntfs/fat formatted partition. I have tested this arrangement for compiling kernels in savefiles on ntfs partition, mounted on /mnt/ram and works fine at full speed, it seems. You would need only add some parsing and a few lines of code to the init to get this up and running using the same variables psfspart psfsdir etc ...

just an idea

thanks for your great INITiative!

stemsee

gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

#18 Post by gyro »

stemsee wrote:I was wondering if you would consider incorporating an idea for saving to a folder on a fat or ntfs partition. My idea is that the init will be able to mount the ntfs/fat partition, on which is a savefile 'mio_save.4fs' (luks?) which gets mounted at /mnt/mio_save , and makes available the /mnt/mio_save/mio_save_dir ... which is in the savefolder on ntfs/fat formatted partition. I have tested this arrangement for compiling kernels in savefiles on ntfs partition, mounted on /mnt/ram and works fine at full speed, it seems. You would need only add some parsing and a few lines of code to the init to get this up and running using the same variables psfspart psfsdir etc ...

just an idea
The short answer is no, I will not be providing a savefile facility in "mio".

The simplest way of implementing pupmode=12, is to use a savefolder.
If you can't provide a Linux partition on an internal drive, then might I susggest you use a usb device.
And if you don't have a spare usb HD, then you can use "f2fs" on a usb stick.
That's why the next version will include a FrugalPup that has full support for "f2fs".
And if your machine is old and can't boot a usb device, then you can try the new FurgalPup's "BootCD", (called "ISO" in older versions).

But apart from that, "mio" does automatic persistent storage creation, savefile doesn't seem like a good canidate for that.

Remember that "normal" Puppy can store the savefolder in a location other than the install diretory, even on a different device.
"mio" has this capability also, but takes it one step further, you can run "MI Save config" at any time and select a different location for your savefolder.
Or if your "mio" Puppy is currently using an "Archive" for persistence, and you then make a Linux partition available, you can run "MI Save config" and change it to "Folder".

gyro

gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

Minimal Init Overlay v16 (mio) - alternate "init" and utilit

#19 Post by gyro »

Minimal Init Overlay v16 (mio) - alternate "init" and utilities

Some notable features of this release:

1. An updated FrugalPup with full support for installing Puppy on an f2fs partition.
It now uses Grub2 for both uefi and non-uefi booting.
Grub2 is compiled from source, nothing is signed, so "SecureBoot" must be inactive on uefi machines.
FrugalPup now includes "Help" and "Setting" facilities, and a few other GUI "improvements".

2. New FrugalPup mimimal frontends, "f2StickPup" and "DiskPup".

3. Many of the GUI utilities now have "Reboot" buttons available, when that is the next appropriate action.

4. "init" script now has a facility to update an sfs file, useful if "pfix=nocopy" is active.
The included version of 'change_kernels' makes use of this facility
to avoid clobbering a zdrv that is loaded and active in the stack.

5. "init" now contains code to deliberately handle symbolic links for ".sfs" files.
Of course these symbolic links must be relative, otherwise they will not be correct in the "init" environment.
e.g. "ln -s ../my_firmware.sfs fdrv_xenialpup_7.5.sfs"

6. Reduced the 'clear-save...' CLI utilities to a single utility 'clear-save'.


Downloads available from http://www.mediafire.com/folder/q04fxq43exkfr/mio:
'mio_utils.txt' (10.2 KiB)
'mio16_bionicpup32_8.0.tar' (3.3 MiB)
'mio16_bionicpup64_8.0.tar' (3.3 MiB)

Downloads available from http://www.mediafire.com/folder/7y3c7eafptzao/zipboot:
'mio14_bionicpup32_8.0.zip___mio16_bionicpup32_8.0.zip.delta' (139.0 MiB)
'mio16_bionicpup32_8.0.zip' (267.1 MiB)

Installing mio v16:

From running mio v14:
1. Download the appropriate 'mio16...tar' file.
2. From the menu, run "Setup->MI Update frugal".
3. Reboot.

Manual install, add "mio" to running "normal" 'bionicpup32_8.0' or 'bionicpup64_8.0':
1. Download the appropriate 'mio16...tar' file, and extract it's contents into the current Puppy install directory.
At this point, all you really need to do is boot using 'mio_initrd.gz' instead of 'initrd.gz',
provided that your boot entry for the current Puppy defines the install location appropriately.
So I suggest you use the following method, even though it seems a little verbose.
2. Run 'SFS-Load on-the-fly' and load 'mio16_upupbb_19.03.sfs' (or 'mio16_bionicpup64_8.0.sfs') as an extra sfs.
3. Check that your boot entry is ok.
In a console issue a command like "bootentry /path/to/current/Puppy/install/directory mbr'.
Compare the "pdrv=" and "psubdir=" parameters with your currrent boot-entry and adjust appropriately.
Note: The 'init' in "mio" does not search, the location of the Puppy '.sfs' files must be specified.
4. From the menu, run "Setup->MI Boot config", and select 'Enable'.
This copies the current 'initrd.gz' to 'release_initrd.gz',
and 'mio_initrd.gz' to 'initrd.gz'.
Subsequently, you can then use "Setup->MI Boot config->Disable" and reboot to "normal" Puppy.
5. When done, reboot. This will be a first boot using "mio".

The 139 MiB download 'zipboot' option:
If you already have a copy of 'mio14_bionicpup32_8.0.zip',
download 'mio14_bionicpup32_8.0.zip___mio16_bionicpup32_8.0.zip.delta'.
Use that to create an 'mio16_bionicpup32_8.0.zip', then do the following process from step 2.

The 267.1 MiB download 'zipboot' option (only for machines that are uefi boot capable):
1. Download 'mio16_bionicpup32_8.0.zip'.
2. Setup an empty fat32 usb stick.
3. Unzip the contents of 'mio16_bionicpup32_8.0.zip' into the root of the usb stick.
4. Do a uefi boot of this usb stick, with "SecureBoot" inactive, this is a first boot with "mio" active.

This provides the opportunity to either, explore the capabilities of this "mio" fat32 based installation,
or to use the "FrugalPup v16" in this "mio" Puppy, to install 'mio16_bionicpup32_8.0.zip' to a Linux partition.

Of course if you have a Puppy with a working "FrugalPup v15", you can use it to install 'mio16_bionicpup32_8.0.zip' however you choose.


Note - bionicpup64:
After updating with "Setup->Puppy Updates" or "quickpet->Bionicpup updates", you may find that the MI utilities show as v11.
This is because the downloaded file, 'bionic64fix.zip', contains "FrugalPup v11".
You can use the CLI command "clear-save -mi" to clear all files in '/usr/local/mi-utils' and '/usr/local/frugalpup' from the current save-layer.
And probably a CLI command "clear-save /root/.config/frugalpup.conf" to make way for an updated FrugalPup v16 config file.

Note - bionicpup32:
It can still be updated using '.delta' files just like a "normal" bionicpup32.

Note - non-uefi booting and 'zipboot':
The hassle is the grub2 mbr install tool 'grub-bios-setup'.
While I have a simple GUI wrapper script for linux,
the Windows version is even more painful to use, and I don't have a Windows wrapper script.
So I've opted to omit non-uefi support for this version of the ".zip"

Note - different versions:
The difference between the bionicpup32 and bionicpup64 versions has nothing to do with 32bit<->64bit.
It's due to the existing Puppy utility scripts that get replaced by "mio" being different, depending on the when they were "woofed".

gyro

gyro
Posts: 1798
Joined: Tue 28 Oct 2008, 21:35
Location: Brisbane, Australia

#20 Post by gyro »

Minimal Init Overlay v17 (mio) - alternate "init" and utilities

This is a bug fix release:

1. 'StickPup' and 'f2StickPup' no longer reject 1GB USB stick, they will now accept a USB stick as small as 512MB.

2. 'clear-save' now includes "-mic" parmmeter that removes all files in '/usr/local/mi-utils', '/usr/local/frugalpup', and FrugalPup config file, '/root/.config/frugalpup.conf'.

Downloads available from http://www.mediafire.com/folder/q04fxq43exkfr/mio:
'mio17_bionicpup32_8.0.tar' (3.3 MiB)
'mio17_bionicpup64_8.0.tar' (3.3 MiB)

Installing mio v17:

From running mio v16:
1. Download the appropriate 'mio17...tar' file.
2. From the menu, run "Setup->MI Update frugal".
3. Reboot.

Manual install, add "mio" to running "normal" 'bionicpup32_8.0' or 'bionicpup64_8.0':
1. Download the appropriate 'mio17...tar' file, and extract it's contents into the current Puppy install directory.
At this point, all you really need to do is boot using 'mio_initrd.gz' instead of 'initrd.gz',
provided that your boot entry for the current Puppy defines the install location appropriately.
So I suggest you use the following method, even though it seems a little verbose.
2. Run 'SFS-Load on-the-fly' and load 'mio17_upupbb_19.03.sfs' (or 'mio17_bionicpup64_8.0.sfs') as an extra sfs.
3. Check that your boot entry is ok.
In a console issue a command like "bootentry /path/to/current/Puppy/install/directory mbr'.
Compare the "pdrv=" and "psubdir=" parameters with your currrent boot-entry and adjust appropriately.
Note: The 'init' in "mio" does not search, the location of the Puppy '.sfs' files must be specified.
4. From the menu, run "Setup->MI Boot config", and select 'Enable'.
This copies the current 'initrd.gz' to 'release_initrd.gz',
and 'mio_initrd.gz' to 'initrd.gz'.
Subsequently, you can then use "Setup->MI Boot config->Disable" and reboot to "normal" Puppy.
5. When done, reboot. This will be a first boot using "mio".

Note - bionicpup64:
After updating with "Setup->Puppy Updates" or "quickpet->Bionicpup updates", you may find that the MI utilities show as v11.
This is because the downloaded file, 'bionic64fix.zip', contains "FrugalPup v11".
You can use the CLI command "clear-save -mic" to clear all files in '/usr/local/mi-utils' and '/usr/local/frugalpup',
and remove FrugalPup config file '/root/.config/frugalpup.conf' from the current save-layer.

Note - bionicpup32:
It can still be updated using '.delta' files just like a "normal" bionicpup32.

gyro

Post Reply