One of the biggest problems that faces dual-booters is data corruption on many different fronts. While using proper dual-boot techniques and going by the book can avoid most forms of data corruption, there are some things that you can't just work around, especially if it's considered a "feature" by Microsoft... One such "feature" is that those dual-booting Windows XP and Windows Vista will find that every time they boot into XP, they'll lose all their Vista system restore points - because XP "intelligently" detects them as being corrupt XP system restore profiles. So much for painless dual-booting. Even Vista's "Complete Backup" feature is decimated by the very existence of XP on the same computer - and having them on separate hard drives doesn't help!
Unfortunately, there is no solution to this. Microsoft acknowledges the issue - but provides absolutely no hint, clue, or even whiff of a hotfix though it would seem that this isn't something difficult for them to patch. The advice has been to either not dual-boot at all, run XP in a virtual machine, or else encrypt the Vista hard drive - a feature that has more bugs than the rest of Vista put together. But don't worry, we have a (free and easy!) solution for you!
- If you don't already have it, download and install EasyBCD.
- Run EasyBCD and go to the "Add/Remove Entries" screen.
- Delete any and all "Windows XP" entries in the list you see. Simply select them, and press the delete button.
- Click the "NeoGrub" tab, and select "Install NeoGrub" from the screen.
- Once NeoGrub is installed, hit the "Configure NeoGrub" button.
- Notepad will open, and you'll be presented with the NeoGrub configuration file, called "menu.lst" NeoGrub provides a bunch of very nifty options that will help us hide the Vista drive from Windows XP, in a very safe, simple, and straight-forward manner. Copy and paste this code over the existing menu.lst file. Replace everything:
# NeoSmart NeoGrub Bootloader Configuration File # # This is the NeoGrub menu.lst file, and should be located at C:\\menu.lst # Please see the EasyBCD Documentation for information on how to create/modify entries # http://neosmart.net/wiki/display/EBCD default 0 timeout 0 title Boot XP - Hide Vista hide (hd0,1) # SET THIS TO THE VISTA DRIVE # Optionally repeat the above entry for all the Vista drives chainloader (hd0,0)/ntldr # SET THIS TO THE BOOT PARTITION boot # Optional section # If you include this section, you will see a second bootloader menu! title Boot XP - Unhide Vista unhide (hd0,1) # SET THIS TO THE VISTA DRIVE # Optionally repeat the above entry for all the Vista drives chainloader (hd0,0)/ntldr # SET THIS TO THE BOOT PARTITION boot
- Read "Drive Letters and Numbers" to figure out which (hdx,y) sequence you need to use. Hard drive and partition counts start at 0. You can see a full list of drives and partitions by going to the "Linux/BSD" tab of the "Add/Remove Entries" section in EasyBCD.
- Save it, and exit notepad.
- Optional: Go to the "Configure Boot" screen and rename the entry from "NeoGrub Bootloader" to "Windows XP" or another name of your choice.
- Exit EasyBCD & reboot to test.
It's pretty self-explanatory for the most part. Basically, the default option is the first which tells NeoGrub to hide the Vista partition (in the example above, Vista is installed to hd0,1). After it is hidden, we tell NeoGrub to open up the file "ntldr" on the boot drive (in the example above the boot drive is hd0,0). NTLDR is the Windows XP bootloader, which will present you with a list taken from boot.ini asking you which operating system you want to boot into.
If you want to be able to unhide the Vista partition, just run EasyBCD once more -> "Configure NeoGrub" and change the timeout to something other than zero. This will show give you two options, "Hide Vista" and "Unhide Vista" - whereupon you can choose to boot into XP without hiding the Vista partition so you can do whatever it is you feel like doing.
Now when you reboot your PC, the Vista BCD menu will give you two options: Windows Vista and Windows XP (or NeoGrub if you didn't rename it). Selecting Windows Vista will boot you right into Windows Vista, while choosing Windows XP will transfer control of the bootloader process to NeoGrub which will hide Vista's drive and then call up the boot.ini menu. If you only have one XP installed, it will boot right into it instead. If you have multiple XP installations, you'll be presented with a menu of installations to boot to, all of which will no longer see the Vista drive.
NB: If you have multiple Vista partitions, you will need to duplicate the "hide" and "unhide" lines to point to the other Vista partitions as well in order to hide them too.
All in all, EasyBCD makes it very easy to do just about anything via the UI, and if there's anything that looks to complex, simply opening up the NeoGrub menu.lst file in notepad and hacking away makes it possible.
Please do not under any circumstances post support requests in the comments below - they will go unanswered. If you have any questions or problems, post in the forums!

Copied and pasted menu.1st code over the existing menu.1st file. Adjusted drives and partitions as in bootloader. On reboot > “Boot XP – Hide Vista” everything proceeds as expected and XP installs normally. On rebooting to Vista (Business SP1) all restore points have vanished.
Boot Loader ; ;Warning: Boot.ini is used on Windows XP and earlier operating systems. ;Warning: Use BCDEDIT.exe to modify Windows Vista boot options. ; [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /NOEXECUTE=OPTIN /FASTDETECT
Settings in EasyBCD There are a total of 2 entries listed in the Vista Bootloader. Bootloader Timeout: 10 seconds. Default OS: Windows Vista
Entry #1 Name: Windows Vista BCD ID: {default} Drive: E:\ Bootloader Path: \Windows\system32\winload.exe Windows Directory: \Windows
Entry #2 Name: Windows XP BCD ID: {2c3daec5-ab75-11dd-9a62-000ea61b5a2f} Drive: C:\ Bootloader Path: \NST\NeoGrub.mbr
menu.1st (LST file in C:\NST\menu.1st along with NeoGrub MBR file)
NeoSmart NeoGrub Bootloader Configuration File
#
This is the NeoGrub menu.lst file, and should be located at C:\menu.lst
Please see the EasyBCD Documentation for information on how to create/modify entries
http://neosmart.net/wiki/display/EBCD
default 0 timeout 10 title Boot XP - Hide Vista hide (hd1,1) # SET THIS TO THE VISTA DRIVE
Optionally repeat the above entry for all the Vista drives
chainloader (hd0,0)/ntldr # SET THIS TO THE BOOT PARTITION
Detailed settings in EasyBCD (debug mode)
Windows Boot Manager
identifier {9dea862c-5cdd-4e70-acc1-f32b344d4795} device partition=C: description Windows Boot Manager locale en-US inherit {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e} default {e8709fb6-fa5f-11db-be4d-e219ece5282e} displayorder {e8709fb6-fa5f-11db-be4d-e219ece5282e} {2c3daec5-ab75-11dd-9a62-000ea61b5a2f} toolsdisplayorder {b2721d73-1db4-4c62-bf78-c548a880142d} timeout 10
Windows Boot Loader
identifier {e8709fb6-fa5f-11db-be4d-e219ece5282e} device partition=E: path \Windows\system32\winload.exe description Windows Vista locale en-US inherit {6efb52bf-1766-41db-a6b3-0ee5eff72bd7} osdevice partition=E: systemroot \Windows resumeobject {e8709fb7-fa5f-11db-be4d-e219ece5282e} nx OptOut
Real-mode Boot Sector
identifier {2c3daec5-ab75-11dd-9a62-000ea61b5a2f} device partition=C: path \NST\NeoGrub.mbr description Windows XP
Use Vista Hide 'n Seek instead of NeoGrub to accomplish this. It'll automate the entire procedure for you:
http://neosmart.net/forums/showthread.php?t=1341