dbinca

After USB install, won't boot w/o usb

24 posts in this topic

So I got everything installed ok from my USB drive, but if I remove it and reboot, I just get a black screen with flashing underscore and won't let me boot. When I put the USB back and reboot, it goes fine. Any ideas?

Derek

0

Share this post


Link to post
Share on other sites

Any ideas?

Plenty. :)

  1. Which app/method did you use?
  2. Which OS did you actually install?
  3. When you boot from the USB do you get a grub4dos menu?

jaclaz

Edited by jaclaz
0

Share this post


Link to post
Share on other sites

I would have the same questions as Jaclaz... :)

I have ran into this before as well when doing a Win7 boot repair on a computer. I didn't have Grub4dos switch the drive order when I booted the Win repair ISO and my USB was drive 0. The repair cd then put some of the needed boot files on the USB rather than on the HD. I moved the boot files onto the HD from the USB drive and then used BCDEDIT to point to the right drive for the bootfiles...

0

Share this post


Link to post
Share on other sites

sorry, was early, wasn't thinking.

1. Using USB_MultiBoot.cmd from here

2. XP SP3

3. I don't recall getting the menu, just boots to XP.

0

Share this post


Link to post
Share on other sites

1. Using USB_MultiBoot.cmd from here

Well, this should put grub4dos on the USB stick.

2. XP SP3

Good. :)

3. I don't recall getting the menu, just boots to XP.

As said this is strange.

The general idea is that the stick "generated" by the batch is re-usable n times.

It is likely that you somehow managed to "install" the XP boot files directly on the USB instead of on the actual hard disk, as daddy_fizz suggested.

But no problem it can be easily corrected. :)

Boot to the installed XP.

Make sure you have "hidden and system files" visible.

Check that in your USB stick root there are:

  1. NTLDR
  2. NTDETECT.COM
  3. BOOT.INI

files (and that the same files are NOT in root of the hard disk)

If the above applies, simply copy the files from the USB stick to the hard disk.

Then, remove the system and hidden and read only attributes to BOOT.INI (open a command prompt, and assuming that the drive where XP is installed is actually C: type):

attrib -s -h -r C:\boot.ini

[ENTER]

and open BOOT.INI in Notepad.

Copy it's contents and paste them in your next post.

Post also if the actual drive where XP is installed is actually assigned letter "C:"

Confirm that you have a file "grldr" in root of the stick.

jaclaz

0

Share this post


Link to post
Share on other sites

THanks, I will check as soon as I get home. One question I can answer is that XP is installed on C:

0

Share this post


Link to post
Share on other sites

ok,so all those files exist in both roots. grldr is in root of stick

here is boot.ini from C


[Boot Loader]
timeout=30
Default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[Operating Systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional (Boot-Logo)" /noexecute=optin /fastdetect /KERNEL=NTOSBOOT.EXE
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="USB Repair NOT to Start Microsoft Windows XP Professional" /noexecute=optin /fastdetect

0

Share this post


Link to post
Share on other sites

The entries in BOOT.INI seem like "right".

So the flashing cursor is likely to be a problem with (probably) the bootsector of the C: drive (or a missing Active partition in the MBR).

Edit the BOOT.INI on the stick (NOT the one on C:\), adding to it a line:

C:\grldr="grub4dos"

If a file named menu.lst exists on the stick, rename it to menuold.lst.

Boot from the stick, one way or the other (i.e. directly or through the above added entry) you should be able to get to a grub4dos prompt.

In it type:

geometry (hd0)

[ENTER]

and

geometry (hd1)

[ENTER]

and post results.

From them it should be easy to get if the stick is (hd0) and the actual hard disk is (hd1) that is how they should be and if the hard disk has the partition active.

IF you are positive that the hard disk is (hd1) , try:

map (hd0) (hd1)
map (hd1) (hd0)
map --hook
rootnoverify (hd0)
chainloader +1
boot

(press [ENTER] after each line)

the above should give the SAME effect of when you boot without the USB stick.

Reboot and try:

map (hd0) (hd1)
map (hd1) (hd0)
map --hook
root (hd0,0)
chainloader +1
boot

(press [ENTER] after each line)

Please note that in the above (hd0,0) means first partition of the hard disk, if you installed to any partition but the first one, it should be changed, like (hd0,1) for the second partition and so on.

What happens?

Reboot and try:

map (hd0) (hd1)
map (hd1) (hd0)
map --hook
root (hd0,0)
chainloader /ntldr
boot

(press [ENTER] after each line)

Please note that in the above (hd0,0) means first partition of the hard disk, if you installed to any partition but the first one, it should be changed, like (hd0,1) for the second partition and so on.

What happens?

Report.

jaclaz

0

Share this post


Link to post
Share on other sites

didnt get email about this.

ok, so here is the first couple things

post-319641-0-89953000-1300602860_thumb.

the first set of map commands did what it does when I force it to try and boot from hd

the 2nd set did same thing

Last set actually booted to the windows boot menu where i choose which version to start.

Derek

0

Share this post


Link to post
Share on other sites

Good :) (which still means bad :(, but now we have a better idea of what is happening :yes: ).

To recap current situation and clear problem at hand:

Normal booting:

BIOS->HD->MBR->Bootsector of Active partition->NTLDR

First set of commands:

BIOS->Stick->grub4dos->HD->MBR->Bootsector of Active partition->NTLDR (FAILED)

Second set of commands:

BIOS->Stick->grub4dos->HD->Bootsector of Active partition->NTLDR (FAILED)

Third set of commands:

BIOS->Stick->grub4dos->HD->NTLDR (WORKING)

This should mean that the problem is (at least) the bootsector of the partition).

The output of gometry (hd1) tells us that you have a drive with a geometry of 16383x255*63=163,192,895 sectors * 512 = 134,754,762,240 bytes.

On it you have a single partition FAT, type 0xC, i.e. FAT32 LBA mapped. <- can you confirm that this is what you have (once booted into WinXP?)

I would like to have also the output of just the command (on a new boot from stick and WITHOUT previously re-mappping drives):

root (hd1,0)

to understand how big it is this FAT32 partition...

In any case what you can do is to fix the bootsector CODE and the MBR one, just in case.

get:

  1. bootpart: http://www.winimage.com/bootpart.htm
  2. mbrfix: http://www.sysint.no/nedlasting/mbrfix.htm

(unzip/copy/whatever in such a way so that you have them available in the booted system)

boot the system using the third set of entries, open a command window, navigate to the folder where you have the above utilities and run:

MbrFix /drive 0 driveinfo

[ENTER]

You should get some info about the internal hard disk.

VERIFY that drive 0 is the internal hard disk!

If yes, then:

MbrFix /drive 0 fixmbr

[ENTER]

This will rewrite win2K/XP/2003 MBR CODE

Now:

MbrFix /drive 0 getactivepartition

[ENTER]

You should get as result partition 1

IF NOT run:

MbrFix /drive 0 /partition 1 setactivepartition

[ENTER]

Now run bootpart as follows:

BOOTPART

[ENTER]

You should get something like:

0 : C:* type=c ( Fat32), size = <some number> KB

IF YES (and this data is coherent with what you got with the previous root(hd1,0) under grub4dos), run:

BOOTPART WINXP BOOT:C:

[ENTER]

An updated table of bootpart parameters is here:

http://www.winimage.info/forum/viewtopic.php?f=1&t=276

Try booting without the stick connected.

Note, you can also try doing it in two iterations, in the first ONLY use BOOTPART (if the problem is ONLY the bootsector it should be solved) and if it doesn't work by itself, then run also the MBRFIX set of commands.

jaclaz

0

Share this post


Link to post
Share on other sites

ok, i got through all except the last bootpart cmd. I get "Error in parameters". I triple checked it and it is exactly as you typed. I even checked the bootpart site.

0

Share this post


Link to post
Share on other sites

ok, i got through all except the last bootpart cmd. I get "Error in parameters". I triple checked it and it is exactly as you typed. I even checked the bootpart site.

This is "queer", can you run just

BOOTPART

[ENTER]

and post the output?

As a general idea, if I ask you to provide something, it is because I would like to have it ;):

The output of gometry (hd1) tells us that you have a drive with a geometry of 16383x255*63=163,192,895 sectors * 512 = 134,754,762,240 bytes.

On it you have a single partition FAT, type 0xC, i.e. FAT32 LBA mapped. <- can you confirm that this is what you have (once booted into WinXP?)

I would like to have also the output of just the command (on a new boot from stick and WITHOUT previously re-mappping drives):

root (hd1,0)

to understand how big it is this FAT32 partition...

You may need an additional switch, the LBA one:

Usage : When running under Windows NT/2000/XP or MS-Dos

BOOTPART

List all partition, with number

BOOTPART <part_number> [LBA] <filename> [<name_of_system>]

where : part_number : a number of a partition (or A: for floppy)

LBA : force LBA addressing for loading partition bootsector

filename : the file name of the bootfile to create

name_of_system : the name to be added in the BOOT.INI

Create a boot file for the partition, and if name_of_system

I.e.:

BOOTPART WINXP LBA  BOOT:C:

[ENTER]

:unsure:

Try doing another thing.

RUN:

BOOTPART WINXP C:\bootsect.chs

[ENTER]

and:

BOOTPART WINXP LBA C:\bootsect.lba

[ENTER]

Compress both C:\bootsect.chs and C:\bootsect.lba into a .zip archive and attach the .zip to your next post.

jaclaz

0

Share this post


Link to post
Share on other sites

Root (hd1,0)

Filesystem type is fat, partition type 0xc

0

Share this post


Link to post
Share on other sites

BOOTPART


Physical number of disk 0 : 62686268
0 : C:* type=c (Win95 Fat32 LBA), size= 15609888 KB, Lba Pos=8064
Physical number of disk 1 : 217934c
1 : D:* type=e (Win95 XInt 13), size= 1000912 KB, Lba Pos=63

when i do the LBA switch it says

C:\lba written

C:\BOOT.INI updated

also does that with the last bootpart code. it doesn't write to bootsect.lba

my new boot.ini


[Boot Loader]
timeout=30
Default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[Operating Systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional (Boot-Logo)" /noexecute=optin /fastdetect /KERNEL=NTOSBOOT.EXE
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="USB Repair NOT to Start Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\lba="boot:c:"
C:\lba="c:\bootsect.lba"

bootsect.zip

Edited by dbinca
0

Share this post


Link to post
Share on other sites

I am getting old :ph34r: I probably gave you some wrong instructions.

But the results are ALMOST right.

Problem is that bootpart "fixes" wrong CODE, whilst in your case the problem is some wrong DATA.

The problem (quite strange I have to tell you) is that somehow the filesystem was made with a "wrong" CHS geometry of 16/63 (instead of the "right" 255/63)

Please get tinyhexer:

http://reboot.pro/8734/

You want to, once you have it installed and running in the XP, and:

  • File->Disk->Open Drive
  • Choose \\.C:\ (\\.\PhysicalDrive0, partition 1)
  • Make sure you:
    1. Load 0x1 sectors at the time
    2. Start sector 0

Are you familiar with the way a disk editor works? :unsure:

Anyway, check in the below screenshot, you should see the same thing as it is on the RIGHT side window (byte at offset 0x1A with value 10).

You need to select it and overwrite this value with the value you see in the LEFT side windows (byte at offset 0x1A with value FF).

(you don't need the BSview structure viewer, I used it in the screenshot only to better illustrate the issue)

Alternatively, if you are not confident with this approach, I can make the corrected bootsector and give you some instructions on how to write it from command line.

Temporarily add to the stick a new menu.lst as follows:

color black/cyan yellow/cyan
timeout 30

title XP on internal HD direct ntldr
map --unhook
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
root (hd0,0)
chainloader /ntldr

title XP on internal HD bootsector
map --unhook
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
root (hd0,0)
chainloader +1

title XP on internal HD MBR
map --unhook
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
rootnoverify (hd0)
chainloader +1

So that you don't need to re-type the sets of commands.

Right now only the first entry will work..

After the fix BOTH the other ones should.

jaclaz

post-25215-0-47693400-1300708021_thumb.j

0

Share this post


Link to post
Share on other sites

ok, I made the HEX change and saved it. Made a menu.lst, there was none there cause I had renamed the old like you told me to b4. I rebooted and still the same.

0

Share this post


Link to post
Share on other sites

ok, I made the HEX change and saved it. Made a menu.lst, there was none there cause I had renamed the old like you told me to b4. I rebooted and still the same.

With all due respect I doubt it. :unsure:

Is it possible that there are TWO errors? :blink:

Do the following:

File->Disk->Open Drive

Choose \\.C:\ (\\.\PhysicalDrive0, partition 1)

Make sure you:

Load 0x1 sectors at the time

Start sector 0

Select All/Copy/Paste to new/Save as bootsector.dat

File->Disk->Open Drive

Choose \\.\PhysicalDrive0

Make sure you:

Load 0x1 sectors at the time

Start sector 0

Select All/Copy/Paste to new/Save as MBR.dat

Compress the two files into a zip and post the .zip.

jaclaz

0

Share this post


Link to post
Share on other sites

There is no apparent reason why the MBR and bootsector could not work. :wacko:

I mean, in the MBR there is one single 0C type partition, Active 0/128/1 -1024/254/63 8064/31219776 (the CHS and LBA are "balanced")

The partition starts on a fractional head (128) and this may be a problem :unsure: for the "title XP on internal HD MBR " BUT the bootsector has a "right geometry" of 255/63 (after the fix) and has a "right" 31219776 filesystem size., with the "right" sectors before 8064, which should allow the " title XP on internal HD bootsector" to work anyway.

You can try removing CHS check from the bootsector, i.e. change bytes at offset [0xE6], [0xE7], [0xE8] and [0xE9] to 0x90:

http://www.911cd.net/forums//index.php?showtopic=21702&st=129

i.e 0F824A00 to 90909090

I am attaching a pre-modified bootsector.

Try fixing the bootsector as per above and try again the three menu.lst entries.... (or tey typicg in the command line, I just reviewed them and they seem allright to me, but you never know)

When entering the commands:

The only other possibility I can think of is that (for whatever reason) one of the "other" sectors involved in the booting is missing or corrupted.

http://mirror.href.com/thestarman/asm/mbr/ntFAT32BR.htm

Do the following:

File->Disk->Open Drive

Choose \\.C:\ (\\.\PhysicalDrive0, partition 1)

Make sure you:

Load 0x10 sectors at the time

Start sector 0

Select All/Copy/Paste to new/Save as bootsectorall.dat

Compress the file into a zip and post the .zip.

As soon as I can find some time I will anyway test your MBR and bootsector in a VM to see if I can see anything I missed... :blink:

jaclaz

bootsect_mod.zip

0

Share this post


Link to post
Share on other sites

@dbinca

Which hardware do you use?

Do you use a HP or a Lenovo machine?

0

Share this post


Link to post
Share on other sites

It's a custom machine.

So, check this out, I went to open the drive again in the hex editor and it was back at 10? I pasted yours over, saved, closed and opened it again and it was still 10!

So wtf is that about? Is there something preventing it from saving?

Derek

0

Share this post


Link to post
Share on other sites

Hmmm. :unsure: cannot say.

XP has not this kind of protection (that you may have in Vista :ph34r: and later) some BIOS protection?

Make sure you know which drive letter the partition has, (it should be C:) and assuming you unzipped the bootsector_mod.dat to the same drive then run dsfi (part of the dsfok package:

http://members.ozemail.com.au/~nulifetv/freezip/freeware/

to copy the bootsector file to the drive like (open a command prompt, navigate to where you unzipped the DSFOK package and type):

dsfi \\.\C: 0 512 C:\bootsect_mod.dat

[ENTER]

Or check the hex editor settings, it is possible that it has a "read only or "fake-write" kind of setting.

The note by cdob about Lenovo was because this brand often has a "queer" BIOS that "sees" devices as having a 240 heads geometry, but since grub4dos (which should use the BIOS info) finds 255, this latter should be the "right" geometry.

jaclaz

Edited by jaclaz
0

Share this post


Link to post
Share on other sites

WOOHOO!!! It's working now after using dsfi!!

Thank you very much for all your help! :thumbup

0

Share this post


Link to post
Share on other sites

WOOHOO!!! It's working now after using dsfi!!

Thank you very much for all your help! :thumbup

You are welcome.

Please note how the bootsector you are now using has TWO fixes, the first one actually needed, the second one probably not.

Now that the DATA is OK, you could generate a new bootsector (with bootpart or by booting to Recovery Console and running bootfix or whatever), and have also the CODE "kosher" (the one you have now has disabled CHS addressing).

The above is not *needed* of course, what I would advice is to check the copy of the bootsector (Sector 6 on FAT32 volumes) is "in sync", you never know when (and IF ;)) you may need it :).

jaclaz

0

Share this post


Link to post
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.