Link to home
Start Free TrialLog in
Avatar of Scott Thompson
Scott ThompsonFlag for United States of America

asked on

Windows 8 & Windows 7 Dual Boot

Hello,

I have loaded Windows 8.1 on my system, which has worked and is working fine (with some issues probably related to Windows 8).  I installed Windows 7 on a secondary hard drive from Windows 8.1.  I changed the size of the System Partition so this was possible.

Windows 7 is installed and does work, but I updated my BIOS, and have had issues since then.  I got everything switched back to AHCI, and I managed to get the system to boot into Windows 8.1, but I cannot figure out how to add Windows 7 to the bootloader.  I have the entry in there, but it's not working.

Currently, in Windows 8.1, my Windows 7 drive is G:


Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume4
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  en-us
inherit                 {globalsettings}
default                 {current}
resumeobject            {03acaedc-3db1-11e3-8935-c0ba987bc00e}
displayorder            {current}
                        {ab96b8a0-3da9-11e3-8264-bc5ff474842e}
                        {ab96b8a1-3da9-11e3-8264-bc5ff474842e}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Windows 8.1
locale                  en-us
inherit                 {bootloadersettings}
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {03acaedc-3db1-11e3-8935-c0ba987bc00e}
nx                      OptIn
bootmenupolicy          Standard
detecthal               Yes

Windows Boot Loader
-------------------
identifier              {ab96b8a0-3da9-11e3-8264-bc5ff474842e}
device                  partition=C:
path                    \Windows\system32\winload.efi
description             DebugEntry
locale                  en-us
inherit                 {bootloadersettings}
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {03acaedc-3db1-11e3-8935-c0ba987bc00e}
nx                      OptIn
bootmenupolicy          Standard
detecthal               Yes

Windows Boot Loader
-------------------
identifier              {ab96b8a1-3da9-11e3-8264-bc5ff474842e}
device                  partition=G:
path                    \Windows\system32\boot\winload.exe
description             Windows 7
osdevice                partition=G:
systemroot              \Windows
nx                      OptIn


When it loads the bootloader, my Windows 7 option does show up, but it fails booting and just reboots.  It says it cannot find \Windows\system32\boot\winload.exe

Any suggestions?
ASKER CERTIFIED SOLUTION
Avatar of Gary Case
Gary Case
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Scott Thompson

ASKER

So from the looks of it, this Boot-It BM runs outside the Windows environment from a Live CD.  I will have to do some reading on it and have it as an option, but I would much rather prefer to have my Boot Loader control the OS's.  I have considered just going to the Boot Menu when I load my computer and selecting the other drive (Which my Windows 7 is on a separate drive than my Windows 8), but again, I would prefer to have an answer where the Boot Loader controls this function.

I guess I'm slightly stubborn on it because when I had Windows 7 installed it was working perfectly how I want it. :)  Then, of course, I updated the BIOS and messed everything up. :(
You say in Win8 that the Win7 drive is G:\, but are you sure that's how it appears to the bootloader?  If you boot with a repair disk (or choose Advanced Startup under Win8) and get to a command prompt, you can run diskpart to gather information.  Try list volume to see if the drive letter reported for your Win7 partition is G:.  If not make note of the correct volume number, you can now exit from diskpart (type exit).  Then run bcdedit to see the various entries.  From what you've already posted you would need to edit the device and osdevice settings for the Win7 entry, substituting the correct volume number.
bcdedit /set {ab96b8a1-3da9-11e3-8264-bc5ff474842e} device partition=\Device\HarddiskVolume4
bcdedit /set {ab96b8a1-3da9-11e3-8264-bc5ff474842e} osdevice partition=\Device\HarddiskVolume4

Open in new window


If those entries are pointed correctly, then there's nothing wrong with the boot loader.  The problem would lie somewhere with your Win7 partition, whether with drivers or something else.
Thank you for the suggestions footech.

I'm uploading pictures to give you a better idea.  Perhaps I have something written wrong.  I'm also uploading the latest BCDedit because one picture is a little out of date, but it will show you essentially the message I'm getting.
User generated imageUser generated imageBcdedit2.txt
Here is my latest pictures for you with the device and osdevice set how you recommended.

User generated imageUser generated image
Boot-It doesn't run from a Live CD ... it installs on the disk; and the system then boots directly to Boot-It, which lets you choose the OS to boot.    I've used it for years ... wouldn't think of setting up a multi-boot system without it.

You can completely isolate each boot item from the others (or not, as you choose);  and every OS has its own "C:" partition -- so no matter which OS you boot it's on the C: drive.    I have one "common" partition that I assign to every OS ... so no matter which OS I boot, C: is the system drive, and D: is the data drive => and D: is the same partition no matter which OS boots (so my data's always available).    You can set this up anyway you want [I actually also have an E: partition for each OS that is for data I don't want shared].

It's easier to set up than it sounds ... but it IS a bit "geeky" the first time you use it.    Here's an example of how the boot menu looks from one of my systems (the one I use for Windows 8).    Note that all 4 of these OS's are on the same physical hard drive (there's no reason to use different drives).

User generated image
If I use the Boot-It Menu, does it change the Bootloader can I just attempt to boot it when installed?  I don't want to write over what I currently have.  Also, I suppose, since I repair computers for a living, if someone else comes in wanting a dual-boot, I want to know how to do it the 'Windows' way. :)
"... I want to know how to do it the 'Windows' way. :)  "  ==>  Then you probably should just stay with the Windows loader => I can't really help with that, as I haven't done a multi-boot system that way in many years.    I don't like the different drive letters; different disks; etc. -- I've got several systems that boot to multiple OS's, and can't imagine using anything but Boot-It.

I do know that the "Windows way" always works best if you install the OS's in ascending order (i.e. you should install the older version first; then the next; etc.).    But I also know that this can result in some conflicts; and you have different drive letters; and one version can "mess" with the other's files under some circumstances; etc.    That's why I long ago quite doing that.
Okay, so I will keep trying to repair the boot loader.  I just can't figure out what I did wrong.  Maybe if someone gave me step-by-step of how to manually add a boot entry, I could try a new entry and get it to work?
My apologies.  I gave you incorrect advice regarding the volume number.  Assuming all your partitions are primary, the numbers would be as in the below screenshot.User generated image
As an alternative, you could try running bootrec /scanos but it's been a long time since I've actually used that for a repair.
footech,

I attempted to set device as partition=\Device\HarddiskVolume3, but when I do it, it rename's it Partition=G:.  Here's a picture of my partitions from Windows 8.  And no, it did not work... :(
User generated image
That's fine and normal.  It's possible to set the path using something like
bcdedit /set {ab96b8a1-3da9-11e3-8264-bc5ff474842e} device partition=G:
but sometimes drive letters aren't the same in a repair environment so I go for the number which doesn't vary.

As I mentioned, if those entries are correct, then there's nothing wrong with the bootloader, at least nothing that I can see.  If you like you can try running bootrec /scanos or bootrec /rebuildbcd to see if it finds anything that I might have missed.  Sounds to me like some setting in BIOS was changed that is incompatible with your Win7 install (perhaps UEFI or SATA disk mode), which I wouldn't be able to help you with beyond suggestion that you try different settings to see if you can find the correct one.
I checked the SYSTEM file for Windows 7 and verified the settings for AHCI.  I had to change PCIIDE to 3, but it still did not help.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\pciide 3

Are my current settings.

I'm thinking of just wiping the Windows 7 and reloading it, but then I'll have old bootloader (Windows 7 version) instead of the new one.  I do know that when I flashed the BIOS, the Windows 7 did boot with IDE.  When I switched everything to AHCI (which is what is was supposed to be and was before I flashed the BIOS), that's when I had issues booting.
Yeah, if you reinstall Win7 you'll likely have to do a startup repair for Win8.
Sorry I can't think of anything else to suggest.
Okay, I've given up on trying to repair the bootloader, so I have formatted the Windows 7 partition.  Now I'm just trying to re-install it from Windows 8 with a disc.  When I run setup.exe, Windows copies temporary files (or tries) and then fails with the following error message.
User generated image
I can't figure out how to get around this...
Did you FORMAT the Windows 7 partition, or DELETE it?

If you just formatted it, and are trying to install on Disk 0 (per your picture above); then there is no unallocated space for the installer to use for storing its temporary files.

If that's not the issue, post a picture of your current disk structure that you're trying to install to.
Here's a current view for you garycase.  (I already tried formatting first, then deleting. :)  Then, rebooted and tried again)
User generated image
Physically disconnect all of the disks except the one you want to install to (presumably Disk0) ... then try it.   I suspect it's "seeing" Disk1 as the target for its temp files; and there's simply not enough space.
Could I repartition Disk 1 so it has enough space and then install it on Disk 0? I won't be back to work to try it until tomorrow
That may work, but it's really not clear exactly which disk the installer is attempting to save files on -- I suspect it's disk1 => probably because it's the first one enumerated during the boot.    The easiest way to be CERTAIN that it's installing where you want is to simply unplug the SATA data cable from ALL disks except the one you want it installed on; then install; and then shut down and reconnect the data cables.
However, I need disk 1 to boot Windows 8, and disk 0 is where I want to install Windows 7.  Are you saying I just need to boot off the disc with just disk 0 hooked up?  If I do that, then I'm not sure how I will get it to boot Windows 8 and Windows 7 to both boot properly.
In general, if you're using Windows' boot loader, you have to load the OS's in "oldest first" order.    So yes, I'd install Windows 7 to disk0 (with no other disk connected);  THEN hook up the other disks; and then install Windows 8 to disk1 and "tell" it to dual boot.

It's been MANY years since I've used the "Windows way" to do this (as you want to do), so I don't know exactly what the interface will be with Windows' 8's installer to achieve that.   As I noted earlier, I'd simply use Boot-It to manage this, which makes things a lot simpler (and it's just as easy whether you have 2 OS's or 10).
Okay, so I unhooked all the other drives and installed Windows 7 where I wanted to.  Now, my Windows 7 hard drive sees both and will boot to both.  However, my Windows 8 bootloader does not see both.  I keep trying to create a new GUID to add Windows 7, but it doesn't!

I type in bcdedit /create /d "Windows 7" /application osloader

It comes back successful, but with the same GUID as the Windows 8, so it doesn't create it!  It comes back with this, " {b332e581-41b3-11e3-b4d4-803c42affcd3} "


Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume4
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  en-us
inherit                 {globalsettings}
default                 {current}
resumeobject            {b332e581-41b3-11e3-b4d4-803c42affcd3}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Windows 8.1
locale                  en-us
inherit                 {bootloadersettings}
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {b332e581-41b3-11e3-b4d4-803c42affcd3}
nx                      OptIn
bootmenupolicy          Standard
detecthal               Yes
I'm really wondering if you've got something going with UEFI vs. BIOS, and GPT vs. MBR.  I haven't worked with a system that is set up as UEFI yet.  My understanding is that if your OS is installed on a GPT partition, then the sytem partition can't be MBR, and so forth.  I noticed in some of your BCD entries that it refers to winload.efi, while others are for winload.exe.  Everything I have is using BIOS and MBR, so they all reference winload.exe.  The winload.efi indicates to me that the system was or is using UEFI and/or GPT partitions when that OS was working.
I have it set up to be able to choose the hard drive and have it boot the Windows I want.  Not the answer I was looking for, but it will work.  Thanks for you help!