WinXP now hangs during login, wlnotify.dll

#1
Hi folks,

I am trying to configure a triple-boot configuration with Windows 7, Windows XP and Mac OS X. WinXP was installed first followed by Win7. Dual-booting between those was originally working fine, but of course I wanted to bring back my OS X partition. I installed EasyBCD, configured the boot menu and I was able to successfully launch both Win7 and WinXP. Mac OS X didn't work, so I tried hitting that little "Write MBR" button. Ever since then, when I boot WinXP, it seems to think the /WINDOWS folder is under the F: drive instead of C:. As such, upon login, WinXP is looking for /WINDOWS/System32/wlnotify.dll on the "F:" drive and cannot find it, so it just hangs there for a few minutes then kicks me back to the login prompt. The same happens when launching in Safe Mode.

I cannot for the life of me figure out why this is. I used the "Automatic" configuration when configuring the boot menu item and did not change the drive letters.

My bcd file is as follows:

Code:
Windows Boot Manager
--------------------
identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
device                  partition=C:
path                    \bootmgr
description             Windows Boot Manager
locale                  en-US
default                 {86deb094-a3f0-11e2-aea2-001fbc00b8c1}
displayorder            {86deb094-a3f0-11e2-aea2-001fbc00b8c1}
                        {2654100c-a341-11e2-a505-aaad26ecf913}
                        {86deb095-a3f0-11e2-aea2-001fbc00b8c1}
timeout                 30
displaybootmenu         Yes

Windows Boot Loader
-------------------
identifier              {86deb094-a3f0-11e2-aea2-001fbc00b8c1}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
recoverysequence        {26541003-a341-11e2-a505-aaad26ecf913}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {ad57b771-a3f2-11e2-95f0-806e6f6e6963}

Real-mode Boot Sector
---------------------
identifier              {2654100c-a341-11e2-a505-aaad26ecf913}
device                  partition=C:
path                    \NST\AutoNeoGrub0.mbr
description             MacOSX86

Real-mode Boot Sector
---------------------
identifier              {86deb095-a3f0-11e2-aea2-001fbc00b8c1}
device                  partition=C:
path                    \NST\ntldr
description             WinXP
As can be seen here, nowhere is there an F: drive mentioned in the config. In Win7, F: actually maps to my optical drive. I have no idea why EasyBCD would re-write the WinXP partition's MBR to point to F:.

My boot.ini on the Win7 partition is:

Code:
[boot loader]
timeout=15
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP on D:\" /fastdetect
My WinXP partition comes up as drive D: in Win7 but the disk and partition paths here are correct. On my HDD, first is my WinXP partition, followed by Win7, then Mac OS X.

I've found one other user on this forum who encountered the same problem and he ultimately ended up re-installing WinXP from scratch. In my mind, that is not really a feasible solution to the problem. I'd like to better understand what EasyBCD does when it writes to the MBR to try to fix it. Other searches online, not tied to dual-booting, also suggest re-installing or running XP's fixmbr.

If this can't be resolved within the EasyBCD configuration, I've also thought about zeroing the MBR completely and rebuilding it with MBRWork, although needless to say I am hesitant to do that.

I'm really stuck on this one. Any ideas are greatly appreciated!
 

Terry60

Knows where his towel is.
Staff member
#2
Why did you use the advanced options ?
Your MBR (there is not one per partition, just one at the start of the HDD) was perfectly OK.
That option is for repairing the MBR (reinstating the Vista/7 bootloader) if it's been usurped by a "foreign" boot loader (XP, Linux etc).
You don't have a problem with the MBR. It is doing the job of locating the partition with the boot files.
From there on the W7 bootmgr continues the boot process and it is correctly identifying and passing control to the XP NTLDR.
Everything that EasyBCD is involved with has functioned correctly to get you into XP.
The problem is within XP, not in the boot process.
(boot process here meaning stages 1 and 2 below. EasyBCD takes no part in the boot process itself, it's only active during a Windows session if you run it and change something. The things you change with it are limited to 1 and 2. You have reached stage 5, which is not affected by anything in EasyBCD)
1.After pressing the power button, the PC’s firmware initiates a Power-On Self Test (POST) and loads firmware settings. This pre-boot process ends when a valid system disk is detected.
2.Firmware reads the master boot record (MBR), and then starts Bootmgr.exe. Bootmgr.exe finds and starts the Windows loader (Winload.exe) on the Windows boot partition (W7) or NTLDR (XP)
3.Essential drivers required to start the Windows kernel are loaded and the kernel starts to run, loading into memory the system registry hive and additional drivers that are marked as BOOT_START.
4.The kernel passes control to the session manager process (Smss.exe) which initializes the system session, and loads and starts the devices and drivers that are not marked BOOT_START.
5.Winlogon.exe starts, the user logon screen appears, the service control manager starts services, and any Group Policy scripts are run. When the user logs in, Windows creates a session for that user.
6.Explorer.exe starts, the system creates the desktop window manager (DWM) process, which initializes the desktop and displays it.

Somehow your XP has become corrupted at a stage far later than anything to do with the MBR. Trying to fix the MBR with an XP version will merely stop the other systems from being able to boot
Multibooters, Vista Dual and Multibooting - A Guide to the Multiboot Process
Since you mention that XP seems confused about its own location, it's possible that an accidental partition letter change has occurred in it's registry
though that normally only occurs if you've cloned XP to a new location.
Goodells.Net :: Understanding MultiBooting

A "repair" installation of XP (rather than a full reinstall) is an option which luckily is available (since removed for Vista/7)
 
Last edited:
#3
Thanks very much for the detailed response Terry. This helped clear a lot of things up. I was able to resolve the issue by using regedit in Win7 to load my WinXP system hive and swapping the C: and F: drives in HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices.

Now that I can log in to WinXP, I see that the F: drive was actually my Win7 partition! I'm trying to think of how WinXP could have mixed up the two. I was reading somewhere that WinXP has a feature called Registry Repair and Recovery which is automatically activated when starting the OS. Initially upon using EasyBCD I had been manually specifying the drive letter (it only felt natural!) so perhaps WinXP automatically swapped the drives in the registry at that time? The question is, if it did do that, why wouldn't it swap them back later on? Who knows, at any rate, thanks for the help!
 

Terry60

Knows where his towel is.
Staff member
#4
No problem. Glad you're all straightened out now.