Jump to content

Setup stops responding at "Setup is inspecting your computer's hardware configuration..."


dearleader

Recommended Posts

53 minutes ago, dearleader said:

The steps you described work, and I can get into Windows. Is there a way I can do this without relying on a boot disk?

I am still clueless about why this happens. :w00t:

The disk swap that Winsetupfromusb performs (via shifthd.bat) and that you re-performed manually (because of the booting from the USB stick shifts the hard disk to hd1) should be (in theory) exactly the same as when you boot without the USB stick, i.e. the internal hard disk (shifted to hd1 by the USB stick booting) is mapped as hd0 (and everything works) while if you boot from the internal hard disk, the internal hard disk is (as you tested) already hd0.

Is it possible that *somehow* the re-mapping by grub4dos fixes *something* (but what?).

Try the following:

1) boot "normally" (without the USB stick), get to the grub4dos prompt, and issue:

geometry (hd0)

map (hd0) (hd1)

map --hook

geometry (hd1) <- this should have the same output of the geometry (hd0) command above

2) now issue:

map (hd1) (hd0)

map --hook

geometry (hd0) <- this should still have the same output

3) try again booting with:

chainloader (hd0)+1

rootnoverify (hd0)

boot

If it works :unsure: it seems is like (for *whatever* reasons) the BIOS fails to detect properly the internal disk and by issuing a few commands in grub4dos it somehow manages to get it right.

Try adding to the BOOT.INI two lines:

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

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

And try them "directly" (without going through grub4dos), the second one (3rd disk) won't ever boot, but if there is (why?) some mismatch between the BIOS and arcpath, the first one (2nd disk) may work.

jaclaz

Edited by jaclaz
Link to comment
Share on other sites


The re-mapping you just described works, even without the flash drive. Booting the entry for Windows XP directly still causes the ntoskrnl.exe issue.

Both of the options you told me to add to my boot.ini fail with the following error:

Windows could not start because of a computer disk hardware
configuration problem.
Could not read from the selected boot disk. Check boot path
and disk hardware.
Please check the  Windows documentation about hardware disk
configuration and your hardware reference manuals for
additional information.

 

Link to comment
Share on other sites

So, somehow the internal disk is actually 1st disk (as the arcpaths for the following, non-existant disks both fail, with the "right" error).

Could it be *something* in the Registry? :unsure:

But what in the grub4dos re-mapping would fix it?

I need to check (cannot remember right now) if it is possible to clear the DosDevices key from the booted system. I'll try and check and let you know.

 

Or could it be *something* in the bootsector?

It could be that somewhere the drive is marked as 129 (or 0x81) instead of 128 (0x80),  and that grub4dos re-mapping fixes it.

As well. I'll see if I can put together a procedure to check for that.

Try once again:

1) get to grub4dos, as usual

geometry (hd0)

map (hd0) (hd1)

map --hook

2)

root (hd1,0)

chainloader /ntldr

3) choose the entry for 2nd disk

jaclaz

 

Link to comment
Share on other sites

58 minutes ago, dearleader said:

These steps work. Could this mean that somewhere my drive is 0x81?

Yep, this is what I am suspecting.

But it shouldn't be the Registry (there the Dosdevices key uses Disk Signature+offset to partition to assign drive letters)

In the MBR there is nothing about the disk number.

So it can only be the bootsector. :dubbio:

There is a field in it for disk number, but in theory it should not be used and should always be 0x80, though it seems that it is actually used when booting, see here:

https://thestarman.pcministry.com/asm/mbr/NTFSBR.htm

Get to grub4dos and run

cat --hex --skip=32 --length=4 (hd0,0)0+1

Post output, should be 80 00 80 00

Try also this:

1) get to grub4dos and try "directly":

root (hd0,0)

chainloader /ntldr

boot

2) choose the 1st disk entry

(by chainloading the NTLDR you should be bypassing both the MBR and the PBR, but it has to be seen if NTLDR reads the disk info *somewhere else* nonetheless)

 

Check also, once you have booted to XP with one of the workarounds tested, how is the disk seen in Disk Manager and/or diskpart, you only have one disk connected and it should be Disk 0.

jaclaz

 

Edited by jaclaz
Link to comment
Share on other sites

Re-reading my previous post I made a typo, my bad :blushing:, the right offset is 0x24 (36 decimal):

cat --hex --skip=36 --length=4 (hd0,0)0+1

the 00000000 at offset 32 decimal is normal, check again with offset 36.

Or with

cat --hex --length=40 (hd0,0)0+1

(the last four bytes should be 80 00 80 00)

In any case, you can boot to the XP and use a GUI hex/disk editor, such as Tiny Hexer, either the Portable version:

 https://www.portablefreeware.com/index.php?id=2504

or installing the "full" version:

https://www.softpedia.com/get/Others/Miscellaneous/tiny-hexer.shtml

to confirm the result (and if needed change those bytes[1])

jaclaz

[1] they can be changed also via grub4dos, but there is the risk (as just happened) of an error/typo in the offset

Edited by jaclaz
Link to comment
Share on other sites

11 hours ago, dearleader said:

Yes, those bytes are 80 00 80 00.

So, we are back to square one :(.

I am short of ideas on what could be the cause of the issue, maybe some "queer" BIOS setting? :dubbio:

Let's start talking of possible workarounds:

#1: install grub4dos to the MBR (so grldr will boot first, and from its menu.lst you will chainload the NTLDR+BOOT.INI)
#2: change the loader name in the PBR to grldr (same as above, but has to be seen if "passing through the PBR" still works) and/or change the grldr name to NTLDR and rename NTLDR to NTLDRXP:
https://msfn.org/board/topic/95537-multiboot-vista-xp-and-other-oses-with-grub4dos-menu/
#3 make a "parallel" NTLDR+BOOT.INI (with a copy of NTLDR renamed to - say - NTLDZ and hex edited to look for - still say - BOOZ.INI)
#4 use (via grub4dos) a "NT boot floppy" (a "virtual" floppy, an image containing a NTLDR+BOOT.INI+DETECT.COM)

There are also other ways, but they are way more complex.

Of the 4 proposed ones, if I were you I would try first #3 or #4 as they are "safe" in the sense that you do not risk making a non-bootable  system.

jaclaz

Link to comment
Share on other sites

@dearleader

Do you happen to have the USB drive before the HDD in the BIOS boot settings? 

If so, move the HDD to the top, then check if you can still boot Windows through the USB by selecting it from the boot menu (F12 key)

 

about #4 , what i think jaclaz meant was to make a floppy disk image file, then mount and boot that through grub4dos.

Link to comment
Share on other sites

Basically you get  IMDISK , create a 1.44 MB floppy image (2880 blocks or 1474560 bytes in size), let's say the file is called NTBOOT:IMA, format it under an XP and copy to it:

NTLDR
NTDETECT:COM
BOOT.INI

(and - since you still have some space available, also grldr, just in case)

*like* 

http://fekete.x10host.com/xxtb3000.htm#xxtb_33

The BOOT.INI in C: you modify it to have as default the c:\grldr entry and the rdisk(0) as option, with a lowish timeout, like 1 or 2 seconds.

Then in C: you add a menu.lst with something *like* (to be checked manually before writing to the menu.lst):

timeout 10

title Boot XP from C:

find --set-root /ntboot.ima

map /ntboot.ima (fd0)

map --hook

root (fd0)

chainloader /ntldr

In the BOOT.INI inside the floppy image you make default the multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional 1st disk" /noexecute=optin /fastdetect and a lowish timeout. again like 1 or 2 seconds.

 

The idea is that when booting you go:

BIOS->hard disk MBR->PBR of active partition->NTLDR->BOOT.INI->(default) grub4dos->menu.lst->NTLDR on the floppy image-> BOOT:INI on the floppy->(default) XP on C:

and (normally) you don't have to press any key/make any choice when booting.

 

While testing (and also after) you still have the possibility to drop to the grub4dos prompt, and MBR and PBR on hard disk remain untouched/unmodified.

The whole stuff, when finalized should slow down booting by 2-3 seconds at most.

Still, if we can find the reason why your PC behaves strangely (do check BIOS settings, like RainyShadow suggested) it would be better.

jaclaz

 

 

Edited by jaclaz
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...