New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add overlay support to initrd.gz #2963
Add overlay support to initrd.gz #2963
Conversation
b9fbde9
to
b54b4dc
Compare
A brief test of the init and sfs_load on bionic64 installed in a HD shows no problem (using aufs). Using the sfs_load with fugalified vDpup not much is happening. Bottom line, more testing is needed. |
Forgot to mention that adding a |
This won't work with Vanilla Dpup, it relies on the changes in 3builddistro. |
I managed to get bionic64 (in a subdir) going with overlayfs. Looks OK. |
I just added in the init a pfix option |
As I mentioned earlier - sfs_load is used only to select the SFSs to load at boot time. |
I do not expect to SFS_load to load the SFS in the overlayfs. |
The f997a89 init still gives kernel panic trying to load an extrasfslist sfs file |
https://github.com/dimkr/woof-CE/releases/tag/vanillaupup-22.03-beta4-overlay is a rebuild of Vanilla Upup 22.03 beta4, with this branch merged. Tested saving into a savefile under the partition root and saving to a folder (with psubdir) seem to work just fine. I tested loading of SFSs from psubdir and from the root, and made sure init continues if a SFS is missing or invalid. |
The init in vanillaupup-22.03-beta4-overlay works as advertised with overlayfs AND in with aufs (removed PUNIONFS from the puppy sfs PUPSTATE file that init looks at to deside for the unionfs) |
Not sure if this is a design choice buy acfc73d finds extraSFSs only in then PSUBDIR and not at the root of the partition |
6ae9d21 still fails for me to load SFSs from the root of the partition in overlayfs. |
Looks like that what is happening is the |
dfde6df works as expected both under overlayfs and aufs. One issue I noticed under AUFS is that sfs_load fails to unload extra SFSs indicating that they are in use. Does not appear to be an sfs_load issue as the woof-ce version also fails. Looks like is an effect of the way extra SFSs are mounted in the union now. |
Not sure if a68b4ff aims to address the unloading of extraSFSs loaded in the union at boot time under AUFS, but it does not. BTW I find this addition handy (for me now and) in case unionfs becomes user-configurable
|
6e72953 still fails to unload extrasfs. BTW the addition of "filesystem used" at the switch_root stage is impossible to catch up at the console and fairly late in the game to be of any use to the user. |
Is it with aufs? If yes and it's the same behavior as in testing before this PR, I'm not going to fix this. If it's with overlay, then sfs_load shouldn't try to unload, and it's a bug I need to fix. |
This with AUFS and this behaviour appears to be triggered by the specific PR. Could be an issue with busybox mount and mount-FULL or something else in vanillaupup-22.03-beta4-overlay that triggers that. If not, this PR breaks the sfs_load function for aufs-running puppies |
9.0.35 is not built from testing (very far behind), so this is irrelevant. I'll test everything aufs-related in a dpup built from this PR. |
Not sure how relevant 9.0.35 is, but using the the 6e72953 init with it gives NO problem in unloading sfs files from the extrasfs list. Latter I may test the sfs_load in that environment too. |
The sfs_load from this PR also works in 9.0.35 with or without the new init. |
Why not break up I'm hearing you about (edit) |
Tried that! It does so many things in one script, and some things work for the wrong reason: for example, loaded SFSs are considered to be loaded because it checks the output of But maybe I can write a simple replacement, just a list of SFs with checkboxes (load next time or not).
Yes, like I did with snapmergepuppy - I think this is a better approach. |
@01micko What do you think? |
It's a reasonable start. Bear in mind some scripts call |
0e8b54e
to
ee1a3f5
Compare
Using a upup built from this PR for weeks now and it works very very well. snapmergepuppy.overlay is pretty efficient, and it's much faster than the aufs equivalent. Application start times are great (much better than aufs, probably because pup_rw acts as a cache layer), and changes don't get lost like they sometimes do with aufs, because the inherent race condition between whiteouts handling in snapmergepuppy and the creation of new files is not a problem with overlay. IMHO, the PUPMODE 13 user experience with a slow flash drive, enough RAM and zram swap is much better compared to aufs (but not because overlay is 'better'). There are limitations compared to aufs, like the inability to load a SFS without having to reboot (which I don't find very limiting myself, I |
9e23607
to
bc4505e
Compare
Still not merged or further tested? :-o |
I'm waiting for @01micko to decide (and I'm giving others time to raise objections) - I think this PR is not perfect, but good enough for a beta release followed by small fixes. I'm using a Puppy built from it as a daily driver on one of my laptops, and it works great. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still have had no time to test this but I'm thinking about waving it through.
As long as it's not the default and doesn't break aufs in any way, I don't think it's risky. |
eedb22d
to
ff0d3c2
Compare
I've been using overlay since March, and it still works very well. The only problem I had was the small size of pup_rw: if you |
f5134a7
to
e24d50a
Compare
@puppylinux-woof-CE/members @puppylinux-woof-CE/founders Objections to this PR? |
3 months since the last commit in the PR, is pleanty of time for review. |
I squashed this PR about a week ago. I added a I want to cherry-pick this PR into Vanilla Dpup 9.2.x, as a "technology preview" for users who want to try overlay. Some users will find this useful, especially those hit by #3187. |
Forget cherry picking |
With this PR, a Puppy built with
UNIONFS=overlay
uses overlay instead of aufs. sfs_load only manages the list of SFSs to load at boot time, and SFSs cannot be loaded on-the-fly.Still testing this. So far, tested live boot and use of a savefolder. Seems to boot faster in a VM, compared to aufs, but it could be an illusion.
sfs_load has many levels of indentation, making it impossible to minimize the changes. It's easier to review this PR with whitespace changes hidden: https://github.com/puppylinux-woof-CE/woof-CE/pull/2963/files?diff=unified&w=1.