Re: Windows XP won't start after disk cleanup.
Good morning Maynard. Thats awsome info buddy and just what I needed to see. Well unfortunately with that disk we can't do a repair without data loss. So lets try this first.
Now this is alot of information but its step by step instructions on how to perform these proceedures. Just take it one step at a time completing each step in sequence. If you encounter a problem please stop there and ask me in a post. Also read the entire set of instructions and then proceed. I know you said that you did the bootcfg /rebuild eeeeeer.... I think you did, but try it following these instructions exactly. Ok I can't think of anything else I wanted to tell you for now, just take your time and good luck.
When you boot from the CD, the following is displayed:
On a black screen:
Setup is inspecting your computer's hardware configuration...
Screen turns Blue, and Windows Setup is displayed at the top.
at the bottom is displayed the following in sequence:
Press F6 if you need to install a third party SCSI or RAID driver
Press F2 to run Automated System Recovery (ASR)...
Setup is loading files (file names displayed)
Title changes to Windows XP Professional (or Home Edition) Setup
The options to setup or repair Windows are displayed
Choose To repair a Windows XP installation using recovery console, press R.
You may need to choose the Windows installation if you have a dual boot system. Type the number of the Windows installation you want to log into.
You will need to enter the Administrator password unless you previously disabled that requirement; if it's blank, just press enter.
You should now be at a C:\WINDOWS> prompt
Type the following lines pressing Enter after each one. Change the drive letter if needed.
Note that there are spaces between each differently colored part of the commands:
CD \ (There is a space after CD)
Ren Boot.ini Boot.old
If you get an error that the file can't be found skip step 3.
Type Exit. This will reboot the system. Re-enter the Recovery Console and start at step 4.
(If you don't reboot, any previous entries in the boot.ini file might get added again, as they are stored in memory)
Type BootCfg /Rebuild
This will go through several prompts.
The following is an example. You would type the colored text:
Code:
Scanning all disks for Windows installations.
Please wait, since this may take a while...
The Windows installation scan was successful.
Note: These results are stored statically for this session.
If the disk configuration changes during this session,
in order to get an updated scan, you must first reboot
the machine and then rescan the disks.
Total identified Windows installs: 1
[1]: C:\WINDOWS
Add installation to boot list? (Yes/No/All):y
Enter Load Identifier:Microsoft Windows XP Professional (or what ever you want to identify the OS)
Enter OS Load Options:/noexecute=optin /fastdetect
Note: There is a space between optin and /fastdetectType Fixboot
type Y to write the new boot sector
Remove the CD, then type Exit and see if it will boot into Windows.
If that doesn't work, we can try replacing the hal.dll file, either from the ServicePackFiles folder (if present) or the CD.
There are 7 different versions of the hal.dll file. When Windows XP is installed, it selects the correct file from one of the following and renames it to hal.dll
Code:
HAL File Copied Computer Description in Device Manager
Halmacpi.dll ACPI Multiprocessor PC
Halaacpi.dll ACPI Uniprocessor PC
Halacpi.dll Advanced Configuration and Power Interface (ACPI) PC
Halmps.dll MPS Multiprocessor PC
Halapic.dll MPS Uniprocessor PC
Hal.dll Standard PC
Halsp.dll Compaq SystemPro Multiprocessor or 100% CompatibleThe first three are the most common. If you have two processors, or a dual/quad core processor, the ACPI MultiProcessor PC hal (halmacpi.dll) is the one to use.
If a Single core/Single processor, one of the next two should be chosen, Halaacpi.dll or Halacpi.dll.
If you are not sure, you can pick the Standard PC Hal.dll, and then we can check the version of the old file after booting to Safe Mode, then correct our choice if needed.
Running System Restore after replacing the hal.dll file might not replace this file with the correct version, so easiest to replace it manually.
There are two other files that are tied to the hal.dll. They are:
ntoskrnl.exe
ntkrnlpa.exe
For single processor systems, the files are named the same as above.
For multi-processor systems, these two files get renamed:
ntkrnlmp.exe -> ntoskrnl.exe
ntkrpamp.exe -> ntkrnlpa.exe
I haven't tested all combinations of these files to see which will work. If you install the Standard PC hal.dll, you may need to also install the single processor versions of ntoskrnl.exe and ntkrnlpa.exe or the system might not boot.
On a Dual Core Pentium D system running XP MCE 2005 w/SP2 (Same as XP Pro), the system will not boot after replacng the hal.dll file with the one from the CD. I had to replace the ntoskrnl.exe and ntkrnlpa.exe files with the single processor versions for it to boot, and the system then was only using one core from the Pentium D processor.
The correct file to use on this system is the halmacpi.dll
The ntkrpamp.exe and ntkrnlpa.exe files will be in the i386\SPX.CAB file on the CD, where X is the Service Pack number.
To extract the file, use this command in the Recovery Console, using the appropriate SP# and file name:
expand D:\i386\SP2.cab /F:ntkrnlpa.exe C:\Windows\System32
Once expanded, rename if needed.
Boot to the Recovery Console as above.
Type the following:
Systemroot
CD System32
Ren hal.dll halold.dll
If the hal.dll file is actually missing, this will give an error, just ignore it.
Copy ntoskrnl.exe ntoskrnl.old
Copy ntkrnlpa.exe ntkrnlpa.old
Dir C:\Windows\ServicePackFiles\i386\hal*
Do one of the following depending on the result
Note: Do not add a space between the Dark Red and Red sections.
If it lists 7 files (or at least hal.dll)
type the following:
Copy C:\Windows\ServicePackFiles\i386\hal.dll C:\Windows\System32\hal.dll
Replace hal.dll with the appropriate file name from the above table.
Do NOT change hal.dll
Example for an ACPI Multiprocessor PC:
Copy C:\Windows\ServicePackFiles\i386\Halmacpi.dll C:\Windows\System32\hal.dll
If you get an error The system cannot find the file or directory specified.
Type the following:
Map
Find the line Device\CdRom0 and note the drive letter X:. This is your CD-Rom.
Expand X:\i386\hal.dl_ C:\Windows\System32\hal.dll
Replace hal.dl_ with the appropriate file name from the above table, but change the last L to an underscore. Do NOT change hal.dll
Some OEM CDs have those files uncompressed. If you get an error that the file can't be found type this:
dir X:\i386\hal*.*
If the files are listed with a .dll extension instead of .dl_, use Copy instead of Expand, and use .dll
Remove the CD, then type Exit
When the system reboots we want to boot to Safe Mode, so tap F8 to bring up the Windows Advanced Options Menu and choose Safe Mode.
If other files have been corrupted, you may get a different error message. Post the complete error message, and we'll see what other steps need to be taken.
Otherwise, you should end up in Safe Mode.
If the system hangs, and you copied the Standard hal.dll file, you may need to go back into the Recovery Console and copy the single processor versions of ntoskrnl.exe and ntkrnlpa.exe from the CD or the C:\Windows\ServicePackFiles\i386 folder into the C:\Windows\System32 folder
Check which version the old file was:
Double click My Computer
Double click the C: drive
Double click Windows
Double click System32
Right click on halold.dll, click Properties.
If hal.dll was missing, the halold.dll file won't exist. Best we can do here is see if ntoskrnl.exe and ntkrnlpa.exe are Uniprocessor versions or Multiprocessor versions, and use a matching hal.dll
Click the Version tab
Click on Original File Name
The original name will be displayed.
Repeat for the ntoskrnl.old and ntkrnlpa.old files
If the wrong hal file was chosen, you may at some point get a notice that Windows has finished installing new devices and needs to reboot. Click No.
If you need to change the file, first copy it to your desktop.
Copy the correct file(s) from one of these folders:
C:\Windows\ServicePackFiles\i386
C:\Windows\System32\dllcache
C:\Windows\Driver Cache\i386\drivers.cab
C:\Windows\Driver Cache\i386\SPX.CAB
or from the CD:
D:\i386
D:\i386\drivers.cab
D:\i386\SPX.CAB
If it is compressed (it'll have a .dl_ or .ex_ extension) we first need to expand it.
Click Start | Run, type cmd, Press Enter
type the following:
CD /D %userprofile%\Desktop
expand halXXXX.dl_ hal.dll
where halXXXX.dl_ is the name of the file you copied
If not compressed, just rename the file to hal.dll
Do the same for the ntoskrnl.exe and ntkrnlpa.exe files
Use ntkrnlmp.exe and ntkrpamp.exe if you want the Multi-processor versions
renaming them to ntoskrnl.exe and ntkrnlpa.exe
Now navigate back to the C:\Windows\System32 folder and drag the hal.dll, ntoskrnl.exe, and ntkrnlpa.exe files from the desktop and drop it into the System32 folder. You'll be asked if you want to replace the existing files, click Yes
Reboot the system.
I will check on you throughout the day to monitor your progress buddy.
Patmark