Jump to content

Vista Registry Protection - Multibooting Windows in a single partition


Recommended Posts

Posted (edited)

Anyone know how to change the protected registry entries within Vista? I need to change the systemroot references to configure multiboot on a single partition.

If you don't realize what I am talking about, try to change the %systemroot% registry type settings from c:\windows... to something else inside Vista. Even with UAP/UAC disabled the changes don't stick. My attempts with local registry editors (with administrative privileges) and remote registry editors have been unsuccessful.

Yes, I realize this is not intended. No, I can't use multiple partitions. I use an Macbook Pro (EFI notebook) and need the other three partitions for EFI, MacOS and Linux.

The trick to this is to install any XP version first. Then install another XP copy from windows so that you can change the system path in the advanced options (c:\newpath). Too bad vista doesn't allow for changing it as easily. Now you have a good (non c:\windows) install but you need to move the c:\program files and c:\documents and settings. Boot into a PE environment like Bart's PE and copy the c:\program files and c:\documents and settings to another place. You can put them in c:\program files\XP32\ or c:\newpath\program files\ . Do the same for documents and settings. Then boot into c:\newpath and modify the registry entries to match the new location. Use a search and replace registry utility. (If you are really clever you can create these folders in the right place from an install script).

You can do this as many times, for as many XP32 or XP64 installs as you like. After the first you don't need to boot into PE, because each previous directory will work. Just boot into another working environment, copy the documents and settings, and copy program files and then reboot into the most recent install and rename the registry settings from within the new install. You will want to change the boot.ini names so you can keep track of which is which.

Unfortunately Vista has no advanced setting to install in a location other than c:\windows. There are no variables to change the default path or system root when performing an automated setup or script. And if you were to try to change the registry settings for the systemroot from c:\windows, they revert right back. Supposedly you can change the windows image from Vista. My first attempts to do this with Microsoft's deployment tools did not result in an installable build, possibly because the registry entries are not correct or because the BCD did not point to the right directory to start.

If you only want one version of Vista, you could live with putting it in the c:\windows directory and your previously installed XP instances will still work. You just need to reference them from the new BCD as legacy. But if you want both Vista x64 and Vista x32 directories in the partition, or if you need multiple versions of one, or if you can't use c:\windows as your default systemroot directory, you need another solution.

Ideas?

Edited by kkrull

Posted

First, as a friendly warning; You really don't want to do what you propose with installing Vista in the same partition as another OS. Yeah, I know you have a way to do it, yes, I know you probably can point to others who say they did it...but you really don't want to do it. Why? because at some point Vista is going to decide its the boss and take over, as in all your other OS's will not be bootable and you will loose data and information, and you will at some point start to experience problems and nightmares (for which you will be seeking help for), and your frustration level will rise, and you will be blaming Vista for the problem when in reality the problems are because Vista was installed in a configuartion that is not supported, period. Anyway...

Concerning the registry changes you want to make, you can't change the protected entries...but...what you can possibly do is duplicate those entries to the user virtual registry sections and change them there.

Posted (edited)
you really don't want to do it.

I've already done it. I am looking for a way to make it easier.

at some point Vista is going to decide its the boss and take over, as in all your other OS's will not be bootable

I am not sure how this would happen. Windows doesn't write over non-system folders and the BCD still points to them.

you will at some point start to experience problems and nightmares (for which you will be seeking help for), and your frustration level will rise, and you will be blaming Vista for the problem

I'm not really the passive aggressive type and I sleep pretty heavy.

Concerning the registry changes you want to make, you can't change the protected entries...but...what you can possibly do is duplicate those entries to the user virtual registry sections and change them there.

This is good information, but I still need the underlying registry, not the virtual registry. Looks like not a lot is known about the way Vista registry changes were implemented http://www.ignitebyte.net/khojitech/archives/41. Any more ideas?

Edited by kkrull
Posted (edited)

I think your going to have problems. But...OK then. I did the same thing during the beta and everything seemed fine for a while then some subtle changes started to occur leading to major crashes in the other OS's on the partition, the short version is that Vista wants to own the partition and its not really happy unless it does and each time you boot into Vista on the same partition with other OS's its going to want to control the partition and eventually its going to leave its mark. Your right, it doesn't over-write non-system folders but Vista does detect older versions of similar files like .dll's and wants to replace them with Vista versions.

BTW, I wouldn't put a lot of faith in that article right now, I spotted at least two major incorrect assumption that was made where it says "What is really interesting is what happens if a program like this then tries to write to the Registry: Nothing!" and "The only problem is, the values haven’t been written to the Registry", thats not exactly correct, a program like that can write to the registry. A good example is the program DVDSanta v4, this writes to the registry and causes conflicts with the Vista DVDMaker making Vista think that DEP needs to block DVD Maker from starting up and this can only happen if DVDSanta actually wrote to the registry, thankfully DVDSanta has a decent un-install routine that also removes the conflicting registry entries and lets DVD Maker return to normal operation.

If your really intent on editing the actual registry you can do the actual hives and merge your changes thru a reg file from a WinPE 2.0 command prompt after booting on the WinPE 2.0 CD.

Edited by Spooky
Posted (edited)
Vista does detect older versions of similar files like .dll's and wants to replace them with Vista versions.

It would cut this project short if Vista got into other system folders. I am surprised it would restrict its damage to the same drive letter though, so I would think it would mess up multiple partition booting as well.

If your really intent on editing the actual registry you can do the actual hives and merge your changes thru a reg file from a WinPE 2.0 command prompt after booting on the WinPE 2.0 CD.

I will try that again. I have multiple working windows installs and the other installs can see my Vista hives. Unfortunately, when I try to edit those hives I have run into trouble getting a search and replace utility to work on them. I can't do them all by hand.

On a related note, have you ever used the WAIK or BDD? I would think that if you modify the WIM entry and %systemroot% references in the Vista install, you would be almost there. Maybe there is a default BCD entry on the install that could be modified so the install would boot to the right place the first time.

Edited by kkrull
Posted (edited)

Sure, I use the WAIK all the time, only used the BDD a few times tho but i'll be using it more come the middle of February. What you could do is do your install, sysprep your install, then produce your own install.wim and replace the one on the install DVD with your own.

"Maybe there is a deault BCD enty on the install that could be modified so the install would boot to the right place the first time."

You mean into the install directory you want it to boot into? Its always going to boot to the C:\ drive because any drive Vista is installed on becomes the C drive for it.

"....so I would think it would mess up multiple partition booting as well."

Vista doesn't care about other protecting other partitions, it only seeks protection for the partition its on. This makes sense too (in a fuzzy way) because one of the things Vista seeks to achieve is stability and code integrity, so it only makes sense that it seeks to only protect the area in which it lives.

Vista does detect older versions of similar files like .dll's and wants to replace them with Vista versions.

It would cut this project short if Vista got into other system folders. I am surprised it would restrict its damage to the same drive letter though, so I would think it would mess up multiple partition booting as well.

If your really intent on editing the actual registry you can do the actual hives and merge your changes thru a reg file from a WinPE 2.0 command prompt after booting on the WinPE 2.0 CD.

I will try that again. I have multiple working windows installs and the other installs can see my Vista hives. Unfortunately, when I try to edit those hives I have run into trouble getting a search and replace utility to work on them. I can't do them all by hand.

On a related note, have you ever used the WAIK or BDD? I would think that if you modify the WIM entry and %systemroot% references in the Vista install, you would be almost there. Maybe there is a deault BCD enty on the install that could be modified so the install would boot to the right place the first time.

Edited by Spooky
Posted
What you could do is do your install, sysprep your install, then produce your own install.wim and replace the one on the install DVD with your own.

I tried this with my limited sysprep knowledge and built and installer that wouldn't finish. I originally thought that it was because of the install BCD entry (mentioned below) but I can think of at least one other issue. I will try it again.

Its always going to boot to the C:\ drive because any drive Vista is installed on becomes the C drive for it.

Yes but the default BCD entry is for c:\windows, so that has to be changed too.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...