Dual boot won't go back to WinXP

I just installed OpenSUSE 11.1 on my Compaq Armada E500 laptop (850 mhz PIII, 320 mb RAM, 30 GB HD) as a dual boot with WinXP and while OpenSUSE is running fine except for the wireless network adapter, I can’t seem to boot back into WinXP. It just freezes on the WinXP splash screen.

Can this be fixed? If so, what do I need to do? or is WinXP basically hosed at this point?


Please describe exactly what you mean by “freezes on the WinXP splash screen”? And can you access your Windows partition(s) from openSUSE (it would probably be mounted under /windows)?

The black startup screen with the WindowsXP logo comes up and the little blue progress bar below the logo goes across a couple of times and then freezes. When that happens, the only thing I can do is unplug the power cord and eject the battery.

I just tried it again and this time Windows went into a chkdsk scan mode and then successfully rebooted into WinXp, so maybe it’s cured now.

Windows would have run chkdsk because of your having abruptly terminated it before (specifically, because the file system was not unmounted cleanly). If this happens again, use some of the basic Windows repair steps like booting into Windows failsafe (usually the F8 key) and selecting “last known good”. It’s possible this was coincidental with your openSUSE installation, i.e., one has nothing to do with another. Or its possible (but rare) that if openSUSE physically modified or moved a Windows partition that there could be a problem, but nearly always when that happens the symptoms are different. You should go to Windows Event Viewer (IIRC it’s on your Programs menu under Accessories\System Tools) and look for any errors (probably under the System tab, they will have a red flag) - that may tell you what the problem was. You should do this now before rebooting again, as it would be strongly advisable to correct any such while XP is still running.

Yes, OpenSUSE did modify the Windows partition as part of the installation process. Prior to installation, the hard disk was a single Windows partition, but OpenSUSE shrank the Windows partition to make a partition for itself.

Since your previous post, I booted into Windows a couple of times with no problems, but when I booted back into OpenSUSE and then tried to reboot into Windows, the freeze-up returned. After doing the pull-the-battery trick (there’s got to be a better way), it started up normally and booted into Windows without doing a chkdsk scan.

The Event Viewer shows a pair of errors each time it’s happened. It shows acpi under the source with event numbers 4 and 5. Looking back through the log, there are several instances of this pair of errors, going back well before I attempted to load OpenSUSE or any other Linux onto the computer.

Did you do a defrag in XP before installing SUSE? As SUSE shrinks your XP partition. This can result in file system corruption. XP is quite good at repairing this usually. But as a point of interest - how much space is left in XP now?

I did not defrag before installing OpenSUSE. Shoulda thought of that. Fortunately, I was doing the OpenSUSE install on top of a relatively fresh install of WinXP. At the moment, there’s 7.78GB of free disk space in the Windows partition and a similar amount in the OpenSUSE partition. The 30GB hard disk is roughly half full with both operating systems.

Another little update:

After my last post, I went ahead and ran (belatedly, I admit) a Windows defrag and then booted back into OpenSUSE. Almost immediately, I was met with notification of a number of pending updates, which I installed. I then messed around for a while doing some stuff in OpenSUSE, then shut the machine down, turned it off, turned it back on, and booted into Windows for the first time without hanging and without having to pull the battery! I don’t know whether it was the defrag, the OpenSUSE updates, or shutting the machine off instead of doing a warm “restart”, but it’s progress.

Now, if I could just get that pesky wireless card to work…

If you are getting acpi errors in the Windows log, I suggest checking whether there is an update for your bios. Usually such errors are the result of the OS finding something amiss in the acpi tables, which the bios produces - and there are definitely acpi issues with a lot of bios’s. What the OS will do is use an alternate method of getting the hardware data it needs. And, IIRC, yes, with this type of problem you may seen a difference between a warm start and a cold start.

I’ll look into BIOS updates. That seems like it would be the logical culprit as I have been able to consistently reproduce the problem by attempting to warm boot from OpenSUSE to WinXP, while cold booting consistently avoids the problem. FWIW, there’s no problem warm booting from WinXP to OpenSUSE.

You don’t have the problem going XP -> SuSE because Linux uses its own different method of handling this condition; it isn’t looking at the memory map which XP wrote (i.e., its workaround). Apparently the reverse is not the case. Both OS’s are doing a workaround, though - you know this because of the Windows error messages prior to installing Linux.