Skip to content

Instantly share code, notes, and snippets.

@oznu
Last active April 19, 2024 12:35
Show Gist options
  • Save oznu/8796d08d73315483c3b26e79a8e3d350 to your computer and use it in GitHub Desktop.
Save oznu/8796d08d73315483c3b26e79a8e3d350 to your computer and use it in GitHub Desktop.
How to Bootcamp / Dual Boot Windows 10 on a mid-2011 iMac using USB

How to Install / Bootcamp Windows 10 on a mid-2011 iMac using USB

Apple has released support for bootcamping Windows 10, but only on 2012 Macs and later. Despite not being supported. it is possible to install Windows 10 on earlier iMacs and it seems to run quite well.

IMPORTANT: Unplug all external and physical hard drives (where possible) that you won't be installing to to avoid accidentally erasing them. Also make note of which drives and partitions remain (e.g. System and Storage hard drives), and be super careful to not erase the wrong one.

RECOVERY: If you nuke your machine, restore your time machine backup. Instructions here.

Requirements

  • A mid-2011 iMac or similar running OSX El Capitan
  • An 8GB or larger USB drive
  • An ISO containing Windows 10 (I used Windows 10 Enterprise)
  • 50GB free disk space, 100GB recommended

Step 1: Disable El Capitan's System Integrity Protection

El Capitan ships with a new OS X feature: System Integrity Protection (SIP), also known as "rootless" mode. This reduces the attack surface for malware that relies on modifying system files by preventing any user, whether with system administrator ("root") privileges or not from modifying a number of operating system directories and files.

It is necessary to disable OSX's System Integrity Protection so you can modify the Bootcamp Utility in the next step.

  1. Restart your Mac.
  2. Before OS X starts up, hold down Command-R and keep it held down until you see an Apple icon and a progress bar. Release. This boots you into Recovery.
  3. From the Utilities menu, select Terminal.
  4. At the prompt type exactly the following and then press Return: csrutil disable
  5. Terminal should display a message that SIP was disabled.
  6. From the  menu, select Restart.

Once you have finished installing Windows you should enable SIP again by following the same steps but run csrutil enable instead.

Step 2: Modify Bootcamp to allow creation of a bootable USB

For some reason Apple decided that if your Mac has an optical drive, there could be no reason you need to Bootcamp off a USB. If you're like me, you haven't touched an optical disk in a few years and prefer the ease and speed of using a USB flash drive instead.

  1. Find out your Macs Model Identifier and Boot ROM Version:
  • Open Terminal and run system_profiler SPHardwareDataType. Note down the values.
  • My mid-2011's Model Identifier was "iMac12,2" and the Boot ROM Version was "IM121.0047.B23".
  1. Open terminal and navigate to /Applications/Utilities/Boot Camp Assistant.app/Contents
  • Change directory: cd /Applications/Utilities/Boot Camp Assistant.app/Contents
  • Show files in directory: ls
  1. The file we are going to edit is the Info.plist file.
  • Make a backup of this file by running: sudo cp Info.plist Info.plist.bak
  • You will need to enter your OSX user account password.
  • If you get the error saying cp: Info.plist.bak: Operation not permitted, SIP is still enabled, please refer to step 1.
  1. Open the Info.plist in your favorite text editor, to keep this guide simple, I'll use nano.
  • sudo nano Info.plist
  1. You want to edit FOUR things:
  2. Add your Boot ROM Version to DARequiredROMVersions
  3. Delete the word "Pre" from UEFIModels and add your Model Identifier
  4. Delete the word "Pre" from USBBootSupportedModels and add your Model Identifier
  5. Remove your model from Win7OnlyModels (if it's there)
  6. Close and save the file by pressing Ctrl+x followed by y on your keyboard.
  7. The last step is to do a code sign. Boot Camp Assitant will not run if it's been edited. You need to resign it. Open Terminal (use spotlight to find it) and type this:
  • sudo codesign -fs - /Applications/Utilities/Boot\ Camp\ Assistant.app
  • It will probably ask for your password. Then it will say you need to download a developer tool from Apple. Agree to download it. (You don't need to install the whole X-Code, if it asks.) Once its been installed (it's automatic), you need to go BACK to Terminal and run that command again. This time it will work.

Step 3: Download the Bootcamp Windows Support Software

This download will contain the Windows drivers you will need to run Windows on your Mac. Windows 10 will install and run without them but not very well and a lot of hardware either won't work, or won't work very well until you install the drivers.

  1. Open Boot Camp Assistant from Applications -> Utilities
  2. Click continue at the introduction, if you completed step 2 correctly, you should see three options.
  • Create a Windows 7 or later version install disk
  • Download the latest Windows support software from Apple
  • Install Windows 7 or later version
  1. Choose none of three options, instead:
  2. From the Actions menu select Download Windows Support Software
  3. Select your Macs Desktop or Downloads folder as the destination for the download
  4. The download is 1.35GB so may take a few minutes

Step 4: Create the bootable Windows 10 USB

  1. Open Boot Camp Assistant from Applications -> Utilities
  2. Click continue at the introduction, and check the box in Create a Windows 7 or later version install disk. Ensure no other boxes are checked and click continue.
  3. If you have not already done so, insert the USB flash drive you want to burn the Windows 10 image to. Remember that any data on the USB drive you select will be erased.
  4. Continue the wizard, selecting the Windows 10 ISO file when prompted.
  5. After completing the wizard you will have your bootable Windows 10 installer USB.
  6. Copy the folder you downloaded in in Step 3 containing the Bootcamp Windows Support Software to root of USB flash drive.

Step 5: Create the bootcamp partition

You can do this using the Bootcamp Assistant, but it does reboot and attempt to boot from the optical drive as soon as it completes. I prefer to use the OSX Disk Utility instead.

  1. Open Disk Utility from Applications -> Utilities
  2. Choose your internal hard drive and select the Partition button along the top.
  3. Click the + button and create a new partition by shrinking the existing one.
  4. Create the new disk with at least 40GB disk space, I would recommend 60GB or higher.
  5. Name the partition BOOTCAMP and format using MS-DOS (FAT).
  6. Click Apply, this will take a few minutes, be patient.

Step 6: Delete the Hybrid MBR

During step 5, OSX tried to be helpful by converting our legal GPT disk partition into a hybrid MBR partition, which makes OSX see the disk as GPT and Windows it as MBR. Windows 10 requires a GPT disk when using EFI boot, so we need to revert this change using a tool called GPT fdisk (gdisk).

If this step is not completed you will get this error when installing Windows 10:

Windows cannot be installed to this disk. The selected disk is not of the GPT partition style

To avoid this:

  1. Download GPT fdisk from its Sourceforge page and install it. You will probably get a warning that it's not a signed application, if you do open OSX System Preferences -> Security and Privacy -> General and you should see a note down the bottom about the application you just tried to open with an offer to open it again.
  2. Find the device number for the internal hard disk:
  3. Open Disk Utility from Applications -> Utilities
  4. Choose your internal hard drive (not one of the partitions) and note down the Device, it's probably disk0.
  5. Open Terminal from Applications -> Utilities
  6. Launch gdisk on your internal hard disk by running sudo gdisk /dev/disk0, if your internal hard disk was not disk0 in the previous step, replace disk0 with what it was here.
  7. Type p to view the partition table to verify you're working on the correct disk. You should see the BOOTCAMP partition we created in Step 5. If not, type q to quit without saving your changes and double check the device number.
  8. Type x to enter the experts' menu.
  9. Type n to create a fresh protective MBR. Note that gdisk won't confirm a change; it'll just show you a new experts' prompt.
  10. Type w to save your changes. You'll be asked to confirm this action. Do so.

Note this action also requires OSX SIP to be disabled, if you get permission errors, make sure you have completed Step 1.

Step 7: Install Windows

  1. Reboot your Mac with the bootable Windows 10 Installer USB plugged in.
  2. Before OS X starts up, just after you hear the startup sound, repeatedly press and hold down the Option (or Alt key if your using a Windows keyboard) for a second or two until you see the boot selection options.
  3. You should see an option to boot from a USB device labelled "EFI Boot", choose this one.
  4. The Windows 10 installation will now start, follow the steps, selecting Custom Installation.
  5. On the screen where you select your partition be careful, ensure you select the "BOOTCAMP" partition you created earlier before proceeding with installation.
  6. Windows will restart 4 or so times during installation. Be ready to hold down the Options / Alt key after each reboot, but instead of selecting the USB device named "EFI Boot" select the newly created hard disk labelled the "EFI Boot" instead to ensure the installation continues smoothly. This is the same method you will use to choose between booting into OSX or booting into Windows once setup is complete.
  7. Finish installing Windows until you get to the desktop.

Step 8: Install the Bootcamp Windows Support Software

The Bootcamp Windows Support Software should be on the Windows 10 installer USB you created earlier.

  1. Open Windows Explorer and go to the USB drive
  2. Unless you renamed the folder, open WindowsSupport -> Bootcamp -> setup.exe.
  3. This will install all the required drivers and the bootcamp utility for Windows.

Step 9: Re-Enable El Capitan's System Integrity Protection

See Step 1.

Issues

The drivers installed as part of the Bootcamp Windows Support Software work well, WiFi, Graphics, External Monitors, Webcams and Bluetooth are all working. Audio was the only immediately noticable issue, though strangely the audio provided through my 2008 Apple Cinema display works without issue.

Mid-2011 iMac Audio Does Not Work

I could not get the iMac built in sound to work on Windows 10, despite the webcam working. I tried a few things that did not work:

As my external Apple Cinema display's audio was working it was not to much of an issue for me to deal with, but if anyone finds a solution please let me know.

Sources & Acknowledgements

@frankh93
Copy link

frankh93 commented Mar 5, 2024

I get Almost finished with setup, creating pin adding email declining office and Dropbox. Then it restarts a couple times, goes in recovery, downloads critical updates. And repeates. Not sure how to fix

Recently I found this post https://apple.stackexchange.com/questions/448340/installing-windows-11-on-mid-2011-imac-full-install-not-boot-camp-but-it-bsod and I waa able to install W11 on my iMac mid 2011. Hope it works for you.

@jayzarna
Copy link

jayzarna commented Mar 6, 2024

I have now had a successful bootcamp Windows 11 install on my 2011 mid Imac with 16GB ram and is working. I also have Open Core Legacy Patcher which runs multiple versions of Mac OS including Ventura and Sonoma without a hiccup. For the Bootcamp windows install which was quite the challenge, I followed various links which I will post under. But suffice to say that it does work, and it also installed the AMD drivers so my Imac works flawlessly in Windows11 Bootcamp.

Initially the Imac came with a 256GB SSD and a 2TB Hitachi HDD. I upgraded the 256GB to a Crucial 2TB SSD which also works. I had managed to get Windows 11 Working on the SSD and proceeded to make a clone of the same on to an external drive and then once the new Crucial SSD was purchased and installed, I transferred the cloned image onto it.

On the Mac OS side I have also tried VM Ware and other options, but the keyboard does not work. I have not been able to figure that out and as I do have Bootcamp Windows I have not bothered subsequently.

So here are the steps (wherever you get stuck, at that particular stage, search online and continue) on the attached PDF. Unfortunately it is not allowing me to attach a file so I am copy/pasting the process.

Finally installed Windows 11 on Imac after months of struggling.
First is to make sure that the Disk drive is MBR and not GPT, even though we use GUID to partition the SSD.
On the 250 GB SSD I kept 90GB for Windows 11.

High Sierra was on a APFS partition and when I used Bootcamp to partition, on HS it only made then main Bootcamp partition, which was ExFat. I made another smaller 205MB partition with MSDos Fat 16. When I didi that Disk Utility made another Bootcamp partition of 200MB thereabouts and there was an uninitiated partition that was added automatically. Without this the installation does not go further.

When I went ahead with this mode and did what was suggested I got an error when trying to make the C drive active. For this I had to then use Gdisk and make sure that these partitions including the APFS was MBR. This was done via the Apple Stackexchange Blog

https://apple.stackexchange.com/questions/308824/how-to-convert-a-drive-from-the-gpt-format-to-the-hybrid-gpt-mbr-format-when-usi

Here are the methods involving in editing the MBR table to create a hybrid partitioning scheme.

Method 1: Use the Third Party Tool gdisk

  1. While booted to macOS, download and install gdisk.
Note: If you get a popup similar to the one shown below, then will need to run the Terminal application command shown below before trying to install gdisk.

xattr -d com.apple.quarantine ~/Downloads/gdisk-*.pkg

  2. 
Note: The Terminal application can be found under "Utilities" on the menu bar.

  3. Picture of the popup.

  4. Disable SIP and then boot back to macOS. This will allow you to use the commands gpt, gdisk and fdisk. You also can execute gpt, gdisk and fdisk from macOS Recovery, but this may require you to precede the gdisk command with a path.

  5. The command given below can be used to partially display the information contained in GPT stored on disk0. You will need this information verify the changes made to the MBR table. (See the above question for the output from this command.)
gpt -r show /dev/disk0

  6. Enter the command given below.
sudo gdisk /dev/disk0

  7. Enter the input given below. This input is correct for the drive used as an example in this answer. Your actual input may vary from what is shown.
Note: The control+C key can be pressed at anytime to terminate the gdisk command without saving any changes.

r

  8. h

  9. 2 3 4

  10. y

  11. ff

  12. n

  13. 07

  14. y

  15. 07

  16. n

  17. w

  18. y

  19. 
Note: If you encounter the question shown below, enter the answer n.

Unused partition space(s) found. Use one to protect more partitions? (Y/N):

  20. 
Below is an example of the output after entering the command and the above input.
GPT fdisk (gdisk) version 1.0.4

  21. Partition table scan:

  22. MBR: protective

  23. BSD: not present

  24. APM: not present

  25. GPT: present

  26. Found valid GPT with protective MBR; using GPT.

  27. Command (? for help): r

  28. Recovery/transformation command (? for help): h

  29. WARNING! Hybrid MBRs are flaky and dangerous! If you decide not to use one,

  30. just hit the Enter key at the below prompt and your MBR partition table will

  31. be untouched.

  32. Type from one to three GPT partition numbers, separated by spaces, to be

  33. added to the hybrid MBR, in sequence: 2 3 4

  34. Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): y

  35. Creating entry for GPT partition #2 (MBR partition #2)

  36. Enter an MBR hex code (default AF): ff

  37. Set the bootable flag? (Y/N): n

  38. Creating entry for GPT partition #3 (MBR partition #3)

  39. Enter an MBR hex code (default 07): 07

  40. Set the bootable flag? (Y/N): y

  41. Creating entry for GPT partition #4 (MBR partition #4)

  42. Enter an MBR hex code (default 07): 07

  43. Set the bootable flag? (Y/N): n

  44. Recovery/transformation command (? for help): w

  45. Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING

  46. PARTITIONS!!

  47. Do you want to proceed? (Y/N): y

  48. OK; writing new GUID partition table (GPT) to /dev/disk0.

  49. Warning: The kernel may continue to use old or deleted partitions.

  50. You should reboot or remove the drive.

  51. The operation has completed successfully.

  52. 
As the above message suggests, it would be a good idea to restart the Mac.

  53. Enter the command given below to verify the changes.
sudo fdisk /dev/disk0

  54. 
Below is an example of the output after entering the command. Except for the start value of partition 1, the remaining start and size values should match the output from the gpt -r show /dev/disk0 command.
Disk: /dev/disk0 geometry: 60788/255/63 [976562540 sectors]

  55. Signature: 0xAA55

  56.      Starting       Ending
    
  57. #: id cyl hd sec - cyl hd sec [ start - size]


  58. 1: EE 0 0 2 - 25 127 14 [ 1 - 409639]

  59. 2: FF 25 127 15 - 1023 254 63 [ 409640 - 487304680] Xenix BBT

  60. *3: 07 1023 254 63 - 1023 254 63 [ 487714816 - 390623232] HPFS/QNX/AUX

  61. 4: 07 1023 254 63 - 1023 254 63 [ 878340096 - 97654784] HPFS/QNX/AUX

  62. 
Note: The descriptions , Xenix BBT and HPFS/QNX/AUX are either wrong and/or outdated.


  63. If desired, enable SIP.

Once the disk could be made Active, one use the DISM commands to get the Install.wim or Install.Esd file loaded on the drive. This is done via the Apple Stack exchange blog:

https://apple.stackexchange.com/questions/448340/installing-windows-11-on-mid-2011-imac-full-install-not-boot-camp-but-it-bsod#:~:text=A%202011%20computer%20%5Bof%20any,which%20Mac%20doesn%27t%20have

Follow the answer and tha tis what I did and it has worked. At places I used other information but I have now forgotten the exact steps. Sorry.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment