Background:
I installed puppy onto a flash stick from someone else's computer, and after a bunch of fiddling, I finally got the thing to boot. Oh was I happy. I even nicknamed the thing Puppy Stick =] I'm so cheesy.
Shortly thereafter, I bought all the necessary components to build a new computer, as I had recently moved and left all but my hard drives behind as far as my previous computer went. Quite a nice box, too, but I won't get into it, as it doesn't belong in this thread. >.> I sound like I'm rambling.
Anyway, I installed xp64 on it and got everything working, and even made a separate partition for linux (yes, a swap too). I got my new computer set up and installed everything I wanted, made it work the way I wanted it, etc. I didn't do anything with the linux partitions, though. Today, however, I decided to install puppy to my HD so I could dual boot, and wouldn't have to use my Puppy Stick every time. Little did I know what a headache that decision was going to cause me.
Alright, enough rambling. Here's the juicy headache-inducing bits:
From my Puppy Stick, I installed Puppy to /dev/sda3 and used grub to add a bootloader with entires for XP64 and Puppy in the MBR (I hate floppies, and I wasn't about to give up my Puppy Stick), and had it put the grub data on sda3 like it wanted. I noticed it put a backup of the MBR on the same drive. Having a way to undo the changes made me feel rather safe.
Now, I removed my flash stick and rebooted. Grub came up, but neither option worked. Grub pointed the XP64 boot option to my flash stick (sdb1), and it put vmlinuz, etc in the wrong folder on sda3.
So I put my flash stick back in and booted using that and tried to resolve the problem. I mounted sda3 and put vmlinuz, etc in the proper folder, and tried booting again. didn't work.
Now, I put my flash stick back in and tried to boot, and got a very disturbing message saying that it could not boot.
After fiddling around, I figured out that it was looking for Pup_217.sfs on sda first, then going to hdb (dvd), and finally sdb where I was booting from.
So, every time I boot with the hard drive plugged in, it tries to boot from the version of puppy installed on sda3, and crashes.
If I unplug my hard drive, puppy boots fine from my flash stick, but I cannot access my hard drive (obviously) so I cannot restore my MBR or delete the puppy install.
If I leave the hard drive plugged in, Puppy won't boot.
If I plug in the hard drive after Puppy boots, it won't see the drive since it wasn't there at boot. Besides, doing that is a bad idea to begin with.
I mean, I could fdisk the whole drive to oblivion, but then I lose everything, and if I annihilate sda3, I lose the backup of my MBR, so neither of those two are viable options.
How in the world do I remedy this?
Edit: I found the problem, or at least I think I did.
in /initrd/pup_ro1/etc/rc.d/PUPSTATE it loads Pup_217.sfs from sda3 as well as a few others
Like I said, I think this is the problem, but I'm not sure, and let me say why: I have a copy of all my puppy stick files on another computer, and as soon as it refused to boot, I tried copying all of those back onto the stick. The problem didn't go away, even though I copied my original initrd.img over, which should have replaced this with the correct one, but didn't.PDEV1='sda3'
DEV1FS='ext3'
PUPSFS='ext3,sda3,/boot/pup_217.sfs'
I'm really confused now. >.<'
PS: Yay, first post. (times about twenty edits -.-)