Puppy-Win32-Installer

A home for all kinds of Puppy related projects
Post Reply
Message
Author
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.

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

#21 Post by mikeb »

We all love ecomoney ..just non of us can live with him....

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

#22 Post by seeker »

ICPUG,

During testing I installed to an XP that was on a second slave drive hd1,0 and got the exact same error. Changing the menu.lst from hd0,0 to hd1,0 booted Puppy. We need ecomoney to weigh in on this and tell us what works.

I have read that Windows always regards <windows root> as c:\ but I was sceptical about that and ecomoneys comments seem to validate my doubts. The install-puppy code gets the drive spec from GP-Install as a commandline argument <WINDISK> and that was e:\ in this case. I designed the code to only install to the Windows drive so I do hope it performed as expected.

Also I was under the impression that ttuuxxxs 2 series update could be installed to a directory. 8) That Puppy is looking good.

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

#23 Post by ICPUG »

Seeker,

Your comments are interesting and certainly expand my knowledge.

Your situation was slightly different to Ecomoney. You used a separate disk for Windows - Ecomoney uses a separate partition.

One thing crosses my mind. If Windows reports it is on E\: drive in Explorer then this is past the point of ntldr. I wonder if ntldr still thinks it is c and consequently changing e:\grldr to c:\grldr might work for Ecomoney.

I guess if all else fails this would work:

multi(0)disk(0)rdisk(0)partition(2)\grldr

As you say, we need Ecomoney to tells us what works.

I hope you are right about Ttuxxx Series 2 update installing to a subdirectory. I've never seen this mnentioned and I have not looked at it, let alone tested it.

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

#24 Post by seeker »

Ttuxxx Series 2 update installing to a subdirectory was mentioned here.
http://www.murga-linux.com/puppy/viewto ... 737#309737

Been itching to try it myself. Just haven't found the time yet.

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

#25 Post by ICPUG »

Thanks Seeker. No wondered you remembered it - you asked the question! I haven't been following the updating 2 series because I like 4.2.1!

The link you gave pointed to vg1 saying that 2.14R allowed a frugal to subdriectory. Did Ttuxxx come back and say he had implemented it in 2.14X? I don't think his forte is messing with scripts - he seems to concentrate on compiling and removing zigbert's stuff (lol).

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

#26 Post by ecomoney »

Hi All, sorry for the delay, I ve been waiting until my head was fresh before attempting dissection of what happened on this test rig. Ive also had to completely rewire the cybercafe as the centre 60's era wiring was causing problems so Ive spent the last two days there.

As I say, I installed Windows after I installed puppy, which will be a situation far rarer than installing Puppy after installing windows :lol: I will do some tests on the rig that I have here to try and resolve the booting issues in this minority case, and post the successful results.

Seeker, I see your thinking when it comes to using a subdirectory now...you are saying it will allow people to try a variety of puplets out to see which suits them best, a good strategy.

What is obvious though is that the complexities involved in successfully configuring GRUB would be far to much for a non-programmer/average computer user to get their head around.
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:

#27 Post by ecomoney »

Ok I fixed it :D

What I had to do was this (I will use GRUB notation from now on to avoid confusion), The solution was to change the last line in (0,1)\boot.ini from this

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"
to

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

c:\grldr="Start Puppy Linux"
Notice the last line now reads....

c:\grldr="Start Puppy Linux"
not
e:\grldr="Start Puppy Linux"

c:\ doesnt exist on this computer. I dont know the reasons why this would be...but it works. Maybe GLDR "assumes" that whatever partition it is running on currently is "c:\".

Thanks for the tips. I really must now have a go at using the package creator...in a past life I used to be a well heeled but otherwise extremely unhappy Visual Basic programmer, you mentioned it used Basic code?

Sorry I havnt been able to pick up that copy of Vista as yet.
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

#28 Post by mikeb »

Maybe GLDR "assumes" that whatever partition it is running on currently is "c:\".
actually it's the windows ntldr that makes this assumption .. just to clarify..

mike

ps maybe theres a hidden restore partition or simply windows not recognising non ntfs/fat partitions.

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

#29 Post by ICPUG »

Great - Ecomoney has confirmed that my ramblings yesterday were correct. Now I want to know why Windows reports it is on an 'e' drive now! That's for a Windows forum I guess!

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

#30 Post by ecomoney »

Who knows and who cares...its just a big glob of 0's and 1's. Im glad someone is a little wiser from all this ICPUG :)

One scenario I know is a lot more common than peole wishing to reinstall windows after Puppy, is the scenario where windows is hosed entirely and just wont boot.

In this scenario, the ability to automatically set up this kind of install....without reformatting and losing peoples music/documents/pictures etc would be very useful to a great many people. Human nature being what it is, often this is the only time people would be willing to try using Linux, if they were forced to choose between losing their data, or a lengthy or expensive backup+format and Windows re-install.

This would need to be done as a script within a livebooted puppy linux though, and is probably the topic of another thread.
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
Patriot
Posts: 733
Joined: Thu 15 Jan 2009, 19:04

#31 Post by Patriot »

Hmmm .....
ICPUG wrote:..... Now I want to know why Windows reports it is on an 'e' drive now! .....
Just a quick lame blabbering ...

Windows (XP) correctly reports it is on e: drive since that's the partition number its being installed on. The MBR overwrite is a legacy issue. No matter what version of windows (x32/x64) the MBR boot code is still 16bit codes.

GRLDR is part of Grub4DOS. In it's readme file, it did mentioned that no matter what partition/disk/floppy/cdrom it booted from, the boot.ini line must be C:\GRLDR ...

Rgds

User avatar
bignono1
Posts: 360
Joined: Sun 17 May 2009, 07:30
Location: Q8

installing win98 on puppy 4.2

#32 Post by bignono1 »

Hi
I am running only Puppy 4.2 and need to install win98,
if it was other way i guess it is easy but in my case what is the best
way to install win98?
Please advise.
Thank you all.

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

#33 Post by ecomoney »

Seems like we need a windows installer for puppy now! :lol:

You will need to boot your computer from CD, using the "puppy pfix=ram" parameter. Once running use gparted (under the "system") menu to shrink your linux partition (drag and drop). You can than reboot with your win98 disk in, and tell it to install on the "free space"

You will need to sort out the mess windoze has made of your bootloader after that (it installs itself as the only option), but use your liveCD to bypass the hosed bootloader and get you back into happy puppy land.

Windows 98 had a great undocumented feature, in that you could literally just copy the files from c:\ onto a new install. Of course this didint sell any more windoze licences so they stopped this with 2000. I suggest after you install it you make an archive of the win98 files which will make re-installing a lot easier.

Good luck and woof woof

P.S. you may want to try Wine, its getting really good at running 98 era programs.
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

#34 Post by seeker »

Thanks everyone for all the feedback.

So, it looks like all that's needed is to have the code always write c:\grldr="Start Puppy Linux" for XP and 2000. Thanks Patriot! Now the next question is: Does this issue exist for 98 installs, since it uses grub.exe to boot. More research .. It's interesting that the problem was not the menu.lst entry as I believed, but I think I understand the issues/differences better now.

Ecomoney, will you do another test for us? Will you use XP to uninstall this Puppy and verify that it will remove the menu.lst entry properly and restore boot.ini? It should notify you that all Puppies have been removed and offer to restore the boot process to the original configuration. Accept the offer and see if XP boots without the startup menu. I want to make sure there aren't anymore gotchas when the install isn't on the first partition. It should remove everything except e:\grldr and e:\boot\grub.exe. e:\menu.lst should be gone, unless you added some code to it. The line c:\grldr="Start Puppy Linux" should be gone from boot.ini.

I really appreciate everyone's help and feedback. I would never have found this bug on my own.

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

#35 Post by ecomoney »

Seeker will give it a try, your very welcome....thats what were here for. Im not at home right now where that test rig is though, so Im afraid it will have to be tommorow.
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

Post Reply