Hmm, I found myself in a situation where my system booted fine under Boot Camp, but under Parallels it indicated that my ntoskrnl.exe file was corrupt.
So, I booted from a WinXP CD-ROM, and opened the recovery console. (EDIT: to clarify, I did this within the virtual machine.) I copied ntkopvs_.exe on top of the ntoskrnl.exe that was there, and rebooted---and this time it worked. I shut down cleanly, and rebooted without incident again. I'm about to shut down everything and see if I can still boot with BootCamp cleanly---if I don't post again, you can assume I did. (EDIT: Yes, it works.)
I make no claims that this will work for everyone, but it worked for me. A similar fix might work for the hal.dll file.
It seems to me that Parallels would do well to have an option to "reinstate" their booting system in some advanced options somewhere, something that would re-copy their special versions of hal.dll and ntoskrnl.exe somewhere.
The honest truth for me, however, is that I'm probably giving up on BootCamp. I just don't need it; I only used it because it was cool. This practice of swapping out key system files, however, sounds like a risky practice and I really don't think the risk is worth it in my case. Obviously Parallels doesn't mind my decision at all But I know other people depend on being able to use BootCamp sometimes, so they shouldn't get complacent about this.
Last edited: Jun 19, 2007