Jump to content

Using Plop Boot Manager boot CD causes problems in XP install


Recommended Posts

Trying to setup Windows 2000 to install from USB, I dusted off an old computer, and found that it does not boot from USB. It seems to set the USB HD as an USB Floppy, so I get the missing mbr-helper message from Grub4Dos. I tried my PLOP CD, and it sucessfully boots into the grub menu.

When I choose the Install XP option, the first error I notice is : "Error ocurred while savedefault."

Then into the Windows XP install, after the text mode loading of drivers, I get a black screen for a moment, then an error something like "The install program cannot load KBDES.DLL. Install cannot continue" (Translated)

The same USB HD in another computer that boots from USB directly without using the PLOP CD installs Windows XP with no problems.

The GRUB menus are the standard ones created by Winsetupfromusb, nothing changed.

My guess is that PLOP somehow messes up the drive order or something like that. Any suggestions?

Link to comment
Share on other sites


My guess is that PLOP somehow messes up the drive order or something like that. Any suggestions?

It is possible, but you can re-map them in grub4dos allright.

The issue is however "strange", in the sense that if a "serious" problem in disk mapping happens, it should "show itself" long before loading the Spanish keyboard driver, which is - more or less - a finishing step. :unsure:

From what you report, it seems like it is NOT that your computer cannot boot from USB, but rather that it cannot detect properly the USB disk.

I would check if it is possible to correct this behaviour.

How is the hard disk partitioned/formatted (meaning how EXACTLY)?

How big in size is it?

Try booting the same hard disk on another working PC.

Go to grub4dos command line (press c).

Issue the command:

geometry (hd

and press [TAB] to autocomplete before pressing [ENTER] - presuming you have just the USB disk and the internal one, you want to run:

geometry (hd0)

[ENTER]

and

geometry (hd1)

[ENTER]

then try the same on the "bad" PC and see if the disks have the same order.

Winsetup from USB does use a rather complex re-mapping mechanism, so it is possible that it is this latter that gets somehow "confused".

To troubleshoot this, you can *try* :unsure::

  1. rename NTLDR to NTLDR.OLD
  2. make a copy of grldr
  3. rename it as NTLDR

Re-check disk mappings after having chosen the menu.lst entry (on second instance of grldr).

jaclaz

Link to comment
Share on other sites

Thanks for your feedback. I will try to detail as much as possible.

USB HD Samsung 640GB. For testing, I created a primary partition of 64GB, and a second primary partiton with the rest of the drive.

I use WinSetupFromUSB to create a standard installation, using Windows XP, Windows 7, and UBCD as sources.

I have 2 test machines:

PC1: SATA HD, SATA CD-ROM, does not boot from USB-HD

PC2: SATA HD, IDE CD-ROM, boots from USB-HD and reaches Windows XP partition screen in text mode setup (WORKS OK)

PC1: (AsRock P4VM800 motherboard) Booting from SATA CD-ROM using PLOP 5.0.11, loads USB-HD menu, when starting Windows XP install chokes at loading KBDES.DLL, before the partition text mode screen. (ERROR)

PC2: (Intel D945GCNL motherboard) Booting from IDE CD-ROM using PLOP 5.0.11, loads USB-HD menu, when starting Windows XP install also chokes at the start "unable to load \WINSETUP\XPPSP3\I386\BIOSINFO.INF". (ERROR)

I cannot test PC1 with/without PLOP CD, but I can do it with PC 2

The information about geometry of hd0 and hd1 is the same with or without booting with PLOP in PC2

The only difference I see is when doing map --status

BOOT FROM USB HD;

floppies_orig=1, harddrives_orig=2, floppies_curr=1, harddrives_curr=2

geometry (hd0): OK

geometry (hd1): OK

geometry (hd2):

error 21 no such drive exists

BOOT FROM PLOP CD and then going into USB_HD:

floppies_orig=1, harddrives_orig=3, floppies_curr=1, harddrives_curr=3

geometry (hd0): OK

geometry (hd1): OK

The only difference I see is in harddirves, why do i have one more (phantom) drive when booting with the PLOP CD?

I dont know the grub command to list drives, maybe that can help?

About renaming NTLDR to GLDR, in my standard install of WinSetupFromUSB there is no NTLDR in the USB-HD, so I don't understand what you propose.

Thanks again

Edited by Carlos Alloatti
Link to comment
Share on other sites

The only difference I see is when doing map --status

BOOT FROM USB HD;

floppies_orig=1, harddrives_orig=2, floppies_curr=1, harddrives_curr=2

geometry (hd0): OK

geometry (hd1): OK

geometry (hd2):

error 21 no such drive exists

BOOT FROM PLOP CD and then going into USB_HD:

floppies_orig=1, harddrives_orig=3, floppies_curr=1, harddrives_curr=3

geometry (hd0): OK

geometry (hd1): OK

The only difference I see is in harddirves, why do i have one more (phantom) drive when booting with the PLOP CD?

I dont know the grub command to list drives, maybe that can help?

Well it seems to me like in BOTH cases there is something "queer", normally if you have:

floppies_orig=1, harddrives_orig=2, floppies_curr=1, harddrives_curr=2

You don't have a

geometry (hd2):

error 21 no such drive exists

When you boot through PLOP, you can try:

map --harddrives=2

and re - run map --status

and when booting directly you can try:

map --unmap (hd2)
map --hook

and re - run map --status

To list disks, map --status is OK.

To list drives, you need to use a newer version of grub4dos than the one is inside Winsetup from USB, if I recall correctly. :unsure: (new versions have an enhanced "find" command).

Have you tried with

geometry (hd0,0)

result should be something like (just an example):

geometry (hd0,0) = drive 0x80(LBA): C/H/S=155061/255/63, Sector Count/Size=-1803912331/512

Partition num: 0, Filesystem type unknown, partition type 0x27

partition num: 1, filesystem type is Fat, partition type 0x6

partition num: 2, filesystem type is ntfs, partition type 0x7

About renaming NTLDR to GLDR, in my standard install of WinSetupFromUSB there is no NTLDR in the USB-HD, so I don't understand what you propose.

Yes, if you are using the "iso" approach, you need to modify the .iso.

Or you could try the older "stable" version, vers. 0.2.3, actually, on second thought, it would be definitely better if you try it.

jaclaz

Link to comment
Share on other sites

Oh I'd seen plop being used in the linux community but didn't realize windows folks were using it. Generally speaking, are you enjoying it or often encountering issues like this with plop?

Link to comment
Share on other sites

Oh I'd seen plop being used in the linux community but didn't realize windows folks were using it. Generally speaking, are you enjoying it or often encountering issues like this with plop?

Hmmm. :unsure:

I thought Siginet :rolleyes: was more a "windows" guy than a "Linux" one ;):

Generally speaking, set apart the features of PLoP as a boot manager, the idea is to supply an "independant" (from the one that may or may NOT be already included in the BIOS) USB stack.

When it works, it works allright, in some cases it doesn't work (and usually if the problem is reported, Elmar fixes it in next release :thumbup ).

On a very few cases, like the one at hand, it is probably the combination of PLoP (unspecified version) with grub4dos (definitely obsolete version) that creates the issue and that needs to be analyzed and hopefully fixed.

jaclaz

Edited by jaclaz
Link to comment
Share on other sites

What do you mean? :unsure:

There is the PLoP bootmanager:

http://www.plop.at/en/bootmanager.html

And the PLoP Linux mini-distro:

http://www.plop.at/en/ploplinux.html

BUT PLoP (the bootmanager) can act as:

  • bootmanager (just like any boot-manager, choose between hard disk partitions, CD, etc.)
  • IDE CD/DVD BIOS extender (i.e. add booting from IDE optical media where BIOS does not provide for it)
  • PCMCIA/Cardbus BIOS extender (i.e. add booting from PCMCIA/Cardbus where BIOS does not provide for it)
  • USB BIOS extender (i.e. add booting from USB where BIOS does not provide for it or allow booting at USB 2.0 speed on USB 2.0 hardware BUT with 1.1 BIOS functionality only)
  • DOS USB driver

jaclaz

Link to comment
Share on other sites

Well it seems to me like in BOTH cases there is something "queer", normally if you have:

floppies_orig=1, harddrives_orig=2, floppies_curr=1, harddrives_curr=2

You don't have a

geometry (hd2):

error 21 no such drive exists

How come? harddrives_curr=2 means I have 2 hard drives right? hd0 and hd1, so hd2 does not exist, so

geometry (hd2):
error 21 no such drive exists

seems correct to me.

Anyway, it seems you found the solution. Let me recap:

Samsung USB Hard drive, 2 partitions, using first 64GB partition with WinSetupfromUSB, second partition empty.

Stock install of WinSetupfromUSB, XP, Win7 and UBCDWIn sources. Added Grub4Dos 0.4.5b with BootIce 0.9.1.0512

Computer with one hard drive and one DVD drive.

Without PLOP CD booting:

grub> find
(hd0,0)
(hd0,1)
(hd1,0)

grub> map --status

floppies_orig=1, harddrives_orig=2, floppies_curr=1, harddrives_curr=2

Number of ATAPI CD-ROMs: 0

ram_drive=0x7F, rd_base=0x0, rd_size=0x100000000

The int13 hook is off. The drive map table is currently empty.

grub> geometry (hd0)
drive 0x80(LBA): C/H/S=1024/255/63, Sector Count/Size=1250258944/512
Partition num: 0, active, Filesystem type is ntfs, partition type 0x07
Partition num: 1, Filesystem type is ntfs, partition type 0x07

grub> geometry (hd1)
drive 0x80(LBA): C/H/S=1024/255/63, Sector Count/Size=488373984/512
Partition num: 0, active, Filesystem type is ntfs, partition type 0x07

grub> geometry (hd2)
Error 21: Selected disk does not exist

WIth PLOP CD booting:

grub> find
(hd0,0)
(hd0,1)
(hd1,0)

grub> map --status

floppies_orig=1, harddrives_orig=3, floppies_curr=1, harddrives_curr=3

Number of ATAPI CD-ROMs: 0

ram_drive=0x7F, rd_base=0x0, rd_size=0x100000000

The int13 hook is off. The drive map table is currently empty.

grub> geometry (hd0)
drive 0x80(LBA): C/H/S=1024/255/63, Sector Count/Size=1250258944/512
Partition num: 0, active, Filesystem type is ntfs, partition type 0x07
Partition num: 1, Filesystem type is ntfs, partition type 0x07

grub> geometry (hd1)
drive 0x80(LBA): C/H/S=1024/255/63, Sector Count/Size=488373984/512
Partition num: 0, active, Filesystem type is ntfs, partition type 0x07

grub> geometry (hd2)
Error 21: Selected disk does not exist

The only difference is harddrives_curr=3

So why do we have now 3 harddrives? who knows.

Doing

map --harddrives=2

as you sugested, when booting from PLOP CD solves the problem and everything works. Now the question is how to detect PLOP CD boot and do the modification automatically.

Now, just for fun, if you boot from the USB HD, choose "EXPERIMENTAL . Start PLoP boot manager" and then choose USB in PLOP this is what happens:

grub> find
(hd0,0)
(hd0,1)
(hd2,0)

grub> map --status

floppies_orig=1, harddrives_orig=3, floppies_curr=1, harddrives_curr=3

Number of ATAPI CD-ROMs: 0

ram_drive=0x7F, rd_base=0x0, rd_size=0x100000000

The int13 hook is off. The drive map table is currently empty.

grub> geometry (hd0)
drive 0x80(LBA): C/H/S=1024/255/63, Sector Count/Size=1250258944/512
Partition num: 0, active, Filesystem type is ntfs, partition type 0x07
Partition num: 1, Filesystem type is ntfs, partition type 0x07

grub> geometry (hd1)
Error 21: Selected disk does not exist

grub> geometry (hd2)
drive 0x80(LBA): C/H/S=1024/255/63, Sector Count/Size=488373984/512
Partition num: 0, active, Filesystem type is ntfs, partition type 0x07

As you can see, somehow hd1 became hd2, so of course the windows install does not work.

I am shure somehow checks for this can be added in the grub4dos menus to solve this problems.

By the way, is there any documentation for Grub4Dos in english? I only managed to find a help file in what seems to be chinese. Also is there any ONE official page for it? It seems like grub4dos things are scattered all over the web with no one central place for it. I don´t mind reading pages and pages of docs, but it's hard when you can´t find anything.

Edited by Carlos Alloatti
Link to comment
Share on other sites

Oh is Siginet's package just a bundled installer for the same plop boot manager?

Yep :thumbup, cited as an example of a "windows" guy using PLoP. ;)

Well it seems to me like in BOTH cases there is something "queer", normally if you have:

floppies_orig=1, harddrives_orig=2, floppies_curr=1, harddrives_curr=2

You don't have a

geometry (hd2):

error 21 no such drive exists

How come? harddrives_curr=2 means I have 2 hard drives right? hd0 and hd1, so hd2 does not exist, so

geometry (hd2):
error 21 no such drive exists

seems correct to me.

Sorry, it was probably a misunderstanding on my part. :blushing:

I thought that grub4dos actually detected a (hd2) but could not "find" it.

Anyway, it seems you found the solution. Let me recap:

Samsung USB Hard drive, 2 partitions, using first 64GB partition with WinSetupfromUSB, second partition empty.

Stock install of WinSetupfromUSB, XP, Win7 and UBCDWIn sources. Added Grub4Dos 0.4.5b with BootIce 0.9.1.0512

....

Everything is fine :thumbup EXCEPT for identifying grub4dos as 0.4.5b (it DOES NOT exist!) grub4dos releases (untill a "stable" is reached, that has no "letter") always have a date, current is:

http://code.google.com/p/grub4dos-chenall/downloads/list

0.4.5b-2011-10-30

But, no later than yesterday, it was 0.4.5b-2011-10-22 :whistle:

The only difference is harddrives_curr=3

So why do we have now 3 harddrives? who knows.

It seems to me like you found yourself the answer:

http://forum.plop.at/index.php/topic,165.msg1493.html#msg1493

Doing

map --harddrives=2

as you sugested, when booting from PLOP CD solves the problem and everything works.

Good.

Now the question is how to detect PLOP CD boot and do the modification automatically.

....

As you can see, somehow hd1 became hd2, so of course the windows install does not work.

I am shure somehow checks for this can be added in the grub4dos menus to solve this problems.

Yes, and you seemingly also found a way, which is here:

http://forum.plop.at/index.php/topic,165.msg1491.html#msg1491

What these do:

map (hd1) (hd0) || map (hd2) (hd0)

map (hd0) (hd1)

In "pseudo" code is:

  1. do map (hd1) to (hd0)
  2. if successful do nothing and go on
  3. If failed do map (hd2) (hd0)
  4. no matter what happened before, map (hd0) to (hd1)
  5. make the re-mapping "visible outside grub4dos"

To the above you should add:

map --harddrives=2

map --hook

Which in "pseudo" code is:

  1. no matter what happened before, map 2 hard drives
  2. make the re-mapping "visible outside grub4dos"

So before you may have EITHER:

  1. (hd0) USB thingy
  2. (hd1) Internal hard disk
  3. (hd2) no disk

OR:

  1. (hd0) USB thingy
  2. (hd1) no disk
  3. (hd2) Internal hard disk

But after the set of given commands you should have anyway:

  1. (hd0) Internal hard disk
  2. (hd1) USB thingy
  3. (hd2) who cares?

I hope the above makes sense.

The checkrange command is a bit more complex to understand and manage, from Readme_grub4dos.txt:

******************************************************************************

*** The New Command CHECKRANGE ***

******************************************************************************

Checkrange checks whether or not the return value of a command is in the

specified range or ranges.

Usage: checkrange RANGE COMMAND

Here are some examples for RANGE:

3 is a range containing only the number 3

3:3 is equivalent to 3

3:8 is a range containing the numbers 3, 4, 5, 6, 7, 8

3,4,5,6,7,8 is equivalent to 3:8

3:5,6:8 is also equivalent to 3:8

3,4:7,8 is also equivalent to 3:8

Note: You should not insert spaces into a range.

Here is an example showing where the checkrange can be used:

checkrange 0x05,0x0F,0x85 parttype (hd0,1) || hide (hd0,1)

which means: if (hd0,1) is not an extended partition, then hide it.

But the result is the same:

checkrange 0x80 read 0x8280 && map (hd1) () || map (hd2) ()
checkrange 0x80 read 0x8280 && map () (hd1)

More or less means, check if the boot was from hard disk, if yes then map (hd1) to current root device (i.e. (hd0)), if the latter fails map (hd2) to current root device (i.e. (hd0)), no matter what happened before map current root device (i.e. (hd0)) to (hd1).

By the way, is there any documentation for Grub4Dos in english? I only managed to find a help file in what seems to be chinese. Also is there any ONE official page for it? It seems like grub4dos things are scattered all over the web with no one central place for it. I don´t mind reading pages and pages of docs, but it's hard when you can´t find anything.

In the download there is a Readme_grub4dos file in English allright.

Notwithstanding this, it is anyway a bit difficult to "grasp" it if you are new to the tool.

The advice is to use (and peruse) the Guide by diddy:

http://diddy.boot-land.net/grub4dos/Grub4dos.htm

taking into account that some info in it is a bit outdated, but mainly that newer versions of grub4dos have added features (and bug fixes/enhancements)

jaclaz

Link to comment
Share on other sites

jaclaz: Thank you very much for your patience and detailed explanations!

Yes, I am new to Grub4Dos, so its kind of uphill a bit. The thing is I don't want to dig too much as I usually tend to do, otherwise important things gets pushed aside and not done (I am shure you know what I mean) . My main objective is to update my install tools, as I do every couple of years.

I just settled for this, inserted after the "default /default" line in menun.lst created by WinSetupfromUSB:

map (hd1) (hd1) || map (hd2) (hd1)
map --harddrives=2
map --hook

The first line solves the missing hd1/remapped to hd2 by PLOP, the second line handles the phantom third hard drive.

This covers 99% of my installs and does not mess with Grub4Dos as setup by WinSetupfromUSB. I guess this is not a complete solution, since other files created by WinSetupfromUSB seem to do some stuff related to the number of hard drives present.

Regarding CHECKRANGE, I understand how it works, its the read 0x8280 part I dont fully grasp. I am guessing its reading some value in memory from the second hard drive, or something like that.

It would be nice to have all these "peculiarities" with PLOP handled in an update to WinSetupfromUSB.

I had already found and read diddy's guide, and yes, found it rather outdated. The readme, well, it helps a bit.

Anyway, thanks a bunch for your kind help.

Link to comment
Share on other sites

Regarding CHECKRANGE, I understand how it works, its the read 0x8280 part I dont fully grasp. I am guessing its reading some value in memory from the second hard drive, or something like that.

Yep :), at address 0x8280 (I am told :blushing: ) there is boot (current) drive number:

80 (hard disk, - (hd0))

00 or 01 (floppy or superfloppy - usually)

9F (USB CD rom?=

....

Another couple references:

http://bbs.zgdnjj.com/viewthread.php?action=printable&tid=6737

this latter uses WENV which is an add-on that allows further scripting possibilities to grub4dos.

http://reboot.pro/11751/page__st__25

http://reboot.pro/14409/

jaclaz

Link to comment
Share on other sites

Tested on another computer that does not boot from USB at all, used PLOP CD, no go, errors at loading keyboard dll in textmode setup right before it should show the drive setup screen. Got tired of fighting with Winsetupfromusb, it does too many things that I dont quite understand. Right now I am trying a totally different aproach, no builders, will do everything by hand myself. So far its looking good.

Basically I added Firadisk driver to XP source, modified USB settings in source (USBBOOT.INF, that took me a while to find :)) I build ISO, copy it to USB HD, load it with grub, so far success! Managed to install XP with no problems in the two test machines. SO far, so good. I will post back when I am finished, hoping to save some poor soul in the future a week of hair pulling.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...