Unbootable computer. ERROR="NTLDR is missing"

  • Thread starter Thread starter RALPH MONNETT
  • Start date Start date
R

RALPH MONNETT

HELP!! Unbootable computer, double error: "NTLDR is
missing" --when this error corrected by making boot
floppy with NTLDR, NTDETECT.COM, and Boot.ini file, the
error upon rebooting becomes:


Windows 2000 could not start because the following file
is missing or corrupt:

<windows 2000 root>\system32\ntoskrnl.exe

Please re-install a copy of the above file


When this error is corrected by copying ntoskrnl.exe from
win 2000 cd-rom onto hard drive with recovery console, I
get the same error message upon rebooting. I then
removed hard drive in question, connected it as slave in
spare machine, and explored to see if ntoskrnl.exe was in
C:\winnt\system32\ntoskrnl.exe and sure enough it is
there. Also ran virus scan on the entire drive with
updated norton antivirus, as well as F-prot programs and
NO VIRUSES showed up anywhere.

So now I've got the created boot floppy as above, I've
copied ntoskrnl.exe to the hard drive, and I've scanned
for viruses--what can I do next while this hard drive is
connected to my spare machine to make it boot when
replace into original machine (short of formatting). By
the way the computer in question has more than one hard
drive and I've loaded windows 2000 onto 2 partitions on
the second hard drive, but still cannot boot the machine--
get same error messages. What am I missing here? Thanks
for reading this long post and any help.
 
Hi, Ralph.

All these problems are related and they all can be solved pretty easily if
you understand the WinNT/2K/XP boot process. Ever since WinNT4, at least,
it has worked generally like this:

When we power on the computer, it's very dumb. It knows nothing except what
is hard-coded into the BIOS chip (as modified by the settings saved in
CMOS). The BIOS instructions tell it to find the first HD and read the
first physical sector on the disk. This is the MBR (Master Boot Record),
including the partition table, which tells where each partition begins and
ends and which is currently the Active (bootable) partition. The bit of
code in the MBR tells it to read the boot sector of that partition - and how
to find it. That boot sector has only 512 bytes of code, so it can't do
much, but it can find the file ntldr in that partition, read it into memory,
and transfer control to it. Ntldr begins the real work of booting Win2K.
It reads boot.ini, which tells which drive NUMBER and partition NUMBER hold
ntoskrnl.exe and the rest of Win2K. Using this info, ntdetect.com loads
Win2K and turns control over to it.

When you change CMOS and tell it to boot from the floppy drive, the computer
looks to the floppy, rather than the first HD, to find ntldr, etc. In this
case, ntldr uses A:\boot.ini, rather than C:\boot.ini, to find Win2K, of
course.

When you add or remove a drive - or a partition on a drive - you confuse
this process, which has tunnel vision. If boot.ini points to Drive 0, but
you've moved that HD to Drive 1, then ntdetect.com still tries to read Drive
0, but what it finds does not look at all like ntoskrnl.exe, so the poor
program throws up its hands and gives you one of its very few available
error messages. So, even though a perfectly good ntoskrnl.exe (and all the
other Win2K files) are right where they should be, Win2K can't boot because
boot.ini is pointing to a different HD and/or partition. The key parameters
in boot.ini are rdisk(#)partition(#), meaning the physical disk number
(starting with zero) and the partition number on that HD (starting with one
on each HD), and the "boot folder" name, typically \WINNT for Windows 2000.

The fix, obviously, is to make sure that C:\boot.ini points to where the
needed files are NOW. Every time you swap drives, you must update
C:\boot.ini so that it does NOT point to where Win2K USED TO BE.

Probably the easiest way to do this is to first physically install your
HDs/partitions the way you want them to be. Then, set CMOS to boot from the
CD drive. Boot from the Win2K CD-ROM and use the Repair process to just
Inspect the startup environment. This should let Win2K Setup just detect
where the Win2K files are, then update the MBR, boot sector, and C:\boot.ini
to point to those files. (It's been a couple of years since I upgraded from
Win2K to WinXP so I don't remember the Repair process prompts, but you can
figure it out.)

In summary, it does no good to have all those Win2K files in the right place
if C:\boot.ini points to the wrong place.

RC
 
Back
Top