Windows – No bootable device USB 2.0 MacBook Pro mid 2014

bootable-diskbootcampdual-bootusbwindows

I've been tearing my hair out the last couple days trying to get Windows installed.
I have a MacBook Pro Retina 15 inch mid 2014. Yosemite version 10.10.1.
Win 7 64 bit iso (sha1 – 0bcfc54019ea175b1ee51f6d2b207a3d14dd2b58).

I have tried two usb 2.0 flash drives with 'Create a Windows 7 or later install disk' option in BCA. This proceeds smoothly and so does creating the partition using Install Windows 7 option. However, when it restarts, it says something along the lines of 'no bootable device' If I hold down 'alt', the only options are to boot back into OS X & the recovery disk.

I realise this question has been asked countless times – I have read a lot of them but few seem applicable to my situation and those that are have not helped yet. I have not tried another USB yet since I am bandwidth limited (both in download speed and data limit) and BCA wants to redownload Windows support files every time and at this point it feels like a shot in the dark.

Any help with this will be greatly appreciated. Some further questions:

  • Is there a way to determine whether the usb drives are at fault?
  • Does BCA create the bootable drive in any special way? I.e. is it possible to create it by another method that will still play well with the bootcamp process?

Best Answer

Installing Windows 7 or 10 Pro 64 bit without DVD or Flash Drive

If you are trying to install Windows 7 on a 2012 through 2014 Mac, then you should read my answer to this question.

Special thanks to user Rafa, who was able to correct this procedure so it now works with Windows 10.

Here I assume your computer is configured as required by the Boot Camp Assistant. (In other words, you will be installing Windows to the 4th partition on disk 0.) Also, your firmware is up to date and you have downloaded the correct "Boot Camp Support Software" for your model Mac computer. Before starting, remove all DVD's and external devices from your Mac.

Note: Some of the steps, that do not involve VirtualBox, have images captured from a VirtualBox window. This was done when this was the easiest way to create an illustration. I suppose I could have cropped the images, but I chose not to.

(Hint: For a better view, click on an image or open an image in a new window.)

  1. Create a MS-DOS (FAT) formatted partition on your Macs internal drive. This is where Windows 7 will be installed. You can use the Bootcamp Assistant, the Disk Utility, or commands (distutil, gpt and/or fdisk) entered in a Terminal window. Other third party tools, such as gdisk, can also be used. Give the label for this partition the name "BOOTCAMP". When finished, quit all applications.

    This procedure requires the "BOOTCAMP" partition be the 4th partition on your Macs internal drive (disk0). If you are using the Disk Utility from OS X 10.7 or newer and your Mac has the default drive configuration, then the new "BOOTCAMP" partition should be created as the 4th partition automatically. However, if you are using APFS and the default drive configuration, then the new "BOOTCAMP" partition should be created as the 3th partition automatically.

  2. Make sure the drive is using the GPT/MBR hybrid partitioning scheme. See my answer to the question "How to convert a drive from the GPT format to the hybrid GPT/MBR format when using High Sierra (macOS 10.13.2)" for a procedure that accomplishes this task.

    User Semi has noted that the Boot Camp Assistant (BCA) will correctly GPT/MBR hybrid partition the drive. So, you may be able to the the BCA to partition the drive, then use the flash drive to install Windows.

  3. Download and install a free copy of VirtualBox. I used VirtualBox 5.0.14 r105127, Copyright © 2016.

  4. Do the following to transfer the "Boot Camp Support Software" to a partition compatible with VirtualBox. Create folder named "VirtualBox" in your Documents folder. Open the Disk Utility and from the menu bar select File->New->Blank Disk Image. Create this image in the "VirtualBox" folder using the following parameters.

    1

    Using the Finder application, copy the "Boot Camp Support Software" to this new partition. When finish, this new partition should appear in the Finder as shown below. (For readers with older Macs, you may only have the "BootCamp" folder.)

    2

  5. This step will create the file needed by VirtualBox to access the partition containing the "Boot Camp Support Software". In a Terminal application window, enter the following commands.

    Note: I assume you are using the default Bourne-Again Shell (bash).

    cd  ~/documents/virtualbox
    open  bcss.dmg
    DISK1=$(mount|awk  -F  s1  '/BCSS/{print$1}')
    diskutil  unmountDisk  $DISK1
    vboxmanage  internalcommands  createrawvmdk  -filename  "$PWD/bcss.vmdk"  -rawdisk  $DISK1
    

    The result should be the creation of the file bcss.vmdk in your "VirtualBox" folder. Later, you will select this file to give a virtual machine access to this partition.

    Note: At this point, one should realize it would be easier to copy the commands from this document and paste them into the Terminal application window.

  6. This step will create the files needed by VirtualBox to access the physical partition where you will install Windows. In a Terminal application window, enter the following commands.

    cd  ~/documents/virtualbox
    DISK0=/dev/disk0
    PARTITION=4
    PARTID="$DISK0"s"$PARTITION"
    diskutil  unmount  $PARTID 
    sudo  chmod  go+rw  $PARTID
    sudo  vboxmanage  internalcommands  createrawvmdk  -filename  "$PWD/bootcamp.vmdk"  -rawdisk  $DISK0  -partitions  $PARTITION
    sudo  chown  $USER  bootcamp*.vmdk
    

    Note: This access granted by the chmod command will only last until OS X is rebooted.

    The result should be the creation of the files bootcamp.vmdk and bootcamp-pt.vmdk in your "VirtualBox" folder. Later, you will select the file bootcamp.vmdk to give a virtual machine access to the physical partition.

    Note: OS X prefers to automount file systems. This can be disabled for a particular partition by creating or modifying the /etc/fstab file. Instead of employing the /etc/fstab file, the user is asked to repeatedly enter the following commands.

    diskutil  unmount  $PARTID;diskutil  unmountDisk  $DISK1
    

    These commands unmount the physical "BOOTCAMP" partition and the disk image file bcss.dmg containing the "BCSS" partition.

  7. Configure the virtual machine. Open the VirtualBox application and click on icon above the New label. Enter or select the values shown below, then click the "Continue" button.

    2000

    Use the default settings except for the hard drive. Choose the "Use an existing virtual hard drive file" button. Navigate to your "VirtualBox" folder. Highlight the bootcamp.vmdk file. Before clicking the "Open" button, enter the following commands in the same Terminal application window.

    diskutil  unmount  $PARTID;diskutil  unmountDisk  $DISK1
    

    Open the bootcamp.vmdk file. Your window should appear similar to what is shown below.

    2001

    Click the "Create" button.

    After returning to the VirtualBox application's "Oracle VM VirtualBox Manager" window, click on the icon above the "Settings" label. Next, click on the icon above the "Storage" label. In the "Storage Tree", "Controller: SATA" should be highlighted. Right click on this highlighted area and select "Add Hard Disk". Choose the "Use an existing virtual hard drive file" button. Navigate to your "VirtualBox" folder. Highlight the bcss.vmdk file. Before clicking the "Open" button, enter the following commands in the same Terminal application window.

    diskutil  unmount  $PARTID;diskutil  unmountDisk  $DISK1
    

    Open the bcss.vmdk file. Next, select the "Use Host I/O Cache" option. Your window should appear similar to what is shown below.

    2002

    Highlight the Empty CD/DVD and select "Choose Virtual Optical Disk File..." to attach your Windows 7 iso file. (Hint: Look for the CD/DVD icons)

    2003

    Click OK to close the window. Your "Oracle VM VirtualBox Manager" window should appear similar to what is shown below.

    2004

  8. In this step, you will copy the necessary files to the physical partition, so later you can restart your Mac and install Windows. Enter the following commands in the same Terminal application window.

    diskutil  unmount  $PARTID;diskutil  unmountDisk  $DISK1
    

    Next, click on the icon above the "Start" label to boot from the Windows 7 iso file. Press the space bar, if prompted to "Press any key to boot from CD or DVD."

    Note: The mouse pointer must be over the virtual machine screen window before you press the space bar.

    When the display below appears, click the "Next" button.

    100

    When the display below appears, select "Repair your computer".

    101

    With the button "Use recovery tools that can help fix problems starting Windows." selected, click the Next button.

    102

    Select the "Command Prompt" option.

    103

    Insure the drive letters C through F are not assigned by default to a volume by entering the following commands.

    mountvol  c:  /d  >nul
    mountvol  d:  /d  >nul
    mountvol  e:  /d  >nul
    mountvol  f:  /d  >nul
    

    Enter the following to determine a list of the current volumes.

    diskpart
    list  volume
    

    The image below displays the volumes found on my Mac. You may get different results.

    9000

    Enter the following commands, to assign the drive letters D, C and E to the CD-ROM volume and the volumes labeled "BOOTCAMP" and "BCSS", respectively. In the image shown above, these are volumes 0, 3 and 4. If your volume indices are different, make the appropriate substitutions. Also, NTFS format the "BOOTCAMP" volume.

    select  volume  3
    assign  letter=c
    format  quick  fs=ntfs  label=BOOTCAMP
    select  volume  0
    assign  letter=d
    select  volume  4
    assign  letter=e
    list  volume
    exit
    

    When finished, the volume letters should appear similar to what is shown below.

    9001

    Next, enter the commands givens below. The bootsect command writes boot code to a Volume Boot Record (VBR) of a partition and Master Boot Record (MBR) of the corresponding drive.

    bootsect  /nt60  c:  /mbr
    bootsect  /nt60  e:  /mbr
    

    The next sequence of commands creates a Virtual Hard Disk (VHD) file. The VHD represents a virtual flash drive from which Windows will be installed on to the physical "BOOTCAMP" partition.

    Note: If you are installing Windows 10, then the parameter fs=fat32, in the format command shown below, should be replaced with fs=ntfs.

    diskpart
    create  vdisk  file=c:\flashdrive.vhd  maximum=8000  type=fixed 
    attach  vdisk
    create  partition  primary
    format  quick  fs=fat32  label=FLASHDRIVE
    assign  letter=f
    exit
    

    Finally, copy the Windows installer iso and "Boot Camp Support Software" files first to VHD, then directly to the physical partition where Windows is to be installed. Exit the Command Prompt window when finished.

    xcopy  d:*  f:  /s  /h
    xcopy  e:*  f:  /s  /y
    xcopy  f:*  c:  /s  /h
    exit
    

    Note: The files \sources\boot.wim and \sources\install.wim take a long time to copy. The file sizes are 168 MB and 2.95 GB, respectively.

    Select the "Shut Down" button to shutdown the virtual machine. Quit the VirtualBox application.

  9. This step will involve configuring Master Boot Record (MBR) of your physical internal drive. The MBR is stored on the first 512 bytes of this drive. This space is shared by boot code and the MBR partition table.

    This step can not be preformed under OS X 10.11 (El Capitan) with System Integrity Protection (SIP) turn on. (This is the default setting.) If you are using OS X 10.11, you must disable SIP, complete this step, then restore SIP. See the link: How do I disable System Integrity Protection (SIP) AKA “rootless” on OS X 10.11, El Capitan?.

    In a Terminal application window, enter the following commands. The first fdisk command flags the "BOOTCAMP" partition as the active partition. The second fdisk command changes the "BOOTCAMP" partition id to 7. The final fdisk command copies the boot code from the MBR of the disk containing the "Boot Camp Support Software" partition to the MBR of the physical disk containing the "BOOTCAMP" partition.

    cd  ~/documents/virtualbox
    DISK0=/dev/disk0
    PARTITION=4
    PARTID="$DISK0"s"$PARTITION"
    open  bcss.dmg
    DISK1=$(mount|awk  -F  s1  '/BCSS/{print$1}')
    INPUT=$(printf  "f  $PARTITION\nq\ny")
    sudo  fdisk  -e  $DISK0  <<<"$INPUT"  &>/dev/null
    INPUT=$(printf  "s  $PARTITION\n7\nq\ny")
    sudo  fdisk  -e  $DISK0  <<<"$INPUT"  &>/dev/null
    sudo  fdisk  -u  -y  -f  $DISK1  $DISK0
    diskutil  mount  $PARTID
    

    Note: To display the value for the variable INPUT, use the command echo "$INPUT".

  10. This is the step where you install Windows to your "BOOTCAMP" partition. Restart your Mac and hold down the option/alt key. Select the Windows icon to boot from the "BOOTCAMP" partition. Open a Command Prompt window, by navigating through the displays as you did in step 7. Enter the commands below to attach the "FLASHDRIVE" partition stored in the Virtual Hard Disk (VHD) file.

    diskpart
    select  vdisk  file=c:\flashdrive.vhd
    attach  vdisk  readonly
    list  volume
    exit
    

    On my Mac, the output from the list volume command shows E to be the drive letter assigned to the "FLASHDRIVE" partition. If your drive letter is different, make the correct substitution when entering the e:\setup command given at the end of this step. Next, remove all the files, but one, from the "BOOTCAMP" partition.

    rmdir  /s  /q  c:\
    

    If the above command executes correctly, you should get the error message: "c:\flashdrive.vhd - The process cannot access the file because it is being used by another process."

    Start installing Windows 7 by entering the command given below. Select "BOOTCAMP" as your installation partition.

    e:\setup
    

    The installation files are stored in the "FLASHDRIVE" partition. Since this partition is stored as a VHD file in the "BOOTCAMP" partition, do not try to reformat the "BOOTCAMP" partition. You will remove these installation files in a later step. When your Mac restarts, it will boot to OS X. This is to be expected. From the "System Preferences" select Windows as your startup disk and restart the Mac. Your Windows installation will continue.

  11. Once Windows finishes installing, the "Boot Camp Support Software" can be applied. To access this software, the c:\flashdrive.vhd file, containing the "FLASHDRIVE" partition, needs to be attached. Click on the "Start" button, type in diskmgmt.msc and hit the return key. Once in Disk Management, click on Action in the menu bar and select Attach VHD. Select the file location and check "Read-only" to prevent writes to the VHD file. After you hit "OK", the drive will show up in Disk Management with a blue icon. Close Disk Management.

    In the AutoPlay popup window, select "Open folder to view files." (If no popup appears, use the Windows Explorer to open the drive labeled "FLASHDRIVE".) The setup.exe file can be found in the folder labeled "BootCamp". Execute this application to install the "Boot Camp Support Software". The VHD file will detach when the computer restarts.

  12. Finally, remove DVD and "Boot Camp Support Software" folders and files. This can be accomplished by dragging the c:\flashdrive.vhd file to the Recycle Bin. If you get an error message about the file being open, restart the computer and try again.

Clean Up

The "Virtual Box" folder can be deleted. You will probably need to eject the "BCSS" partition first.

You can delete the "BootCamp" virtual machine. This can be done from the VirtualBox application. If VirtualBox does not remove all the files, you can remove them manually. Look in the ~/"VirtualBox VMs" folder.

You can delete the Windows 7 iso file.

You can remove the VirtualBox application, but since it takes such little space, I would not bother.