Dual boot of 528 with XP failed (solved)

Using applications, configuring, problems
Post Reply
Message
Author
keniv
Posts: 583
Joined: Tue 06 Oct 2009, 21:00
Location: Scotland

Dual boot of 528 with XP failed (solved)

#1 Post by keniv »

Having used 528 for a while in frugal form (.sfs and savefile on ntfs hdd and booting from cd) and having found it to be very good I decided to dual boot it from the hdd which also has a copy of XP on ntsf. I had made a bootable flash drive using the above and this worked well and so I was quite hopeful of getting this to work however it did not. Here is what I did.
Using gparted I partitioned the 40GB hdd as sda1 ntsf with XP, .sfs and my savefile and sda2 200MB ext3 on which I installed grub. I made a directory called 528 on this partition and coppied initrd.gz and vmlinuz to it from the cd. I made a blank file called idehd and put it in sda1. I then tried booting my machine. When XP was selected It booted up OK. This was the bit I thought I might break an so I was quite pleased. I then tried booting puppy. I starts to boot then fails telling me it cannot find the 528.sfs. Below is the menu.lst I am using in grub.

Code: Select all

# GRUB configuration file '/boot/grub/menu.lst'.
# generated by 'grubconfig'.  Sun Nov 13 13:06:54 2011
#
# The backup copy of the MBR for drive '/dev/sda' is
# here '/boot/grub/mbr.sda.19770'.  You can restore it like this.
# dd if=/boot/grub/mbr.sda.19770 of=/dev/sda bs=512 count=1
#
# Start GRUB global section
#timeout 30
color light-gray/blue black/light-gray
# End GRUB global section
# Other bootable partition config begins
  title Windows (on /dev/sda1)
  rootnoverify (hd0,0)
  makeactive
  chainloader +1
# Other bootable partition config ends
# Linux bootable partition config begins
  title Linux (on /dev/sda2)
  root (hd0,1)
kernel /528/vmlinuz pmedia=idehd psubdir=528
initrd /528/initrd.gz
#  kernel /boot/vmlinuz root=/dev/sda2 ro vga=normal
# Linux bootable partition config ends
title Install GRUB to floppy disk (on /dev/fd0)
pause Insert a formatted floppy disk and press enter.
root (hd0,1)
setup (fd0)
pause Press enter to continue.
title Install GRUB to Linux partition (on /dev/sda2)
root (hd0,1)
setup (hd0,1)
pause Press enter to continue.
title -     For help press 'c', then type: 'help'
root (hd0)
title -     For usage examples, type: 'cat /boot/grub/usage.txt'
root (hd0)
If I edit the line

Code: Select all

kernel /528/vmlinuz pmedia=idehd psubdir=528
to

Code: Select all

kernel /528/vmlinuz
the the 528.sfs is loaded but my savefile is not loaded and so it boots up into a new puppy (as if I had selected pfix=ram). If I make a new savefile this is not recognised at the next boot. I have searched the forum for threads on dual booting but have found nothing which helps. I have not used grub before and I am not confident in what I am doing. I would appreciate any help in getting this to work. Perhaps I should have said I am using an old Toshiba laptop Plll 800 MHz 320MB ram and 40GB hdd.

Regards,

Ken.
Last edited by keniv on Mon 14 Nov 2011, 19:14, edited 1 time in total.

nooby
Posts: 10369
Joined: Sun 29 Jun 2008, 19:05
Location: SwedenEurope

#2 Post by nooby »

Sunday today so very few are active and I am not the person that can help you but to get your started.

Put in this one again

psubdir=528

That one allow the puppy to find the right subdir and most likely the lupusave files in in there too.

if it is not then use puppy to move it there.
Ooops if you have not booted yet then you don't have a lupusave file
it gets created the first time you reboot or shut down.
You have to follow the instruction at shutdown or reboot very closely
so you get the right kind of lupusave file.

That directory named 528 should have wmlinuz and inird and lupu-528 and the lupusave file.

this part
I made a blank file called idehd and put it in sda1.
That is a misunderstanding. The code pmedia=idehd does not require any such file at all. I explain below
title Linux (on /dev/sda2)
root (hd0,1)
kernel /528/vmlinuz pmedia=idehd psubdir=528
initrd /528/initrd.gz
This code pmedia=idehd tells puppy that the drive itself is a ide drive.
if you have a sata drive then one change pmedia=satahd and if one have a scsi drive one change it to pmedia=scsihd and if it is a SD
then one find the right code for the Solide State Drive for that mark.
I use Google Search on Puppy Forum
not an ideal solution though

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

#3 Post by rcrsn51 »

Do you have all four files in the 528 subfolder - vmlinuz, initrd.gz, lupu528.sfs and your lupusave.2fs file?

Then use the following kernel line so Puppy knows exactly where to look:

Code: Select all

kernel /528/vmlinuz pmedia=atahd pdev1=sda2 psubdir=528

eternal-sunshine
Posts: 58
Joined: Mon 21 Feb 2011, 00:13

#4 Post by eternal-sunshine »

rcrsn51 is correct in what he says except I see you have made a 200MB partition as sda2 and this will be too small if you want to put in all the files including your save file.

So junk the sda2 partition and put it all in a folder named 528 in sda1.
Then your menu.lst will be

title Puppy 528 frugal on sda1
root (hd0,0)
kernel /528/vmlinuz pmedia=idehd psubdir=528
initrd /528/initrd.gz

HTH
Dave

keniv
Posts: 583
Joined: Tue 06 Oct 2009, 21:00
Location: Scotland

#5 Post by keniv »

Hello All

Thanks for the replies. The only reason for the sda2 ext3 partition was that grub would not install to ntfs. Grub is the only thing on this partition that is sda2. It was not my intention to run puppy from this partition. I wanted to run it from where it was, when I was booting from the cd, on the ntfs partition sda1. I have now done as eternal-sunshine and rcrsn51 suggested and put vmlinuz, initrd.gz, lupu528.sfs and lupusave.3fs in a directory named 528 on sda1. I have also removed the directory on sda2 containing vmlinuz and initrd.gz. I have altered lines 19 to 22 in menu.lst as follows.

Code: Select all

title Puppy 528 Frugal (on /dev/sda1)
  root (hd0,1)
kernel /528/vmlinuz pmedia=idehd psubdir=528
initrd /528/initrd.gz
However when I try to boot puppy I get "error code 15 file not found" and the boot process stops. Puppy still boots if booted from the cd. It seems to me that the files on sda1 are not being seen when I am trying to boot from the hd. Does grub have to be directed in some way to look for the files in directory 528 on sda1?

Regards,

Ken.

User avatar
8-bit
Posts: 3406
Joined: Wed 04 Apr 2007, 03:37
Location: Oregon

#6 Post by 8-bit »

In your menu.lst file, change "root (hd0,1)" to "root (hd0,0).

Grub starts counting at zero so that is the reason for the change.
I went through that myself with telling grub where to look for the files.

To Grub, hd0,0 is the first partition.
hd0,1 is the second partition and so forth.

Hope that helps.

keniv
Posts: 583
Joined: Tue 06 Oct 2009, 21:00
Location: Scotland

#7 Post by keniv »

Hello 8-bit

Just tried your suggestion. This time when I tried to boot from the hd I got "error 17 cannot mount selected partition". I'm not really sure if this tells me much.

Thanks for your help,

Ken.

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

#8 Post by rcrsn51 »

keniv wrote:Hello 8-bit

Just tried your suggestion. This time when I tried to boot from the hd I got "error 17 cannot mount selected partition". I'm not really sure if this tells me much.

Thanks for your help,

Ken.
That's because GRUB won't run from an NTFS partition. You have two choices:

1. Enlarge sda2 and run your frugal install from there.

2. Use GRUB4DOS instead of legacy GRUB as your bootloader.

keniv
Posts: 583
Joined: Tue 06 Oct 2009, 21:00
Location: Scotland

#9 Post by keniv »

Well I think I have this working using "normal" grub. On sda2 ext3 partition I reinstalled the directory 528 and copied vmlinuz and initrd.gz. I had already put these two files plus lupu528.sfs and lupsave.3fs in the directory 528 on sda1 ntsf partition as was previosly suggested. I made a syslink from dir 528 on sda2 to lupu528.sfs in dir 528 on sda1. I change the lines 19 to 22 as follows

Code: Select all

title Puppy 528 Frugal (on /dev/sda1)
  root (hd0,1)
kernel /528/vmlinuz
initrd /528/initrd.gz
This was because this was the form I had when puppy would boot but would not use my savefile (see first post). Puppy now boots from the hd and uses my savefile. As I had made a new "test" savefile along the way in all of this I moved this to dir 528 on sda1. When I booted again from the hd I was given the choice of loading either savefile. I am not sure whether I really need vmlinuz and initrd.gz in dir 528 on sda1 or if I even need all the files in collected together. I will try deleting them and see what happens. I am not sure if this is the best way to do this but it seems to be one way. So far I have not found anything that does not work. If everything keeps working I will mark the thead as solved.

Thanks again for all the help,

Ken.

nooby
Posts: 10369
Joined: Sun 29 Jun 2008, 19:05
Location: SwedenEurope

#10 Post by nooby »

I am not sure whether I really need vmlinuz and initrd.gz in dir 528 on sda1 or if I even need all the files in collected together.
As rcrsn51 told you those four files preferably should be in same subdir.

Sure it can work to have the wmlinuz and initrd.gz outside but then one
have to rely on that the script do searches and it take longer times
and if you want to add another puppy subdir you still need to separate them due to them having same name.
I use Google Search on Puppy Forum
not an ideal solution though

keniv
Posts: 583
Joined: Tue 06 Oct 2009, 21:00
Location: Scotland

#11 Post by keniv »

Using the above method I now have three puppies (all of which I previously booted from a cd) and XP all booting from the hd. Everything appears to be working properly. I am happy with this but if anybody comes up with a better way I'll try it. I did have a look at grub4dos but I know even less about this than grub but I might experiment with it.

Regards,

Ken.

Post Reply