Running an OS off an external drive

Solution 1:

It seems to be possible to install Windows 7/8 to an external drive but a lot of work is necessary to overcome Boot Camp/Windows 7/8 restrictions.

The following guide is shamelessly stolen at bleeptobleep.blogspot.de. All credits go to the the respective persons/groups of persons.

To keep the formatting and improve readability i didn't choose the quote tags.

Mac: Install Windows 7 or 8 on an external USB3 or Thunderbolt drive without using bootcamp

Introduction

After I received my new iMac with a 3 TB Fusion Drive, I was disappointed when I realized that Bootcamp was not running on this model and prevented me from installing Windows on it. I wanted to take advantage of the powerful iMac hardware to play games but I couldn't.
There are a few ways of working around this limitation, but I found most of them quite complex and most of the time they required formatting the internal hard drive or repartitioning it and go for a brand new installation of Mac OS X. I was not comfortable with that.
But there is another way, and that is to install Windows on an external hard drive, using either USB or Thunderbolt. Personally I used a Lacie Rugged 1 TB drive that has both USB3 and Thunderbolt connectors. Both work very well.

This guide may interest you if:

  • You have an internal hard drive of more than 2TB and you can't run bootcamp at all (like late 2012 iMacs with a 3TB drive)
  • You have limited space or you don't want to dedicate disk space on your internal hard disk drive to a Windows installation

What this guide will make you do:

  • It will make you erase all your data from your external USB3/Thunderbolt hard drive
  • It will make you install Windows on your external USB3/Thunderbolt hard drive
  • It will make you install bootcamp drivers

What this will not make you do:

  • It will not make you modify anything on your internal Mac hard drive
  • It will not make you use or install the bootcamp assistant
  • It will not activate the Preference Pane for the default boot drive. You have to boot by pressing the ALT key to manually select your boot drive each time you want to boot Windows.

What you'll need

  • An external hard drive with a USB3 and/or Thunderbolt connector. This drive will be formatted so ensure you saved your files before going further. You can use either an SSD drive or a classic hard drive.
  • A Windows 7 or 8 install DVD or ISO (check whether to install 32 or 64 bits versions based on your Bootcamp drivers) and the corresponding Windows serial number.
  • One of the following:
    • Mac OS X with a Windows 7 or 8 Virtual Machine (use VMWare Fusion or Parallels Desktop for example. Note: VMWare Fusion seems to have some issues with Thunderbolt and USB3. Plug your drive to a USB2 enclosure or hub to work around this -it worked for me-, or use another VM software) → Read the important note below
    • A PC running Windows 7 or 8 → Read the important note below
  • Windows AIK (free) running on your Virtual Machine or on your PC, or just the imagex.exe file (the rest of the Windows AIK package is not needed)
    • Download imagex.exe
    • Download Windows AIK 7 or Windows AIK 8 (this download and installation is not required if you have already downloaded imagex.exe)
  • Bootcamp drivers for your Mac. You can get these either by running bootcamp from your Mac (Applications > Utilities > Bootcamp) or, if like me you have a 3TB drive and can't run bootcamp at all, use the direct download links here.
  • A USB stick to store your bootcamp drivers

IMPORTANT: If your Mac has a 64 bits processor, your Windows Virtual Machine on OSX, your Windows installation on your PC and your Windows DVD/ISO must also be in 64 bits!

Step by Step guide

Step 1: Get the install.wim file

  • If you have a Windows ISO file:

    1. Mount the ISO

      • If you're on OS X: double click on the ISO file
      • If you're on on Windows 7: Use a software like Virtual Clone Drive (free)
      • If you're on Windows 8: double click on the ISO file
    2. Open the mounted drive, then go to the "sources" folder and locate the "install.wim" file. Save this file to C:\wim\ on your Windows installation or virtual machine.

  • If you have a Windows DVD: open the "sources" folder on the DVD and locate the "install.wim" file. Save this file to C:\wim\ on your Windows installation or virtual machine.

IMPORTANT: If instead of a "install.wim" file, you have "install.esd", you can not continue this step by step guide. And an ESD file can not be converted into a WIM file. So you must get a version of the Windows installation DVD/ISO that has an install.wim file.

Step 2: Clean, partition and format your external hard drive

  1. On your Windows installation or virtual machine, plug in your external hard drive (can be plugged using USB2, USB3 or Thunderbolt at this stage)
  2. Open the command prompt in administrator mode (cmd.exe). To run it in administrator mode, right click on cmd.exe > Run as admin.
  3. Type the following and hit enter to open the disk partitioner utility: diskpart
  4. Type the following and hit enter to list your drives:
    list disk
    This will display a list of disks mounted on your computer or virtual machine. Make sure your drive is listed here before you continue.
  5. Identify the disk ID of your external hard drive. Replace # by your real external disk ID in the command below:
    select disk #
  6. Clean all partitions by typing the following (warning: this will erase all data from your external drive!):
    clean
  7. Type the following to use MBR as partitioning format:
    convert mbr
  8. Create the boot partition by typing the following followed by the enter key:
    create partition primary size=350 This will create a 350MB partition on your external drive
  9. Format the partition in FAT32 by typing the following:
    format fs=fat32 quick
  10. Set this partition to active by typing:
    active
  11. Assign a letter to mount this partition. We will use letter B in our example. If B is already used on your PC, replace B by any other available letter:
    assign letter=b Windows will detect a new drive and probably display a pop-up. Ignore that.
  12. Create the Windows installation partition using all the remaining space available on the external drive by typing the following:
    create partition primary
  13. Format the new partition in NTFS:
    format fs=ntfs quick
  14. Assign a letter to mount this partition. We will use letter O in our example. If O is already used on your PC, replace O by any other available letter:
    assign letter=o
    Windows will detect a new drive and probably display a pop-up. Ignore that.
  15. Exit the disk partitioner utility by typing:
    exit

Step 3: Deploy the Windows installation image

  1. Still using the command prompt in admin mode (you didn't close it, did you? ;) ), locate the imagex.exe file mentioned in the "What you'll need" section and access its folder. In our example, we have put this file in C:\imagex\imagex.exe
  2. Your Windows installation ISO has probably several installation options in it. So in order to identify the right one, type in the following:
    imagex.exe /info C:\wim\install.wim
  3. Now identify the INDEX number of the installation that you wish to deploy. You will use it in the next step.
  4. Type the following and hit enter. Replace 1 with the INDEX you identified in the previous step. Also remember to replace o: with the letter you have chosen in the previous step:
    imagex.exe /apply C:\wim\install.wim 1 o: This will take some time. The Windows installation image is being deployed to your external drive
  5. Once done, type the following to create the boot section (remember to replace o: and b: with the letters you've chosen in the previous step):
    o:\windows\system32\bcdboot o:\windows /f ALL /s b:
    • If you get an error message saying that you can't run this program on your PC, then most probably you are running on a 32 bits installation of windows and you're trying to deploy a 64 bits install. This means you did not read the important notes in the beginning of this guide ;)
    • If you get an error message on the options that can be used with the BCDBOOT command, then it's because you're installing Windows 7, and the /f option is not supported. If that is the case, remove /f ALL from the command and retry.

Step 4: Boot from your external drive and install Windows

  1. Plug in your external drive:

    • If you've done all the previous steps from a Windows PC, unplug your external drive from your PC and plug it to your Mac, either on a USB3 or a Thunderbolt port.
    • If you've done all the previous steps from your Mac using a Virtual Machine, ensure the external drive is plugged in to a USB3 or Thunderbolt port. Using USB2 should also work but you'll get very poor performance so I don't recommend doing that.
  2. Reboot your Mac and once the bootup sound is over, immediately press the ALT (option) key and release it only when the boot drives selection screen appears. If you did not get the boot drives selection screen, reboot and try again. The timing to press the ALT (option) key is quite short. It must not be too early or too late.

  3. On the boot selection screen, choose "Windows" using the arrow keys on your keyboard, then press enter.
  4. The Windows installation starts. Follow the on-screen instructions as normal. The installation program will restart your computer one or 2 times. Don't forget to press ALT (option) right after the bootup sound, and boot on Windows again each time to continue the installation.

Step 5: Install bootcamp drivers

  1. Once the Windows installation is complete, plug in the USB stick where you stored the bootcamp drivers (see "what you'll need" section), open it and right click on "setup.exe" and select "Run as admin". Follow the on-screen instructions.
    • If you have an error saying that you can't run this program on this PC, obviously you have installed a 32 bits version of Windows and the bootcamp drivers for your Mac are made for a 64 bits version. You have to restart the whole guide and make sure to get a 64 bits version of Windows this time!
  2. Once the bootcamp drivers are all installed, reboot and press ALT (option) after the bootup sound to boot on Windows again. And Voilà, you have Windows installed on your USB3/Thunderbolt drive running on your Mac.
  3. Now each time you want to boot on Windows, press and hold the ALT (option) key after the startup sound and select "Windows", then press Enter.

Credits, sources and big thank you to:

tweaks.com where I got the info on how to install Windows to go on a USB external drive
Chris F Caroll where I finally found where to download the bootcamp drivers without running bootcamp
Macrumors forums for the very helpful forum members

To answer your second question about performance drop:

I don't have a Boot Camp partition so i can't compare Windows Boot Camp to a Windows VM.
But i may give you a Mac <-> Mac VM comparison and single Windows 7/8 VM benchmarks:

Geekbench 3 Benchmark:

  • iMac14,2 3.5 GHz i7 4 cores 8 threads 32 GB 10.9.5: single-core score: 4009 multi-core score: 14951
  • iMac14,2 3.5 GHz i7 2 (virtual) cores 4 GB 10.9.5 Parallels VM single-core score: 3870 multi-core score: 7127

Windows Experience Index:

Windows 7 Parallels VM, 2 (virtual) cores, 4 GB (WEI: 1.0-7.9):

  • Processor: 7.3
  • RAM: 7.9
  • Graphics: 7.8
  • Gaming Graphics: 7.8
  • Prim. Hard Disk: 6.0

Windows 8.1 Parallels VM, 2 (virtual) cores, 8 GB (WEI: 1.0-9.9):

  • Processor: 7.5
  • RAM: 7.9
  • Graphics: 8.2
  • Gaming Graphics: 8.2
  • Prim. Hard Disk: 7.5