The return of Underdog Distro

This is a feature that was last seen in Puppy 2.x, it was gone in 3.x. I was reminded as tronkel started a thread about it on the Forum:

It is an interesting concept, that is introduced here:

There are possible problems, mostly to do with mismatched libraries. The Puppy libraries would be in a higher layer, which might mean that an application that you want to run in the Underdog Linux layer might not work. With some care though, it should be ok, for example with Wary/Racy, use an older version of Ubuntu not the latest as the Underdog. Or, better, use a matching distro, example Slacko and Slackware 13.37.
Another possible problem is all the extra bootup stuff in an Ubuntu (or whatever) Underdog.

I do recall though, back in the Puppy 2.x days, Underdog did work surprisingly well.

I have modified the 'init' script in the initramfs, in Woof, so this feature will be in the next Puppy built with latest Woof. Here is the Woof commit:

What you do is create a file 'underdog.lnx' in /mnt/home or in the subdirectory of a frugal installation. The file contains the name of a partition, for example "sda9", nothing else.

However, you will also be able to do it from the kernel boot commandline, ex: "underdog=sda9". The really interesting thing about this is it will work even on first boot before you have created a save-file. The partition is mounted read-only, and will be the very bottom layer.

I haven't tested it yet.

Posted on 30 Jan 2012, 15:59


Posted on 30 Jan 2012, 10:54 by BarryK
Old notes on Underdog
Some quotes from (diagram missing):

I've just done something very interesting, astounding even. I've dreamed about doing this for a long time, and it is finally a reality. In a nutshell, puppy2 can "piggy back" on another distro and use all of it's applications.

I've got Mandrake 9.2 installed on a PC. I booted up puppy2 from CD, and I created a file, named "underdog.lnx" on a hard drive partition. At shutdown, I chose that same partition for the personal persistent storage file, pup_save.3fs.
Okay, underdog.lnx is just a text file, and in it I placed the text "hda1", which is where Mandrake is installed.
When I rebooted Puppy, Puppy read the underdog.lnx file, and then used unionfs to add the Mandrake partition as the bottom layer. Here is a diagram (created with Sodipodi) to visualise how it all goes together:

The top layer is a tmpfs filesystem in RAM, next down is the pup_save.3fs file, which is the persistent storage. Third down the the pup_xxx.sfs file, which is a squashfs filesystem with all the Puppy files. On the bottom layer is Mandrake.

You have to visualise each of these layers as a complete filesystem, each with the complete directory structure. A layer overrides the one below. Thus, /usr/lib/ on say the pup_xxx.sfs layer overrides the same file on the Mandrake layer.

The end result is fascinating. It's our normal Puppy, but all the Mandrake applications are available. In a terminal, I tried kwrite, drakconf, rpmdrak, kmail, konqueror, many more, they all worked. Of course, they aren't in the Puppy menu. OpenOffice didn't work though, it complained that is missing, although it is there.

If you don't want the "underdog Linux" anymore, just get rid of the underdog.lnx file and reboot.

Posted on 30 Jan 2012, 10:55 by BarryK

What particularly fascinates me is the Mandrake package manager. I haven't tried it yet, but if you install a package, where do you think it goes? The Mandrake partition is mounted read-only, and any new or changed files go onto the top layer, which gets saved periodically to the pup_save.3fs file. So, if the underdog distro was initially installed fairly barebones, and you use its package manager, you are actually installing the packages to Puppy.

Posted on 30 Jan 2012, 13:10 by Lobster
I have modified the 'init' script in the initramfs, in Woof, so this feature will be in the next Puppy built with latest Woof.

I seem to remember something similar (I don't remember it as part of Underdog) that allowed me to create a 'tunnel' into Vector Linux on my HD, whilst using Puppy booting from CD.
In effect it allowed the same effect: Run KDE and Vector Linux programs from the Puppy boot.
I remember it was a few lines of code on the command line and may have been pre-Underdog.
Maybe someone can remember or know how this is done in other distros?
I remember at the time it seemed very cool but it was a long time ago and we may not have been running the Murga forum, but I remember writing about it . . .
If this is part of woof2 then theoretically it would run on ARM, meaning we could have access to another distro whilst offering the more efficient Puppy code for most usage . . .

Posted on 30 Jan 2012, 13:45 by lobster
Healing and Well Being
ah . . . just found it was Underdog and the mysterious touch command

Posted on 30 Jan 2012, 21:07 by Aitch
underdog revival
Ha ha
Barry, I see you've now realised tronkel's post was made in 2006, but got brought to life by me, after some research I was doing
I'd not seen mention of it, having joined the puppy family using 2.14, then current - was underdog in that?...........could it still be in ttuuxxx's 214x?
It looks to be more useful than virtual machine, however, if there is say, a printer or some other hardware, was working on the other linux partition, could that be used by puppy, also?
Anyhow, it's good to see it revived, thanks

Posted on 30 Jan 2012, 23:31 by Aitch
underdog follow-up
please see my further comments in the Underdog thread in the main forum, thanks

Aitch :)

Posted on 30 Jan 2012, 23:35 by technosaurus
underdog menus
jwm_menu_create should capture the menu entries so long as the desktop files show up in /usr/share/applications

also since I have heard jwm -reload does not refresh trays, I was considering a jwm drive menu
I put a mockup here:

not sure whether to put it in the main menu or make it standalone, so it could be included in a separate tray

anyhow I could add an option to "use as underdog" - any thoughts on the layout or extra feature requests

Posted on 31 Jan 2012, 7:25 by GCMartin
Additional approaches
I know this is a little different slant at how we traditionally do things in Puppyland, but I thought it consistent to ask you look at this from Jeminah.

Hope this helps

Posted on 31 Jan 2012, 8:25 by Raffy
Net-booting, too
While you're at old Puppy features, jamesbond is discussing puppy5 difficulties as to net-booting, please see forum thread.

Posted on 31 Jan 2012, 21:02 by jamesbond
Net-booting bug already fixed.
Thanks Raffy. I remember that post, it's quite old as well and I remember Barry fixed it not long afterwards. Can't recall when, though. If it happens again in newer puppies, that's probably a new bug ...

Posted on 1 Feb 2012, 11:07 by mistfire
Improvements on underdog
Well its nice that the underdog in puppy was back. This tools is great. I hope that the underdog will improve further will also work on latest Linux distros with less software and library conflicts. By the way Barry, does the latest woof have an improvements on its GUI front-end? Keep up the good work.

Posted on 18 Apr 2012, 5:36 by rodin.s
Arch in Slacko
Underdog works great. I test it on Arch in Slacko- I guess it should work on Racy as well. Almost all apps work. Posting it from Konqeror and listening to Amanok. But I am running Slacko.
Even flashplayer from Arch woks in Seamonkey in Slacko.