Page 1 of 2
Sanderdog 1.8: load and use other linux distro in puppy
Posted: Sat 15 Jun 2019, 00:12
by mistfire
Since underdog linux is retired. I think of a new approach based from chroot approach.
It works like an underdog but chrooted compared to mount at bottom layer. This script allows to load the other linux distro partition on the fly and use its application (even older linux distro versions) with desktop integration and file association without breaking the system
It has gui looks like the former underdog gui.
The chrooted environment only sees the host /root, /home, /mnt, and /media. Everyone is welcome to improve this program. Icon integration is the only missing piece.
How sanderdog works:
1. It will create a directory named /var/vfs
2. The target linux partition will be mounted at /var/vfs/ro_layer
3. Add some flag file at /var/vfs/rw_layer
4. mount /var/vfs/ro_layer, /var/vfs/rw_layer, at /var/vfs/rootfs
5. The /dev, /root, /proc, /sys, /home, /media, /tmp, and /mnt will be bind mounted at /var/vfs/rootfs
6. Generate chrooted desktop files at /usr/local/share/applications
7. Copy some mime xml files from /var/vfs/ro_layer to /usr/local/share/mime
8. Start some services (supports systemd, upstart, runit, and sysvinit [experimental])
Posted: Sat 15 Jun 2019, 09:52
by wiak
I think suggestion is the same (or very similar, except for your planning to mount proc etc in middle layer) as being done in FirstRib leading to one version of WeeDog:
http://www.murga-linux.com/puppy/viewto ... 15#1029315
http://murga-linux.com/puppy/viewtopic. ... 62#1025462
http://murga-linux.com/puppy/viewtopic. ... 27#1027227
http://www.murga-linux.com/puppy/viewto ... 36#1030336
Having said that, FirstRib is being developed to test out both the above chroot overlay (preferred) or aufs fs methods but also more traditional initramfs switch_root (and perhaps also pivot_root with chroot) type boots.
Your middle layer would have to be a read/write layer of course, for proc etc, so maybe only possible with aufs? As far as I remember, but would have to re-read kernel notes on overlayfs, result is undefined according to specs of overlayfs if middle layer used as read/write?).
Looking forward to your own trials/test-code though, since the more code examples and developments like this the better!
wiak
EDIT: By the way, in English, chunder means to vomit, so maybe not the best name...
Posted: Sat 15 Jun 2019, 13:47
by Terry H
wiak wrote:
EDIT: By the way, in English, chunder means to vomit, so maybe not the best name...
I had quite a chuckle when I read the title. In the words of
Men at Work, immortalized in song:
"I come from a land down under where beer does flow and men chunder".
So now having had a laugh, i congratulate both of you for your many contributions and innovations to puppy. Your contributions are very much appreciated.
Posted: Sat 15 Jun 2019, 15:31
by s243a
I look forward to seeing how chunderdog works. It sounds interesting
. On another note I don't think that underdog should be retired. If you happen do do a woof-CE fork that keeps underdog, please let us know
.
Posted: Mon 17 Jun 2019, 14:12
by mistfire
Update:
It works but here are some observations
1. Binded mountpoints /dev, /sys, /proc, and /tmp does not appear on top layer when mounted on middle layer. It requires to bind mount on top layer
2. Chrooted rootfs can see host /root, /media, and /mnt by mount binding on top layer
3. Auto generation of chrooted desktop files works but need to deal with Icons.
@s243a underdog was removed from woof-ce github. So an alternative solution is needed.
Posted: Mon 17 Jun 2019, 14:25
by s243a
mistfire wrote:Update:
It works but here are some observations
1. Binded mountpoints /dev, /sys, /proc, and /tmp does not appear on top layer when mounted on middle layer. It requires to bind mount on top layer
2. Chrooted rootfs can see host /root, /media, and /mnt by mount binding on top layer
3. Auto generation of chrooted desktop files works but need to deal with Icons.
@s243a underdog was removed from woof-ce github. So an alternative solution is needed.
Unless you want to maintain a separate fork of alternatively unless it is possible to provide underdog as a pet.
That all said perhaps the chunderdog idea is superior and none of these above two alternatives are necessary. I look forward to seeing how this progresses
Posted: Tue 18 Jun 2019, 04:43
by mistfire
Here is a simple chunderdog demo that I made
How to use this script:
1. Puppy host
2. You need an installed linux distro on a partition
3. Type this command on terminal
Code: Select all
./chunderdog.sh [target linux partition]
4. It will enter chrooted shell, minimize the terminal
5. You will now see the additional applications came from other linux distro on Applications Menu. Also the underdog apps have file association too (for xdg-compliant file managers)
6. To quit the demo. Restore the minimized terminal and type "exit"
Also I need help to implement the following on chunderdog
1. Make /var/vfs/ro_layer/usr/share/icons and /var/vfs/ro_layer/usr/share/mime visible on host
2. Run services/daemons from chrooted underdog and stop them also upon exiting chrooted underdog
Posted: Tue 25 Jun 2019, 06:59
by mistfire
chunderdog is now called sanderdog (sandboxed underdog).
The pet package is attached at the first post of this thread
Posted: Wed 26 Jun 2019, 10:19
by mistfire
Sanderdog-1.1 released
Changes:
* Improved chrooting
* Improved gui
Posted: Wed 26 Jun 2019, 22:55
by mistfire
Take note, the chrooted application has (isolated) suffix on its name.
Re: sanderdog 1.1: load and use other linux distro partition in puppy
Posted: Tue 02 Jul 2019, 07:56
by 01101001b
mistfire wrote:[...]How sanderdog works:[...]
Mistfire, this is inmensely useful to me. I've tried and failed several attempts with underdog in the past and the present. Now I'll try this as soon as possible.
Thank you!
Posted: Thu 04 Jul 2019, 10:55
by mistfire
Sanderdog 1.2 released
Changes:
* More improvements
* Able to start some systemd service and autostart
Posted: Fri 05 Jul 2019, 06:36
by mistfire
Sanderdog 1.3 released
Changes:
* Aside some systemd services, it can now start upstart services
* More bugfixes
Download link was on the first post of this thread
Posted: Thu 11 Jul 2019, 12:30
by mistfire
Sanderdog 1.4 released
Changes:
* Added support for starting some runit services
* Failsafe added. Sanderdog will not run if 32-bit host attempts to load 64-bit linux distro
Download was on the first post of this thread
Posted: Thu 11 Jul 2019, 13:55
by rockedge
I have been having success with firstrib (WeeDog) in various forms from a boot version to a chroot'ed one. The chroot'ed version of firstrib really works well with a Puppy Linux Bionic as host.
So I am going to give this script a try as this looks interesting and a potential approach to a LAMP system I am messing with.
Posted: Tue 16 Jul 2019, 06:47
by mistfire
Sanderdog 1.5 released
Changes:
* Now supports starting sysvinit services (experimental)
* With cpu arch compatibility matching. Sanderdog will not run if the cpu arch and the target installed linux partition is not compatible (works best on x86 and arm architectures)
Download was on the first post of this thread
Posted: Tue 01 Oct 2019, 21:49
by 01101001b
mistfire wrote:Sanderdog 1.5 released
I'm really looking forward to try this tool when, at last, I have some spare time back again
Thx so much!
Posted: Sun 05 Apr 2020, 10:56
by mistfire
Sanderdog 1.6 released
Changes:
* Chrooted desktop files and mime files moved to /usr/local
* Sandbox cache file update on first run
* Bugfixes
Posted: Tue 14 Apr 2020, 03:51
by mistfire
Sanderdog 1.7 released
Changes
* Improved cleanup
Posted: Tue 14 Apr 2020, 20:01
by 01101001b
mistfire wrote:Sanderdog 1.7 released
Wow!
Thank you so much for your efforts!