Vista HnS troubles

pj1115

Active Member
Hey

Given that Vista Hide 'n' Seek is in the pre-BETA stage, I wasn't expecting it to work perfectly.

After using it (from my XP [testing] partition), marking C: as Vista and E: as XP (XP is installed on what is assigned as L: from Vista, though) the bootloader showed fine when the PC booted, and the Vista option worked fine, but the XP option gave me load errors (Couldn't find \ntldr). I uninstalled HnS from Vista, rebooted, and alas my XP option in the bootloader is broken, with a similar error.

I tried a number of things from recovery console, but in the end it was just easier to format and go again.

Here is a breakdown of what I did:
- Install XP from disk
- Run this series of commands to add XP to the Vista bootloader, simply because EasyBCD for some reason doesn't play nice. This works fine. Took a backup of bootloader config.
- Installed .NET framework 2.0
- Run HnS, marking E: as XP and C: as Vista (as I said before, to my Vista OS, the XP partition is L:smile:
- Reboot. NeoGrub gives me Vista (works), and 'Windows XP [E:]' (doesn't work).
- Uninstall HnS from Vista, restore Vista bootloader and restore config.
- XP no longer boots :tongueout:

Here is the debug info from a working Vista bootloader, where XP boots just fine:
Code:
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}
                        {466f5a88-0af2-4f76-9038-095b170dc21c}
toolsdisplayorder       {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout                 5

Windows Boot Loader
-------------------
identifier              {e8709fb6-fa5f-11db-be4d-e219ece5282e}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows Vista
locale                  en-US
inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
osdevice                partition=C:
systemroot              \Windows
resumeobject            {e8709fb7-fa5f-11db-be4d-e219ece5282e}
nx                      OptOut

Windows Legacy OS Loader
------------------------
identifier              {466f5a88-0af2-4f76-9038-095b170dc21c}
device                  partition=C:
path                    \ntldr
description             Earlier Version of Windows

If that's all a bit much, sorry. I know it's in the pre-BETA stages, but I'd really like to get it working! Anyone have any ideas? :??
 
I fixed the XP not booting problem:
- Uninstall HnS
- Re-install bootloader & reset BCD storage for good measure
- Restore BCD backup
- Copy boot.ini, NTdetect.COM, NTLDR etc onto the XP partition [L:\]
XP booted fine.

After reading your post, I re-installed HnS (lol) to find out the exact error, and I got a different one :S

Picking XP from Neogrub gives me:
Code:
Booting from 'Windows XP [E:\]'
Will noot NTLDR from drive=0x80, Partition=0x4 (hidden sectors = 0x1a7c1e8a)

Error 13: Invalid device requested

Press any key to continue...

After picking Vista, I'm given the BCD menu. If I pick XP from there, I get:
Code:
Invalid BOOT.ini file
Booting from /Windows/
I get a black screen after that...
 
Correct me if I'm wrong Guru, but aren't there bound to be problems running HnS from XP instead of Vista ?
When it hides Vista and you try to boot XP, chances are you'll have hidden the boot files that XP needs to boot.
Surely, since HnS is modifying and surplanting Vista's bootloader, you should be running it from Vista !
 
Good thinking Terry. Hmm, given that my Vista partition is the active partition, XP will have installed it's boot fies onto there... If I hide the Vista partition from XP, how will XP be able to boot? That kind of defeats the object of HnS, but I'm probably missing something.

And I read a post from Guru elsewhere that said it didn't matter where you installed HnS from, as long as you uninstall it from Vista...

Arg.
 
I never tried running HnS from XP myself, pj, so I could have been wrong.

HnS is perfectly fine with Vista as the active partition. It'll take care of all the little details of how XP will boot...
 
Great -- give me a few minutes. I'm going to try installing it from Vista.

Addendum:

Nope, doesn't make a difference. What else coud it be?

By the way, I'm having problems with your forum. If I click 'Reply to thread', and I log in, I'm given an invalid thread error. I have to go back and cikc the button agan. Anybody else getting this?
 
Last edited:
Did all the traces of HnS from the XP version get deleted before the Vista version was run ?
And is the XP boot failure exactly the same as before ?

You have a perfectly functioning dual boot with XP and Vista both working fine, then you run HnS and XP won't boot ?

Guru,
Thinking about the HnS boot logic, it occurs to me that since I have XP as my boot partition, none of the boot information is ever hidden.
How does HnS work when Vista is the boot partition ? If you've been in XP and the Vista partition is hidden, where does it find menu.lst in order to unhide Vista to get back ?

It seems, if my synopsis above is correct, that PJ's system is hiding NTLDR etc.
It's never occurred to me before, how much more problematic it is for HnS if Vista is the boot disk. Where do you put everything?
I don't know because, of course, all my boot stuff is always unhidden no matter which system is booted.
 
Last edited:
HnS copies menu.lst to all drives.
NeoGrub is loaded prior to loading the OS (as far as NeoGrub is concerned, no drives are hidden). It then hides the drives, fakes the drive order, and calls the respective bootloader (bootmgr or ntldr).

It does so much complicated stuff that there's just sooooo much room for error. :frowning:
 
Did all the traces of HnS from the XP version get deleted before the Vista version was run ?
And is the XP boot failure exactly the same as before ?
I don't know -- I'll generate a file list for the roots of both partitions after installing. I've never worked with HnS before, so I'm a little absent minded when it comes to this area.

You have a perfectly functioning dual boot with XP and Vista both working fine, then you run HnS and XP won't boot ?
Yup, it works fine and dandy. After I install HnS, XP goes kerplunk.

HnS copies menu.lst to all drives.
That's odd -- there's a menu.lst on the Vista partition, but not on the XP drive.


Addendum:

Okay, I've got a list of everything in the roots of the partitions after uninstallation. Here we go...

VISTA PARTITION [C:\]

Code:
[File]        autoexec.bat
[File]        boot
[File]        boot.ini
[File]        BOOTMGR
[File]        config.sys
[File]        hiberfil.sys
[File]        IO.SYS
[File]        MSDOS.SYS
[File]        NTDETECT.COM
[File]        ntldr
[File]        ntuser.dat.LOG1
[File]        ntuser.dat.LOG2
[File]        ntuser.dat{5544745e-e0cc-11dc-bb3d-001cc484b937}.TM.blf
[File]        ntuser.dat{5544745e-e0cc-11dc-bb3d-001cc484b937}.TMContainer00000000000000000001.regtrans-ms
[File]        ntuser.dat{5544745e-e0cc-11dc-bb3d-001cc484b937}.TMContainer00000000000000000002.regtrans-ms
[File]        pagefile.sys

[Directory]    MSOCache
[Directory]    $RECYCLE.BIN
[Directory]    Documents and Settings
[Directory]    hp
[Directory]    Intel
[Directory]    Program Files
[Directory]    ProgramData
[Directory]    RECYCLER
[Directory]    swsetup
[Directory]    System Volume Information
[Directory]    system.sav
[Directory]    Users
[Directory]    windows


XP PARTITION
[E:\]
Code:
[File]        boot.ini
[File]        BOOTMGR
[File]        NTDETECT.COM
[File]        NTLDR
[File]        pagefile.sys

[Directory]        $RECYCLE.BIN
[Directory]        Config.Msi
[Directory]        Documents and Settings
[Directory]        Intel
[Directory]        Program Files
[Directory]        RECYCLER
[Directory]        System Volume Information
 
Last edited:
I have copies of NTDETECT.COM and NTLDR all over the show, but only one menu.lst, but of course if neogrub is all-seeing then there's no problem anyway until control is passed to one of the other bootloaders.
That also makes it strange that PJ had a NTLDR not found, when HnS puts them everywhere !
 
Perhaps there's something wrong with the configuration in menu.lst?

In NeoGrub, I tried modifying the commands for the Windows XP selection (nice feature to have -- inplace editing). I didn't really want to modify the hide parameters, as this is obviousy to hide Vista, but changing the second parameter of 'rootnoverify' was something I looked into. I couldn't set it past 4, as there aren't enough partitions, but nothing worked.

Here is the part of the generated menu.lst after a fresh HnS install:
Code:
title Microsoft Windows Vista
unhide (hd0,0)
find --set-root /BOOTMGR.HNS
makeactive
chainloader /BOOTMGR.HNS
boot

title Windows XP [E:\]
hide (hd0,0)
rootnoverify (hd0,4)
chainloader /ntldr
makeactive
boot
I saw in the NeoGrub wiki that the example used simply 'root' rather than 'rootnoverify' -- think I should try using something like this (taken from the example):
Code:
title         Windows XP    #This is our first entry - it's number 0
find --set-root    /NTLDR      #Search for NTLDR on all partitions. Once found, use that partition as root.
makeactive              #Make this the active partition
chainloader /NTLDR        #Run NTLDR, the Windows XP bootloader
Perhaps if that works, I'll add a hide command. What do you think?

Addendum:

Oh, and one more thing. On the Neosmart blog a while ago, it was said that Microsoft don't offer a workaround. They do now, it would seem, if not a bad one.

To keep Windows XP from deleting restore points of the volume in Windows Vista, add the following registry entry under the HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\Offline registry subkey in Windows XP:

Value name: \DosDevices\D:
Type: REG_DWORD
Value data: 1

Note If the HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\Offline registry subkey does not exist, you must manually create this registry subkey. Create this registry entry when you have installed Windows Vista on the "D" partition in Windows XP.

Effects of this workaround


After you restart Windows XP, you cannot access the volume that is created in Windows Vista from Windows XP. However, you can still access the volume that is created in Windows XP from Windows Vista. You must use Windows XP drive or an additional drive such as a USB thumb drive for data exchange.

Limitations of this workaround
This workaround only protects the volume in Windows Vista from being accessed or changed by Windows XP. If you have more volumes or if you want to add a volume from Windows XP to the system restore settings in Windows Vista, the system restore (Volume-Shadow-Data) on those volumes will be still overwritten. To avoid this problem, you must add those volumes to the HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\Offline subkey. If you add the Windows XP volume to that subkey or if you delete this volume drive letter, you cannot then start Windows XP.

You can use this workaround only when the restore points for Windows XP and for Windows Vista are mutually exclusive. The restore points are mutual exclusive when no restore points are common across the volume in Windows XP or the volume in Windows Vista. For example, consider the following scenario:•The C driver is a volume in Windows XP.•The D driver is a volume in Windows Vista.

In this scenario, the Windows Vista restore points are added on the E driver. Then, you must change the registry entry of the E driver under the HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\Offline" registry subkey to 1.

Also, a common volume can be used for data exchange between Windows XP and Windows Vista. However, restore points must not be defined on this common volume.

Support Status of this workaround
Adding this key can have unwanted side-effects to your installation. For example, applications that put data on this drive before available may fail. If there is a reporting problem reported to Microsoft, you will be asked to delete this value
I wonder -- would it be less hassle just to do this?
 
Last edited:
That MS workaround isn't new. It's one of the things I tried (It didn't work) before ending up at this site and using the original neogrub 2 stage boot, which was subsequently superseded by HnS.
You could try it (One other user on here once claimed it worked for him) but be prepared to lose your restore points when you try it. If you're currently booting XP without the hide, then you've got nothing to lose.
Is that (0,4) partition number correct for your XP system ?
 
Okay, I'll have a go at re-writing the NeoGrub configuration file, and tell you what the result is. I will also have a go at the Micro$oft workaround, but as you said, it's not a favourable solution -- otherwise there woud be no demand for something like HnS.

Nope, all my restore points are gone. Even the very first one after install, which always come in useful.

Is that (0,4) partition number correct for your XP system ?
I believe so, how would I check?
 
The working boot.ini -- found on my [C:] (Vista) partition
Code:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(4)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(4)\WINDOWS="Microsoft Windows XP Professional" /noexecute=AlwaysOff /fastdetect

I also noticed that all the boot stuff was on my Vista partition. BUT:
- A Boot.ini was generated on the XP partition after installing HnS. No boot.ini.hns.
This is it:
Code:
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(5)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(5)\WINDOWS="Vista Hide 'n Seek: Windows XP" /noexecute=optin /fastdetect
 
Last edited:
OK, so HnS is pointing to partition(5) instead of partition(4).

After installing HnS and changing that (5) to a (4), does everything work?
 
Sadly, no. I get the Invalid Device Requested error again. I changed every BOOT.INI and BOOT.INI.HNS I could find.

I also tried from command line:
Code:
hide (hd0,0)
find --set-root /ntldr [[I]'hd0,0' was returned. Because NTLDR is on 0,0. It should really be set to 0,4 no?[/I]]
makeactive
chainloader /ntldr
boot

Nothing...
 
Back
Top