Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Fri 15 Dec 2017, 12:21
All times are UTC - 4
 Forum index » Advanced Topics » Cutting edge
Another re-write of the "init" script - using OverlayFs?
Moderators: Flash, Ian, JohnMurga
Post new topic   Reply to topic View previous topic :: View next topic
Page 2 of 7 [96 Posts]   Goto page: Previous 1, 2, 3, 4, 5, 6, 7 Next
Author Message
peebee


Joined: 21 Sep 2008
Posts: 3038
Location: Worcestershire, UK

PostPosted: Wed 07 Jun 2017, 03:40    Post subject:  

[FIXED] - see below

Tried both:
Code:
kernel /devtest/vmlinuz  pmedia=atahd pdrv=sda3:/devtest/ psubdir=devtest pfix=fsck
and
Code:
kernel /devtest/vmlinuz  pmedia=atahd pdrv=Linux-2:/devtest/ psubdir=devtest pfix=fsck


In both cases got:
Quote:
*** Puppy install partition not specified
Code:
# blkid
/dev/sda3: LABEL="Linux-2" UUID="95a633e7-6fab-431d-9fa8-550812ab03f8" TYPE="ext4" PARTUUID="ee50f428-03"


The frugal install folder is /devtest and it's on /dev/sda3.....

What am I missing???

_________________
LxPup = Puppy + LXDE

Last edited by peebee on Fri 09 Jun 2017, 03:12; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website 
gyro

Joined: 28 Oct 2008
Posts: 1409
Location: Brisbane, Australia

PostPosted: Thu 08 Jun 2017, 06:32    Post subject:  

@peebee,
try
Code:
kernel /devtest/vmlinuz  pmedia=atahd pdrv=sda3:/devtest/ pfix=fsck
or
Code:
kernel /devtest/vmlinuz  pmedia=atahd pdrv=Linux-2 psubdir=/devtest pfix=fsck
My current kernel line is
Code:
  kernel /puppy/slacko/vmlinuz libata.noacpi=1 pmedia=atahd pdrv=Work psubdir=/puppy/slacko pfix=fsckp,nosave,copy
Unfortunately I commented out the line of code that prepends a "/" to psubdir so if specifying a "psubdir=" parameter it must start with a "/". (I'll fix that in the next version.)
Also best tot specify either a directory in the "pdrv=" parameter or with a "psubdir=" paramater, not both.
But I don't understand why "pdrv=sda3:/devtest/" didn't work.
I'll do some testing with boot paramaters like yours, and see if I can get it to fail.

gyro
Back to top
View user's profile Send private message 
gyro

Joined: 28 Oct 2008
Posts: 1409
Location: Brisbane, Australia

PostPosted: Thu 08 Jun 2017, 07:26    Post subject:  

The missing "/" on psubdir does cause havoc, only for me the kernel line
Code:
  kernel /puppy/slacko/vmlinuz libata.noacpi=1 pmedia=atahd pdrv=sdb2:/puppy/slacko/ psubdir=puppy/slacko pfix=fsck
Still boots, but it loads only the puppy...sfs file, and hangs on shutdown.
But
Code:
  kernel /puppy/slacko/vmlinuz libata.noacpi=1 pmedia=atahd pdrv=sdb2 psubdir=/puppy/slacko pfix=fsck
worked fine.
I have uploaded a new version that does prepend a "/" to psubdir if it's not specified.
It also definitely does propagate a directory specified as "pdrv=sdb6:/subdir/" as though "psubdir=/subdir" had been specified, provided that "psubdir=" is not specified.
So, these are the equivalent
Code:
pdrv=Work:/subdir/
and
Code:
pdrv=Work psubdir=/subdir

The new version does other stuff as well but I'll cover that in a later post.

gyro
Back to top
View user's profile Send private message 
gyro

Joined: 28 Oct 2008
Posts: 1409
Location: Brisbane, Australia

PostPosted: Thu 08 Jun 2017, 11:41    Post subject: Announcing a new version  

Thanks to the folk who have tired to run this thing.
Trying to reproduce the problems that have been reported, has led to the fixing of some bugs.
Frustratingly, I still haven't been able to reproduce the same experiences.

But this post is to announce that a new version has been uploaded. (See first post for download utl's.)
Given BarryK's success with an overlay with a simple directory on disk as an rw layer,
I've decided to change the script in two ways.
1. It's now capable of doing the equivalent of a pupmode=5 boot using a directory on a disk as the rw layer instead of a directory in a tmpfs.
If you specify "pfix=nocopy", the sfs's are mounted directly off the disk and a save-directory is created and used as the rw layer.
As a consequence of this, on reboot the save-directory is found and it does a pupmode=12 boot.
This provides persistency without resort to "shutdowconfig". (Of couorse only on a Linux partition.)
In my testing I have a "shutdownconfig" that does nothing if "pfix=nosave" is specified, so I don't have to click on a "No" button on first shutdown.
2. The algorithm has been slightly modified, so that when processing each sfs one by one, each successfully mounted sfs is added to a list, not added to the stack.
Then there is a block of code that builds the stack using these lists of directories.
The idea is that when replacing aufs with overlays, it's all happening in a single block of code.

gyro
Back to top
View user's profile Send private message 
peebee


Joined: 21 Sep 2008
Posts: 3038
Location: Worcestershire, UK

PostPosted: Thu 08 Jun 2017, 12:33    Post subject:  

[FIXED] see below

Hi gyro - latest initrd.gz.....

I get:
*** Puppy install partition not specified

whatever combination of pdrv and psubdir I try.....

Is it because I'm using uuid??

Last attempt was:
Code:
title Devtest (sda3/devtest)
  uuid 95a633e7-6fab-431d-9fa8-550812ab03f8
  kernel /devtest/vmlinuz  pmedia=atahd pdrv=sda3:/devtest/ pfix=fsck
  initrd /devtest/initrd.gz

_________________
LxPup = Puppy + LXDE

Last edited by peebee on Fri 09 Jun 2017, 03:11; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website 
Keef


Joined: 20 Dec 2007
Posts: 875
Location: Staffordshire

PostPosted: Thu 08 Jun 2017, 15:10    Post subject:  

@peebee

I used UUID and it works for me.

Code:
title tahrpup
  uuid ba259b38-29a0-40e7-84bc-032f1d46204b
  kernel /tahr/vmlinuz psubdir=tahr pmedia=atahd  pdrv=sda2:/tahr/ zdrv=sda2:/tahr/zdrv_tahr_6.0.6.sfs
  initrd /tahr/initrd.gz
Back to top
View user's profile Send private message 
peebee


Joined: 21 Sep 2008
Posts: 3038
Location: Worcestershire, UK

PostPosted: Fri 09 Jun 2017, 03:10    Post subject:  

Sorry - found my error - I'd put the wrong "version" of DISTRO_SPECS into the frugal subdirectory - I'd used the version which goes into the woof-ce process rather than the output of woof-ce and therefore does not include the *drv specifications.....

With the correct DISTRO_SPECS, boots as expected!

_________________
LxPup = Puppy + LXDE
Back to top
View user's profile Send private message Visit poster's website 
gyro

Joined: 28 Oct 2008
Posts: 1409
Location: Brisbane, Australia

PostPosted: Fri 09 Jun 2017, 06:05    Post subject:  

@Keef,
You shouldn't need the "zdrv=" parameter.
I'm successfully booting xenial 7.0.8.1 with this boot entry:
Code:
title Puppy xenial 7.0.8.1 (sdc2/xenial)
  uuid e9e64b47-ccd4-42c5-aeff-e771e264af3c
  kernel /puppy/xenial/vmlinuz acpi_osi=Linux libata.noacpi=1 intel_pstate=disable pdrv=isoSave:/puppy/xenial/ pfix=nosave
  initrd /puppy/xenial/initrd.gz
And it picks up my ydrv and my zdrv.

@peebee,
Great, it now works for you.

Note: I using xenial 7.0.8.1 as my testbed because it has overlays enabled in it's 4.9.13 kernel. And now I'm playing with overlays.

gyro
Back to top
View user's profile Send private message 
gyro

Joined: 28 Oct 2008
Posts: 1409
Location: Brisbane, Australia

PostPosted: Fri 09 Jun 2017, 10:20    Post subject: Announcing a new version  

I've done it.
The new version I've just uploaded to http://www.fishprogs.software/puppy/initrd/init and http://www.fishprogs.software/puppy/initrd/initrd.gz uses overlays to create the stack instead of aufs.

I used xenial 7.0.8.1 as my test bed, since it's kernel has overlay support as a module.

A normal first boot will boot like a normal pupmode=5 with sfs's copied to ram and the rw layer in tmpfs.
It you add a "pfix=nocopy" boot parameter and the frugal install directory is on a linux partition, it will create and use a savefolder for rw. On second boot it will do a pupmode=12 type boot with the savefolder as the rw layer.

Note: If you see the normal first shutdown config, always click on the "No" button.

Of course this is just first step, a proof of concept, there are lot's of things it can't do.
And a significant amount of effort to sortout exactly what it can do.

Observations:
It seems rather slow at shutting down.
I wonder how much of the rest of puppy has difficulties when booted with this init because aufs is assumed?

gyro

Last edited by gyro on Fri 09 Jun 2017, 15:00; edited 1 time in total
Back to top
View user's profile Send private message 
gyro

Joined: 28 Oct 2008
Posts: 1409
Location: Brisbane, Australia

PostPosted: Fri 09 Jun 2017, 15:00    Post subject:  

I've just uploaded a couple of files that I find useful with this init.

http://www.fishprogs.software/puppy/initrd/shutdownconfig is a patched "/ust/sbin/shutdownconfig" that honours "pfix=nosave" by doing absolutely nothing.

http://www.fishprogs.software/puppy/initrd/TIME_ZONE is an example file that enables "init" to set the time zone for itself and for the booted puppy. It has to be "/TIME_ZONE" in the "initrd.gz".
The TZ part before the ':' sets the time for "init", and the part after the ':' sets the time for the booted puppy.
Can completely remove all "Time of last mount...." error messages from fsck.

gyro
Back to top
View user's profile Send private message 
peebee


Joined: 21 Sep 2008
Posts: 3038
Location: Worcestershire, UK

PostPosted: Sat 10 Jun 2017, 04:54    Post subject:  

Just to report that the initrd.gz of 9-jun used together with the xenial-7.0.8.1 kernel 4.9.13 booted fine for me.....
also renamed my chromium .sfs to an adrv and that was loaded correctly.
Cheers
peebee

_________________
LxPup = Puppy + LXDE
Back to top
View user's profile Send private message Visit poster's website 
gyro

Joined: 28 Oct 2008
Posts: 1409
Location: Brisbane, Australia

PostPosted: Sat 10 Jun 2017, 11:21    Post subject:  

@peebee,
I've finally worked out why your deficient DISTRO_SPECS resulted in the misleading error message it did.
The function that deciphers the "pdrv=" boot parameter, does nothing if there's no default filename provided, thus ignoring any valid information that might be provided in the "pdrv=" parameter.
I'll try to fix this in the next version.

gyro
Back to top
View user's profile Send private message 
gyro

Joined: 28 Oct 2008
Posts: 1409
Location: Brisbane, Australia

PostPosted: Sat 10 Jun 2017, 11:23    Post subject:  

Thanks to all the folk who have taken the time to download and try this stuff, I do appreciate it.
gyro
Back to top
View user's profile Send private message 
gyro

Joined: 28 Oct 2008
Posts: 1409
Location: Brisbane, Australia

PostPosted: Sun 11 Jun 2017, 06:50    Post subject: Announcing a new version  

I've uploaded new versions to http://www.fishprogs.software/puppy/initrd/init and http://www.fishprogs.software/puppy/initrd/initrd.gz.

Changes in this 11 June version:
1. Improved error reporting, particularly in the early "sorting out boot parameters" phase.
2. Interpretation of "pdrv=sdb2:dir/filename.sfs" has changed from "sdb2:/dir/filename.sfs" to "sdb2:/psubdir/dir/filename"
3. Checks for the existence of the "overlay" module, and error exits if it's not found.
4. Writes a "POVERLAY='yes'" line to PUPSTATE, if overlay support is found.
5. Builds the stack in 2 phases, first an ro sfss stack, mounted on "/pup_sfss" and then the full rw stack at "/pup_new".

I've also uploaded a couple of scripts I use a lot when working with "initrd.gz":
http://www.fishprogs.software/puppy/initrd/file2initrd and http://www.fishprogs.software/puppy/initrd/initrd2file.
Just execute them without any parameters to see the "Usage" info.

gyro
Back to top
View user's profile Send private message 
Moose On The Loose


Joined: 24 Feb 2011
Posts: 773

PostPosted: Sun 11 Jun 2017, 11:24    Post subject: Re: Announcing a new version  

gyro wrote:
I've uploaded new versions to http://www.fishprogs.software/puppy/initrd/init and http://www.fishprogs.software/puppy/initrd/initrd.gz.

Changes in this 11 June version:
1. Improved error reporting, particularly in the early "sorting out boot parameters" phase.
2. Interpretation of "pdrv=sdb2:dir/filename.sfs" has changed from "sdb2:/dir/filename.sfs" to "sdb2:/psubdir/dir/filename"
3. Checks for the existence of the "overlay" module, and error exits if it's not found.
4. Writes a "POVERLAY='yes'" line to PUPSTATE, if overlay support is found.
5. Builds the stack in 2 phases, first an ro sfss stack, mounted on "/pup_sfss" and then the full rw stack at "/pup_new".

I've also uploaded a couple of scripts I use a lot when working with "initrd.gz":
http://www.fishprogs.software/puppy/initrd/file2initrd and http://www.fishprogs.software/puppy/initrd/initrd2file.
Just execute them without any parameters to see the "Usage" info.

gyro


I haven't been watching closely but had an idea
Has the loading of an SFS on the fly been made possible yet?
If not perhaps a "fast reboot" could be added that doesn't reboot but instead pivots off the overlayed file system makes changes and goes back onto the modified overlayed system. This would be a lot faster than a complete reboot.
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 2 of 7 [96 Posts]   Goto page: Previous 1, 2, 3, 4, 5, 6, 7 Next
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Advanced Topics » Cutting edge
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0575s ][ Queries: 14 (0.0039s) ][ GZIP on ]