Two Windows 8 installations on separate hard drives - failure to boot

07
2014-07
  • rollingBalls

    My motherboard supports UEFI and I have 2 disks on it. I did the following steps:

    a) Installed Windows 8 via USB on hdd1 (Let 's call this WinA). Worked fine, booted fine multiple times.

    b) Installed Windows8 via USB on hdd 2 (Let 's call this WinB). Worked fine, booted fine multiple times.

    Now, I went to the BIOS and disabled the SATA port* for hdd 2 and tried to boot from hdd 1. WinA does not boot and there is no UEFI-prefixed boot option for it. :o I 've never dealt with Windows 8 before (coming from the mac world), so I am a bit confused as to why is this happening.

    My idea is to re-install WinA, this time having hdd 2 disabled during the installation, but I fear WinB may become unbootable - and to set up all my programs there again will be a pain. So, what is your opinion? What should I do to have bothWindows 8 bootable without fear of re-installing WinB and WinA to be able to boot with hdd 2 disabled?

    1* To avoid WinA having access to the contents of WinB. There is a reasonable ...reason for that in case you 're wondering (guests with physical access who can't open the box).

  • Answers
  • Rod Smith

    First, you don't have a BIOS; you have an EFI (technically a UEFI, which is just EFI 2.x; I use "EFI" generically to refer to either). I know that most people, and even manufacturers, refer to EFIs as BIOSes, but it's been my experience that this practice just causes confusion, because people expect their EFIs to act like BIOSes -- but they don't. As explained by Adam Williamson, EFIs boot in a fundamentally different way from BIOSes, so you've really got to leave your BIOS assumptions at the door.

    Second, EFIs rely on both boot loaders stored on the hard disk and NVRAM entries that identify and prioritize those boot loaders. This has its advantages, but it also gives the EFI boot process two possible points of failure. Furthermore, some EFIs "helpfully" delete "invalid" boot entries from their NVRAMs. I suspect that this is the root of your problem -- when you disconnected WinA, your EFI may have deleted the relevant boot entries for it from NVRAM, thus making it impossible for you to boot from WinA when you reconnected it.

    There are a number of ways around this problem. One way to quickly check it and work around it at least temporarily is to use my rEFInd boot manager. You can either download and prepare the USB flash drive or CD-R version; or (if you're willing to risk creating new problems) install it to your hard disk. Either way, when you reboot into rEFInd, it should present you with boot options for both versions of Windows. If this works and you want to use rEFInd permanently, you can install it to the hard disk. Alternatively, you could use bcfg in an EFI shell or efibootmgr in a Linux emergency disk to add copies of WinA's EFI\Microsoft\Boot\bootmgfw.efi file back to the computer's NVRAM. (See here for information on bcfg and here for efibootmgr.) Alternatively, the Windows boot manager should be able to manage both installations, but I don't know offhand how to get it to recognize that both are present.

  • snayob

    You can install Windows 8 only one time unless you have two licenses.

    For test purposes:

    When installing Windows to first disk the other disk must not be attached to computer.

    Then you swap - insert second disk, detach first disk and install again.

    So you have two completely independent Windows 8 installations on two disks.

    After you decide which disk is better (faster) you put it as first disk in your system. Attach also the second disk. You can select at firmware level which disk to boot.

    You can also add a boot loader entry for second disk in BCD (Boot Configuration Data) of first disk so you would get a boot menu with two choices.

    Adding a boot loader entry can be achieved using bcdedit.exe utility or using GUI tool Visual BCD Editor

  • Muhammad Fahad Baig

    Look, as you installed Windows 8 on HDD 2, the bootloader configuration and files were deleted from HDD 1 and installed to HDD 2. Therefore, your HDD 1 doesn't have any boot loader files and your UEFI just cant detect any instances of Windows 8.

    For your second question, proceed on installing Windows 8 on HDD 1, your HDD 2 will be still bootable!


  • Related Question

    Dual boot Windows 8 and Ubuntu?
  • askvictor

    I've installed Windows 8 on a machine (Lenovo X220 laptop) with Ubuntu 12.10 already installed on another disk.

    I am guessing that Windows 8 has convinced the laptop to switch to UEFI boot (rather than the BIOS boot that was there previously) as the Lenovo splash screen on startup now no longer has the options to interrupt the boot process (for example, to choose the boot drive). Interestingly, I can interrupt the boot process and drop into the BIOS or choose a different boot drive if I restart the machine, but not from a cold boot.

    Previously I had Windows 7 on one drive (mSATA SSD; listed in Linux as /dev/sdb; first preference in the BIOS for booting) and Ubuntu on the other drive (SATA HDD listed in Linux as /dev/sda). I had the Windows bootloader installed on sdb, and GRUB installed on sda, and I would choose which OS to boot by choosing the boot drive in the BIOS rather than through a bootloader menu. I can still do this (to load Linux) if I manage to get into the BIOS boot menu - GRUB is booting via the BIOS, but Windows is booting via UEFI.

    So I would ultimately like to have both Linux and Windows boot by UEFI and have the option of choosing which one through a menu of some sort. How can I retrospectively get Linux booting from UEFI, and how would I get a menu happening?


  • Related Answers
  • Rod Smith

    Without more information, any answer will be guesswork. I recommend you boot from an emergency Linux disc, run Boot Info Script, and post a link to the RESULTS.txt file that it produces. This will provide information about your partition layout and boot loader configuration.

    Contrary to what TheX wrote, Ubuntu most emphatically does support (U)EFI booting. TheX is confusing UEFI with one of its specific features, Secure Boot, which is intended to improve security. Ubuntu has supported (U)EFI for quite a while, and they're working on seamlessly booting on systems with Secure Boot enabled. They may even have incorporated such support in Ubuntu 12.10, but I'm not positive of that.


    Edit:

    Your system is definitely not booting either OS in EFI mode. Both your hard disks use the MBR partition table, and Windows ties the partition table type to the firmware type, with MBR being superglued to a BIOS-mode boot. You also have no EFI System Partition (ESP) or FAT partition, which are required to boot UEFI-based PCs. Thus, your suspicions about a mixed BIOS-mode/EFI-mode boot are misplaced.

    My hunch is that you've accidentally changed a firmware setting -- perhaps you've enabled a "fast boot" option or changed the splash screen. This will affect how the BIOS goes through its initial tests and displays, and could make it harder to access its settings or activate its boot manager. I recommend you go into the BIOS settings and look for such options. I'm not familiar with your specific model so I can't give more specific advice on this score.

    Once you've booted Ubuntu, you should be able to get it to detect your Windows configuration and add it to the GRUB menu by doing a grub-mkconfig -o /boot/grub/grub.cfg. If Windows still doesn't appear in the GRUB menu, you may need to create a manual entry for it in /etc/grub.d/40_custom; or you can use your BIOS options to select the boot device, as you've done in the past, if you can slow it down to the point that getting to those options can be done reliably.

  • TheX

    What you needed to do was install Windows first, then Ubuntu. But there is a way to fix it.

    Essentially you are going to boot into your live disk (USB/DVD) and restore GRUB (Linux boot loader)

    This is a fairly simple process, and you can find exact directions here.

    This should get it done:

    Making GRUB 2 detect Windows Installs:

    Proceed to boot into your Linux environment. Open a terminal and type sudo update-grub (enter your root password when prompted) If all went well, grub should have updated it's menu entries to reflect what it detected. Including existing Windows partitions.

  • Peter Mortensen

    You simply download EasyBCD; it's free software. Install it on Windows, run it, add a new entry and name it as whatever you want. Click on the bootloader option and change it into GRUB 2, restart your system. You will get a beautiful bootloader with installed operating systems...