Puppy-Win32-Installer

A home for all kinds of Puppy related projects
Post Reply
Message
Author
seeker
Posts: 89
Joined: Thu 27 Nov 2008, 00:43
Location: Indiana, USA

Puppy-Win32-Installer

#1 Post by seeker »

For Puppy distro developers and enthusiasts,

Puppy-Win32-Installer makes it very easy to distribute a Puppy derivative to Windows users as a single file they can click on to install, or uninstall with their Windows 'Add or Remove Programs utility'. The install supports the installation of multiple Puppies, as well as their individual removal.
Your Puppy will be installable on Windows 98, 2000, and XP.

The advantages for Windows users are numerous.
No ISO to burn.
The install does not modify the master boot record of a hard drive.
Grub is not installed to the MBR.
It is a frugal install compatible with SFS files.
Easy Puppy system backup, copy the pup_save file.
No CD or USB required to boot.
User can remove the installs from their drive and even remove the Grub boot screen so their computer boots straight into Windows again.

System requirements for Puppy-Win32-Installer build environment.
Puppy or other Linux, or Windows 32 bit OS.
Wine, if using Linux.
Free disk space (or pup_save space) equal to 3 times the size of the Puppy derivative to be packaged.

The Puppy to be distributed must support installation to a directory: Puppy 3 series or newer.

Download Puppy-Win32-Installer 2.5 MB
The package includes:
The GRUB4DOS boot loaders, grldr and grub.exe
Install helper binaries
Install helper source code under Simple Public License (SimPL) 2.0
Project template (just add your Puppy files initrd.gz, vmlinuz, pup_xx.sfs)
A readme file to include with your Puppy install
GP-Install compiler with GUI
Tutorial (very easy)
To see just how easy it is the tutorial is online here

Thanks go to Brian Grainger for developing the Lin'N'Win install method.
Lin'N'WinNewB Project
This installer uses the Lin'N'WinNewB Project method as the basis for installing, but is not associated with the Lin'N'WinNewB Project or Puppy Linux in any manner.

Seeker

Edit: July 5 2009
The original template file pup-inst-tpl had an incorrect path. If you downloaded before today please download it again to get the correct one.
.
Attachments
pup-inst-tpl.tar.gz
Updated pup-inst-tpl file
(1.67 KiB) Downloaded 2133 times
Last edited by seeker on Sun 05 Jul 2009, 14:01, edited 7 times in total.

User avatar
Hugh
Posts: 138
Joined: Sat 24 Jun 2006, 21:53
Location: Imperial Warmongering Dystopia of Amerika

Win-Pup Installer

#2 Post by Hugh »

Seeker,

Many thanks!!

While I'm still a 'newb' experientially, I'm fascinated by this and eager to give it a try.

This could surely make the frugal install procedure, which is my modus operandi, a real easy task.

reckrhodes
Posts: 116
Joined: Wed 30 May 2007, 08:15

#3 Post by reckrhodes »

Thank you so much seeker.

I had successfully followed the steps in creating this file (pup-installer-pl421.exe). Mine is Puppy 4.2.1. :D

Now I can share this to some windows user to test the power of linux or puppy linux in particular.

Hope they will become a loyal puppians like me. :lol:
Last edited by reckrhodes on Sat 04 Jul 2009, 12:02, edited 2 times in total.

User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

#4 Post by ecomoney »

Congratulations Seeker on this new release! It really has made it EASY to switch so there really is no excuse!

May I suggest www.download.com or some windows sites for posting the resulting .exe files, or pm me and I would be happy to mirror. I would love to get my hands on one of those .exe's so I can send links to my Linux-uninitiated friends.

A windows installer for the Puppy 4.2.1 release would also to handy to offer as a download from www.puppylinux.org
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#5 Post by mikeb »

Well glad this finally came to fruition :)
There used to be a windows installer with the one series but had no recent mentions.

My thoughts are if this tests out ok that puppy should be offered in this format officially. Better a puppy specific solution rather than falling back to unetbootin.

mike

reckrhodes
Posts: 116
Joined: Wed 30 May 2007, 08:15

#6 Post by reckrhodes »

Hello everyone.

Just want to share this.

http://www.teradepot.com/jbnu22hjnhu3/p ... 1.exe.html

User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

#7 Post by ecomoney »

Oh heck...after five years now Im gonna have to install windows just to test this :wink:
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

#8 Post by ecomoney »

I have just tried this on a XP (TinyXP V 0.9 to be precise) and it worked a charm! :D

Here is a mirror from the company webserver, without download restrictions etc

http://www.ecomoney.eu/puppy/winstaller ... -pl421.exe

PLEASE TEST!!!

Seeker some great work here! How possible would it be to include an .exe on a Puppy CD that would install under windows (perhaps linked from an "autorun.inf" file that runs when the cd is inserted in a Windows PC). Would this take up much space if the installer used the pup_xxx.sfs/initrd.gz/vmlinuz files from the CD itself?

I had forgotten what a pain Windows is to install...perhaps Puppy does actually meet its primary mission objective after all!
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

seeker
Posts: 89
Joined: Thu 27 Nov 2008, 00:43
Location: Indiana, USA

#9 Post by seeker »

ecomoney wrote:How possible would it be to include an .exe on a Puppy CD that would install under windows (perhaps linked from an "autorun.inf" file that runs when the cd is inserted in a Windows PC). Would this take up much space if the installer used the pup_xxx.sfs/initrd.gz/vmlinuz files from the CD itself?

I've given this some thought for a couple of weeks now and I think it would be very easy to do. The install.exe and autorun.inf file amount to 753 KB. A small front end for the installer that would ask the user if they wanted to install now, or later, and some code to copy the files from the CD/DVD would be needed. That would add about 40 KB more.

User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

#10 Post by ecomoney »

So were talking about 0.8mb in total to enable Puppy Linux to be tried alongside and its speed/technical superiority compared on Windows on 63.5% of desktop computers in the world....92% if you get vista support added.

http://en.wikipedia.org/wiki/Usage_shar ... ng_systems

Given that statistic, and the fact that Puppy should "install easily onto hard drive media" as well as "be friendly to Linux Newbies", no one could possibly object to having an .exe included on the Puppy Linux CD?

Could they?

:twisted:
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

seeker
Posts: 89
Joined: Thu 27 Nov 2008, 00:43
Location: Indiana, USA

#11 Post by seeker »

ecomoney wrote: So were talking about 0.8mb in total to enable Puppy Linux to be tried alongside and its speed/technical superiority compared on Windows on 63.5% of desktop computers in the world
Well, the whole point of my Puppy-Win32 installer is to enable a Puppy to be safely installed and uninstalled like a regular Windows application, without having to burn a bootable CD etc.

That being said, if all you wanted to do was to frugal install from the CD to a pre-defined directory and set up a GRUB4DOS boot menu, I believe the files could be less than 200KB. Maybe even in the neighborhood of 100 KB. You would lose the Windows uninstall ability but you could still provide a means to uninstall, with safety checks, from the CD too. BTW these sizes do not include the grldr and grub.exe. Those add about 450KB.
...92% if you get vista support added.
Sure, I would like to add Vista support. To even begin to do this I would need the active cooperation of someone with a Vista OS.
Any volunteers? 8)

User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

#12 Post by ecomoney »

Count me in :D

This is the one time that its possible to use Windows to Promote Linux. Ive got a Dual Core Behomoth that was donated by the Seamans Mission that given another gig of RAM would probably run Vista adequately (it "only" has 1gb).

I will have to get hold of a copy, will let you know when I have.
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

User avatar
rcrsn51
Posts: 13096
Joined: Tue 05 Sep 2006, 13:50
Location: Stratford, Ontario

#13 Post by rcrsn51 »

The Vista boot mechanism is quite different from that of XP. You should look at EasyBCD for some ideas.

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#14 Post by mikeb »

this is the approach for vista from grub4dos
http://grub4dos.sourceforge.net/wiki/in ... ot_manager

mike

seeker
Posts: 89
Joined: Thu 27 Nov 2008, 00:43
Location: Indiana, USA

#15 Post by seeker »

Thanks for the support and input. After spending a good deal of time researching this my inclination is to pass on Vista. Too many hurdles and pitfalls for me.

Sometimes I get the feeling that MS is going out of it's way to put up road blocks for the average Joe wanting to contaminate their computers with another OS. The good news is a Puppy CD can clean a system that's contaminated with Vista. :P :lol:

User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

#16 Post by ecomoney »

seeker wrote:Sometimes I get the feeling that MS is going out of it's way to put up road blocks for the average Joe wanting to contaminate their computers with another OS.
Your instincts are correct Seeker, read this quite famous article, entitled "He who controls the bootloader"

http://www.birdhouse.org/beos/byte/30-bootloader/

Basically, this "strategy" from Micro$oft, along with strong-arm tactics on computer suppliers and manufacturers, is what killed off the otherwise technically excellent BeOS from IBM, their main competitor at the time. Luckily Linux programmers are clever folk and tenacious with it. As Ive said do not underestimate the importance of what you have created, Micro$oft have always been afraid of a fair fight and youve just brought it to them. Dont be expecting a christmas card from Bill this year ;-)

Ive used the installer on about three or four xp-only installs now (single hard disk) and so far each one has been flawless...many thanks for this seeker it really has made life easier. :D

From my own experience, the incentive for people with new Vista computers to switch to using Linux is quite a bit higher than with XP/2000/98. This is because with Vista they have to learn a new interface anyway, plus most are extremely dissatisfied with the Speed. Ive had the pleasure of cleaning many a Vista install for these reasons.

Im picking up a copy of Vista tonight to do some tests with this installer. I think the worst thing that could happen is that people try this installer on Vista and it causes their new computer to "not work". :roll: I want to check and see what it does. Im hoping there is a check built in to say "This installer is only for 98/2000/XP" and quit out.

Should it include that then I think its safe to put it on general release (www.download.com, www.puppylinux.org etc!). Vista support is a "nice to have" for the moment, but perhaps if you upload some more details of how exactly the installer works, someone else may be able to add the modifications needed to add it.

Just a few minor issues...today I installed XP on an already puppied computer (puppy 4.2.1/2.15ce grub dual boot install whole hard disk) . I used gparted to resize the main ext2 partition and create some free space at the end of the hard disk (it wouldnt let me resize from the beginning), then in the XP installer I told it to install on this free space (hda2 in Linux-Speak). As usual it overwrote the MBR so when I rebooted it automatically started XP (yuk!), and for some reason XP claimed to be using E: as its installed location but apart from that ran no worse than it usually does.

I then installed the Puppy-Win32 installer, hoping that it would restore at least my 4.2.1 access but no luck. It did install a dual boot menu upon startup. The option to start Windows worked fine, but the option to start puppy brought up this error message.

Code: Select all

Windows could not start because the following file is missing or corrupt:
<windows root>\system32\hal.dll.
Please re-install a copy of the above file.
Heres my boot.ini from the said computer (from E:\ on this computer )

Code: Select all

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

e:\grldr="Start Puppy Linux"
and my menu.lst from E:\puppy...Although the loading mechanism doesnt seem to get this far.

Code: Select all

timeout=10

default=0

 

title Puppy-Linux installed 07-08-2009

kernel (hd0,0)/puppy/vmlinuz psubdir=puppy

initrd (hd0,0)/puppy/initrd.gz

boot
Ive also noticed that the installer seems to copy the entire contents of the puppy 4.2.1 ISO to C:\puppy. Its my understanding only initrd.gz, vmlinuz and pup_421.sfs are needed to actually get Puppy Linux to load...although the extra files just take up 119k in this case. These three files loaded to C:\ I think would be acceptable, and them not being in a subdirectory would (I think) enable previous puppy 2 series (without the subfolder feature) to be installed. Im just thinking about Ttuuxxxes 2 series remaster (and Phoenix which I still intend to finish). 2 Series pups are still used, especially on older hardware designed for Win98 where the kernel is more suitable.

I realise this installer will be fine for the people that just have an old computer with XP/2000/98 (by far the most common case), so Im only relaying this information to give you ideas for an updated release. It is already a fantastic piece of work that will open up access to an alternative operating system to far more people than any amount of extra packages, libraries, drivers or kernel updates....bang on the button when it comes to achieving puppies goals/mission. Well done Seeker :D
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#17 Post by mikeb »

Im picking up a copy of Vista tonight to do some tests with this installer.
the link I gave is what has to be done for vista..not difficult but different to XP.

mike

seeker
Posts: 89
Joined: Thu 27 Nov 2008, 00:43
Location: Indiana, USA

#18 Post by seeker »

ecomony wrote:I want to check and see what it does. Im hoping there is a check built in to say "This installer is only for 98/2000/XP" and quit out.
Yes it's there. A test run in Vista as a safety check would be good. The install should auto terminate with that warning as long as the installer is using English. If the installer is not using English it won't auto terminate, but it will not attempt to modify the boot process either. This auto termination is a sore point I have with GP-Install. Supposedly if the helper app is compiled as a DLL you can return a value to cause GP-Install to abort. It doesn't work and I had to use an imperfect work-around.
perhaps if you upload some more details of how exactly the installer works, someone else may be able to add the modifications needed to add it
You haven't read the source code? It's in BASIC with deliberately simplistic if/then logic. The first helper app called is os-verify. It does what the name implies. The second called is install-puppy. These two are used during installation. The last one, uninstall-puppy, is called when uninstalling. The purpose of each and what they do is in the headers of the source files.
The option to start Windows worked fine, but the option to start puppy brought up this error message.
I think you will find that your Puppy is not installed at hd0,0. It installed on the XP partition which from your description would be hd0,1. If that's the case, the menu.lst entries you accepted during the install weren't correct. They default to hd0,0. This is an area that could use some improvement. If there is some win32 code that could pin down the drive and partition that Windows is running on the menu.lst entries could be adjusted automatically. Unfortunately I could not find any. I am pleased to see that my code caught the fact that XP was not installed on C:\ though (e:\grldr="Start Puppy Linux").

You got the message about a missing hal.dll because grub tried to boot something that wasn't where it should be. That failed so windows went ahead with the boot, but the process had bypassed the section of boot.ini where the windows system is defined so it didn't know where <windows root>\system32\ was. So in typical Windows fashion it spat out an incorrect admonishment to re-install the missing file instead of telling you it was lost and couldn't find it's own system folder.
Ive also noticed that the installer seems to copy the entire contents of the puppy 4.2.1 ISO to C:\puppy. Its my understanding only initrd.gz, vmlinuz and pup_421.sfs are needed to actually get Puppy Linux to load
That's correct. If it installed all of those files it is because reckrhodes added them to the install project. :) As you say though, no harm done.
and them not being in a subdirectory would (I think) enable previous puppy 2 series (without the subfolder feature) to be installed
True, but you must know that earlier series Puppies will load the first pup_save that they find. Inevitably, sooner or later, it will be a save_file from a different Puppy version. This is why I deliberately restricted it that way. My target group is newbies. They will have no clue if this happens and you can guess what the result would be.
mikeb wrote:the link I gave is what has to be done for vista..not difficult but different to XP.
Not difficult to do manually as admin if you know the steps, another story to automate the process. It must be possible to auto-install to Vista though. EasyBCD can read and edit the registry entries, but without a Vista OS at hand it would be difficult to hash out.

Thanks for the feedback!

ICPUG
Posts: 1308
Joined: Mon 25 Jul 2005, 00:09
Location: UK

#19 Post by ICPUG »

Seeker,

I'm not sure your analysis of Ecomoney's missing hal.dll message is correct.

That message usually occurs when grldr cannot be found. This maybe suggests that e:\grldr is not correct. In fact grldr must go on the Windows partition and I would expect Windows to regard it as C:\ even if Windows is not on hd0,0. If grldr cannot find a Puppy file it usually gives a grub error (error 15 I think).

The main problem with Vista is that it does not use boot.ini so clearly this installer will not work with Vista. I expect your code to check Windows op system will work and stop the installer before it causes a problem.

ICPUG
Posts: 1308
Joined: Mon 25 Jul 2005, 00:09
Location: UK

#20 Post by ICPUG »

Ecomoney,

You are right that series 2 Puppies would need to install in the root rather than a subdirectory. However, I would not consider making this installer install a Puppy 4 to the root as good idea. Installing to a subdirectory is a really good function as you can isolate different Puppy versions and test without fear.

I think if Puppy 2 is to be perpetuated the init file should be brought up to date to allow a Puppy 2 based puplet to install into a subdirectory - not make Puppy 4 go back to the Puppy 2 way.

Post Reply