Install Windows 7 on second hard drive after Ubuntu 12.04... with UEFI

9,878

Solution 1

I don't have a UEFI machine but what seemed to always work for me was removing the hard drives that I didn't want the installation to write to during the install of the OS. In your case, I would remove the SSD and have Windows install to the 1TB drive. The 100MB system reserved partition will be on the HDD instead.

To dual boot, replace the SSD, set it to be the active drive then setup your grub files accordingly.

Solution 2

It is normal for modern windows installers to put a 100MB system reserved boot partition on the first drive enumerated by the startup firmware (BIOS or UEFI).

Because I have had windows update automagically "fix" my grub installations I generally use the windows boot loader system on my dual boot machines. According to the docs I have been reading the overall procedure is the same BIOS or UEFI.

  1. Install windows normally.
  2. Install linux being careful to install the booting stuff into a partition and not the MBR (BIOS) or system partition (UEFI).
  3. While still running off the linux installation CD use dd to capture the first 1MB of the linux boot parition and write it to a file that will be readable by your windows installation.
  4. Boot windows and use bcdedit to add a boot record for that 1MB file you created in step 3.

Edit: Here are instruction from somebody who has actually done it on a UEFI machine.

Share:
9,878

Related videos on Youtube

Jeff Hillman
Author by

Jeff Hillman

I am a software developer working in Utah.

Updated on September 18, 2022

Comments

  • Jeff Hillman
    Jeff Hillman over 1 year

    What I would like is to have Ubuntu installed on my 60GB SSD and Windows 7 installed on my 1TB HDD in a 100GB partition, leaving the remaining 900GB as a NTFS data partition that I could access from Ubuntu or Windows.

    My PC boots in UEFI mode, which seems to throw a wrench in most of the currently available guides for setting up a dual boot situation with Windows and Ubuntu.

    My first attempt at this was to install Windows first. I pointed the installation at the second hard drive and let it go. Everything went fine, and I could boot into Windows just like you would expect. When I booted into the Ubuntu live CD, Windows was detected, and I chose the option where you can look at the current partitions and set them up how you would like for the Ubuntu installation. I discovered here that Windows had put a 100MB partition on the SSD, which is the "system reserved" boot partition, and the actual Windows OS on the HDD. I was hopeful that the Ubuntu installer would be smart enough to deal with this, and went ahead and installed Ubuntu the SSD. The installation completed successfully, but I couldn't boot into Ubuntu, no matter what options I played with in the boot settings.

    I tried this process again, this time disconnecting the SSD before booting the Windows installation DVD. This left the SSD untouched, but I still couldn't boot into Ubuntu after a clean installation to it.

    Having Ubuntu running properly is my first priority, so I opted to get it installed and running first, which is where I am now.

    The 60GB SSD currently holds a booting, working Ubuntu 12.04 installation. In GParted, it is /dev/sda, and its partitions look like this:

    Partition  File System  Mount Point  Size
    /dev/sda1  fat32        /boot/efi    100MB
    /dev/sda2  ext4         /            48GB
    /dev/sda3  linux-swap                8GB
    

    I haven't really touched the 1TB HDD (/dev/sdb), so it looks like this:

    Partition  File System  Size
    /dev/sdb1  ntfs         932GB
    

    My concern is if I now try to install Windows to the HDD, will it overwrite something on the SSD which will orphan my Ubuntu installation? If so, is that something that boot-repair or some other tool/process can resolve?

    If I disconnect the SSD and install Windows to the HDD, will the SSD still be recognized as a bootable device when I reconnect it? I really don't understand how UEFI works, and I don't know if disconnecting and reconnecting drives is safe.

    What is the safest way to proceed given my current setup?

    Update: rschuler provided a couple of good options, but I would like to be confident that I am not going to lose my current Ubuntu installation when I install Windows. I'm putting up a bounty to see what else is out there.

  • Jeff Hillman
    Jeff Hillman about 12 years
    Those instructions look like they might work when starting clean. My question is if I can get a working solution with Ubuntu already installed to the SSD. Is it an absolute requirement that Windows is installed first?
  • Rodney Schuler
    Rodney Schuler about 12 years
    @Jeff Hillman. You should be able to make it work with Ubuntu first. Windows installation will clobber the linux boot stuff in the system partition and will insist on a 100MB system reserved partition. After windows installs you can boot from a linux CD to dd a file for the windows boot system (there also exists a window dd command) this is my preferred method. Or, you can use that linux cd to switch the boot loader to grub.
  • Jeff Hillman
    Jeff Hillman about 12 years
    So the Windows installation will just replace the existing fat32 /boot/efi partition with its own system partition, and I will still be able to get Ubuntu back? This makes sense to me, but UEFI seems to be a lot more touchy when it comes to this stuff. If I disconnect the SSD, will Windows just put its system partition on the HDD, leaving Ubuntu alone? How does the BIOS/UEFI know what the bootable devices are? Does it examine the drives at boot-time? If so, wouldn't the Ubuntu disk still be good to go, even if I have to manually select it from the BIOS/UEFI screen?
  • BJ292
    BJ292 about 12 years
    That 100MB UEFI partition is a function of your uefi bios. If it's not there your system won't boot and windows or linux cannot replace it. If you install windows by itself for instance in disk management you will see a sytem reserved partition and your main partition. If you look at this disk with Gparted you will see there are two 100MB partitions and your main partition. You can turn UEFI off on some motherboards.
  • Jeff Hillman
    Jeff Hillman about 12 years
    @BJ292: I think I understand what the UEFI partition is for, but I don't know if there is a way to install Windows in a way that both Ubuntu and Windows will be able to boot. I booted my Ubuntu install (USB drive) in UEFI mode to be sure that this partition would be created. Disabling UEFI is how I got my dual boot setup to work on my machine at work, but I can't find that option on this machine.
  • BJ292
    BJ292 about 12 years
    On my Acer it's just a matter of changing the boot order - drives are listed twice with and without UEFI - I selected the non-UEFI as the primary boot device and that's worked for me.
  • Jeff Hillman
    Jeff Hillman almost 12 years
    I think this is what I would like to try, as it seems to be the least risky of all the alternatives. Where do I set the SSD as the active drive? In the BIOS/UEFI settings? Is there a chance that the SSD will no longer be recognized as a UEFI bootable device after the Windows installation to the HDD?
  • Jeff Hillman
    Jeff Hillman over 11 years
    It took me a while to get around to it, but I finally tried this today, and it worked! My machine now boots into Ubuntu by default, but I can choose Windows from the boot menu. I tried setting Windows as the first boot option in the BIOS settings, which worked fine for Windows, but when I would select Ubuntu in the boot menu, all I would get was the solid, otherwise empty purple Ubuntu screen; no GRUB, no anything else ever. The current set up is acceptable, but what do I need to do to get Windows to boot by default and still be able to boot Ubuntu?
  • Jeff Hillman
    Jeff Hillman over 11 years
    Nevermind. I played with the settings a little bit more, and I don't know what I did differently, but I am now booting into Windows by default, and I can successfully boot into Ubuntu using the boot menu. Thanks!