3

This problem is very similar to How to install Windows 10 into a 2011 iMac without using the Boot Camp Assistant, an optical (DVD) drive or third party tools? - Ask Different, with the following additional limitations,

  • Mac OS X v10.6.x Snow Leopard must not be upgraded.
  • Because of old Mac OS X or otherwise, Boot Camp Assistant does not function properly.
  • Because of old Mac OS X, old version of Boot Camp or Boot Camp Assistant, old/poorly supported hardware, old/poorly supported firmware, or otherwise, your Mac crashes in Windows GUI setup (or even in EasyBCD BIOS Extender, "if your PC doesn’t support booting from USB.")
  • Because of old Mac OS X or otherwise, custom boot managers don't function properly - with Windows failing to perform the boot into any GUI, before or after installation.

This is a question with specific constraints (pertinent to Mac OS X Snow Leopard compatibility). If these additional limitations don't apply to you, then you should likely follow: How to install Windows 10 into a 2011 iMac without using the Boot Camp Assistant, an optical (DVD) drive or third party tools? - Ask Different

I would desire to perform the installation without any of the following.

  • No third-party software (Third-party software, if any, should be minimal, and it should work with Mac OS X Snow Leopard)
  • No optical (DVD) drive
  • No Boot Camp Assistant or it cannot be used properly.
1

2 Answers 2

3

Installing Windows 7 (and beyond) onto a mid-2010 Mac mini with Mac OS X Snow Leopard without Boot Camp or an optical (DVD) drive.

In this guide, the following OS was used:

  • Edition: Windows 7 Ultimate SP1
  • Architecture: 32-bit

However, the guide itself is not limited to Windows 7 or 32-bit, and with modern "live image" options, the guide can be used to install (64-bit) Windows 8.1, 10 or beyond.

Furthermore, installing other operating systems, such as Linux should be possible with "Stage 4" approaches taken in this guide. More so, it should even be easier as you may skip Windows-specific steps. That said, Linux is out of scope of the guide.

The guide was tested on several Macmini4,1 (Mid-2010), regardless of Intel CPU inside.

The procedure (guide) can be found below,

Stage 1 - Meet prerequisites

50% of work is meeting prerequisites! Meeting them can take a few hours.

Hardware

ensure you have:

  • Target Mac machine with a spare volume for Windows.

    Note: At this point, the focus is on the partition's file system to be recognizable by Windows. The file system will be formatted to NTFS at a later stage.

  • Spare Windows machine (regardless of installation OS)
  • At least 2 USB sticks 16GB+. USB stick #1 is for Mac OS X Recovery, USB stick #2 is for carrying over image files + driver and support files, and maybe even USB stick #3 for 'in-case-ofs'.

OS images

files to obtain:

1/3: Installation OS image

(such as a Windows 7 ISO)

  • Make sure to obtain an original (in Microsoft terms, "MSDN") ISO file for the correct architecture.
  • After the image is obtained, it needs to be copied to your Mac.

2/3: Mac OS X Recovery & Installation disk image

Make sure to obtain (roughly) the same release as of the Mac OS X already installed. You may use one of the following images,

Unlike all other OS images, Mac OS X Recovery & Installation disk image will not need to be copied to your Mac.

3/3: Live image ISO

A minimal WinPE environment

"Live" means that it is possible to use a given OS without installation.

Note: Live image ISO is only required for Windows installation process.

After the image is obtained, it needs to be copied to your Mac.

  • Update 26.12.2023: Modern, official, and scalable solution to this step was found! - Sergei Strelec's WinPE (see below)

(Easy solution): Sergei Strelec's WinPE

Sergei Strelec's WinPE (MajorGeeks)

At the time of writing, the current posted version is 2023.06.25. Screenshot of Sergei Strelec's WinPE successfully running within Parallels Desktop 5 on Mac OS X 10.6.3.

By using Sergei Strelec's WinPE, many problems are avoided, including:

  • Having to obtain WinNTSetup, supplement with ADK files, and repack the utility of WinNTSetup.
  • Potentially having to re-package installation image, due to Windows XP UDF issues.

The only downside is that the image is around 4.7GB, and temporarily, you need to use an NTFS-formatted storage device, or find another way to get the file onto your Mac.

Sergei Strelec's WinPE (in WinPE 8 (x86) environment) comes with last x86 host OS compatible, pre-packaged WinNTSetup v4.2.5. It also comes with 78Setup v2.4 (Setup Windows 7-10 (x86-x64)) utility, which was not researched in this answer. These 2 utilities may allow for installation of even Windows 10 or beyond on a Mac mini 4,1.

Sergei Strelec's WinPE - Important Notes

To keep the answer not too dependent on Sergei Strelec's WinPE, here are Important Notes

  • Use at your own risk!
  • For compatibility reasons, Parallels Desktop's "target OS" has to be the highest available option, i.e. "Windows 7"
  • For compatibility reasons, Sergei Strelec's WinPE may only be run in the mode of Boot WinPE 8 Sergei Strelec (x86) Native (Old PC), see screenshot. Every other option causes Parallels Desktop 5 VM to crash.
    • Technically, Windows 8-based OS runs within virtualized environment that targets Windows 7, but no incompatibilities or issues were observed.
  • Sergei Strelec's 8 WinPE runs on 1GB of VRAM with ~640MB of VRAM free.

(Your research): Other options

  • Otherwise, due to constraints, it likely will be Windows XP/7/8 based, perhaps legal copy of MiniPE/BartPE. To keep guide neutral, you may benefit from finding an ISO at system-repair. Live image ISO will need to run WinNTSetup.
    • If WinNTSetup is not offered by live image, then ideally, the live image should produce a RAM Disk (usually, spanned using ImDisk software), allowing you to copy files to RAM. If it doesn't, there will be several extra steps. The RAM Disk would look like this.

Software

to obtain and install:

On target Mac machine

Parallels Desktop for Mac 5.x on Mac OS X 10.6 with Windows 7 installation Note: Screenshot is for demonstration. Windows 7 will not be virtualized as in the screenshot.

  • Full version of Parallels Desktop for Mac 5-6 (or similar) for Mac OS X.
    • In this guide, Parallels Desktop 5.0.9344.558741 was used.
    • Parallels Desktop 5.0.9344.558741 requires activation with a serial number.
    • You need to install it on your target Mac machine.

On spare Windows machine

  • 7-zip
  • (Required if Recovery disk is in DMG format): TransMac
    • Trial version is OK
  • ImgBurn, to generate ISO images from a folder (for Windows OS installations only). It is likely to come in handy for several ISO-specific steps.
  • (Optional) VirtualBox or any other virtualization software. It may come in handy for 'WinNTSetup' steps below.

For 'live' image: WinNTSetup (only if WinNTSetup is not included; for Windows OS installations only).

Trivia: WinNTSetup is a finicky software that requires extra packages. Newer versions have better support for Windows 10/11, as well as extra options for customization. However, if live image already contains pre-configured WinNTSetup that 'gets job done', then it may be easier to use it and skip this step

Note: WinNTSetup dropped Windows XP and 32-bit host OS support in version 4.5.0. As such, the last version compatible with any 32-bit 'live' environment is v4.2.5.

  • Latest WinNTSetup versions are reported to require ADK files, which can normally be downloaded online, which may be an issue in 'live' environment. To ensure smooth experience, you may need to:
    • Download ADK files from Microsoft and place them in the WinNTSetup's DISM folder(s). For example, for version 4.2.5, DISM folders are located at,
      {{WinNTSetup}}\Tools\x64\DISM
      {{WinNTSetup}}\Tools\x86\DISM
      
      with respect to the CPU architecture.
    • Ensure that WinNTSetup works as expected in your live environment, for example, by using a virtualization software (e.g. VirtualBox), whereby you can attach your live image, attach WinNTSetup ISO image on another drive, and then ensure that WinNTSetup starts.
  • Finally, create an ISO image with a portable copy of WinNTSetup using ImgBurn
  • Optionally, you may re-pack your live environment to add your copy of WinNTSetup, as you will be able to attach WinNTSetup to your live environment.
  • Once you are sure that WinNTSetup will work with live image, WinNTSetup ISO file needs to be copied to your Mac.

For Windows Installation:

1/3: Boot Camp drivers

Thanks to a user's research using this information, it was determined that Macmini4,1 (Mac mini mid-2010) supports Windows 7 Boot Camp Support Software 4.0.4033 from here.

Make sure to install them, as otherwise, Windows will not be able to make use of hardware properly.

Note: There is a community report that the combination of Boot Camp Support Software 4.0.4033 and 5.1.5722 can be used to install Windows 10. This information can be found at: this post (steps 4-6) + a comment (step 7)

2/3: Updated "Apple Software Update" package.

As of 2023, Apple Software Update package supplied in Boot Camp Support Software 4.0.4033 crashes. There are the following ways to address this problem:

3/3: Required Windows 7 SP1 updates

There are 2 possible options, and picking at least one option is required,

OP's minimal set of 2 updates

Minimal set of updates, required for Windows 7 to function.

  • KB4474419 – SHA-2 signatures support (both for Windows Update and Apple Software Update)
  • KB3138612 (archive) – fix Windows Update "80072EFE" error.
David Anderson's "basically SP2"

Takes care of 112 update packages, installable in order specified,

  • KB3020369
  • KB3125574
  • KB4474419 (from above)
  • KB4490628
  • KB5011649

Save time!

  • [USB stick #1] (macOS Recovery): On your spare Windows machine, use TransMac (for .DMG and .toast) or any ImgBurn (for .toast) to start burning Mac OS X Recovery image to USB #1.
  • [USB stick #2] (ISO, Drivers and support): Format USB #2 to use FAT (or exFAT, if Mac OS X 10.6.5 or higher is used file system, and copy ISO/DMG images, plus everything that will be required for the future Windows 7 installation (Boot Camp drivers, Updated "Apple Software Update" package, Required Windows 7 SP1 updates) to USB #2.

Note: Use USB #2 to transfer over big .ISO files. So, USB #2 is your 'cargo' drive.

Stage 2 - Create virtual environment

Create New Windows Installation using Parallels Desktop 5 Wizard

  1. Launch Parallels Desktop for Mac

  2. Click on New Windows Installation Splash

  3. In the Operating System Detection window, attach your live image, Attach DVD 1

  4. Regardless of Parallels Desktop detection or lack thereof, ensure that that "Detected Operating System" closely corresponds to your live image OS (not installation OS). In my case, my live image OS is based on Windows XP, so I selected corresponding option, Could not detect OS

    Note: For WinPE 8 Sergei Strelec (x86) or any other Windows 8 based live environments, pick "Windows 7", being the closest available option in Parallels Desktop 5 for Mac.

  5. In the Virtual Machine Type window, select Custom and click Continue, Virtual Machine Type - Custom

  6. In the CPU and Memory Options window, I left everything as-is and clicked Continue, CPU and Memory Options

  7. In the Hard Disk Options window, select Boot Camp Partition. Is this options is generally risky, you may receive some warnings, Hard Disk Opt: Boot Camp Partition

  8. In the Boot Camp Disk window, select disk0 (i.e. the Mac's internal disk), Boot Camp Disk - Always disk0

  9. In the Networking Type window, it is advised (for security reasons) to select No Networking, Networking Type - No Networking

  10. In the Optimization Options window, the default option of: "optimizations for a Virtual Machine" makes better sense (as it will use many resources for itself in the process), leave everything as-is and click Continue to proceed, Optimize for: VM

  11. In the Name and Location window, you may opt for a fancy VM name (such as Winstall) and click Create, Fancy Winstall

  12. You should be greeted by a window like this, Winstall is ready
    Do not click on the VM just yet.

Configure VM

  • Important Note: After the virtual machine is created. More configuring will be required, so do not launch VM just yet. If you launched your VM, simply stop it for now, by selecting,
    Top menu bar -> Virtual Machine -> Stop
    
  1. Now proceed to the virtual machine configuration, by selecting,

    Top menu bar -> Virtual Machine -> Configure
    
  2. Within opened window, select furthest to the right tab of Hardware, Rightmost "Hardware" Tab

  3. Select CD/DVD 1, ensure it is Connected, and direct Source to live image ISO (2nd time), CD/DVD 1: my_live_image.iso

  4. Underneath "devices" section, find and click on the + (Add) button, and then select CD/DVD,
    Cut plus option screen

  5. You have now added a second CD/DVD drive. Select CD/DVD 2, ensure it is Connected, and direct Source to installation image ISO, CD/DVD 2: en_windows_7_

  6. Select Floppy Disk. Pre-empt Parallels Desktop complaints: ensure it is not Connected, by unticking Connected checkbox, Floppy Disk - Not Connected

  7. Finally, select Boot Order. Ensure that CD/DVD is above any of the Hard Disks, Boot Order: CD/DVD above HDDs
    Optionally, you may enable "Select boot device on startup", though you won't need it.

Note: If you absolutely know that WinNTSetup is external to the live image, and RAM Disk (usually, spanned using ImDisk software) is not offered by your live image, then you may repeat the steps 4-5 to attach a third CD/DVD drive, that will use that external WinNTSetup ISO.

Stage 3 - 'Install' Windows in VM

Getting started in live environment

  1. Launch the VM.
  • Important Note: In stage 3, including now, you will encounter a message like this a few times, Security Error Brief
    Don't tick anything, and just click "OK". You want to monitor these security messages in the process.
  1. Ensure installation ISO is attached to any CD/DVD except CD/DVD 1. Its files will be used as WinNTSetup input.

    Note: Some older live images (e.g. Windows XP SP2 based) struggle with Windows 7 DVD UDF (ISO 9660 noncompliant) file system, and incorrectly detect it as CDFS. If this happens, then the Windows 7 installation files will have to be provided another way. For example, this can be done by: sourcing Windows 7 files to ImgBurn, and creating a data-only, ISO 9660 compliant DVD image with these files, without bootable functionality. ImgBurn will complain a few times, but since the files will only be used as raw input for WinNTSetup, bootability is not an important factor.

  2. Ensure WinNTSetup is available to the live image.

    • If WinNTSetup is external, and is not packed into the live image, then copy WinNTSetup folder onto the RAM Disk.
      • If RAM Disk, is not offered by a live image (as it is, usually, spanned using ImDisk software), then you will need to either repack your live image with ImgBurn to include WinNTSetup OR use a third CD/DVD drive in the next step.
    • If WinNTSetup is available within the live image, then you can simply run it.

Formatting the partition

WinNTSetup is not designed to format the drive, so you are better off formatting it yourself.

Yes, Windows will run on FAT/FAT32 file system. However, Windows will run more stable on NTFS, as NTFS has capabilities for better error-detection and error-correction, as well as journaling.

Note: Windows XP does not support formatting from within diskpart

You may use any tool or app for format process. However, to keep it simple, as well as to minimize risk of formatting macOS partition, it is recommended to simply use basic Windows inbuilt format utility.

  • To use it, to go "My Computer", right-click on the partition to which Windows will be installed, and select "Format".

Ensure to format to NTFS.

Parallels Desktop for Mac will complain of an error writing boot loader (MBR). This is OK and expected.

Marking partition as "active"

Problem

If you were to use WinNTSetup now and specify Bootdrive,
WinNTSetup 2-1 Inactive

Then you may notice that BOOT FLAG indicator is inactive (red).

It should otherwise be fixed by WinNTSetup. However, some builds of WinNTSetup do not appear to perform this change for the user. Luckily, the solution is simple and easy.

Solution - diskpart

  1. Run the following command-line tool,

    diskpart
    
  2. diskpart utility is interactive. Enter the command below to list volumes.

    list volume
    
  3. Select volume with future Windows installation on it. Replace # with the volume number for this volume,

    select volume #
    
  4. Set volume as active

    active
    

    Parallels Desktop for Mac will complain of an error writing boot loader (MBR). This is OK and expected.

  5. Exit diskpart

    exit
    

In the "WinNTSetup" steps below, BOOT PART check should now be green (passed).

WinNTSetup

  1. Start WinNTSetup.

  2. Ensure that BOOT PART indicator is active (green). If not, mark partition as "active" as described above.

  3. Begin configuring installation:

    • Select a top panel corresponding to your installation Windows release (e.g. Windows 7, not Windows 2000)
    • Select location to INSTALL.WIM file, within installation image. It is typically a large (2GB+) file within installation DVD. For example, if installation image is mounted to disk D:\, then the .WIM file in question may probably be found in,
      D:\Sources\Install.wim
      
    • For Boot Drive and Installation Drive locations, select partition (i.e. a drive letter) to which Windows will be installed.
    • In options below: Select desired Windows Edition
    • In options below: Check drive letter preassignment.
    • In options below: Select Mount Installation Drive to be C: (otherwise, Windows may later be found on D:)

    The resulting configuration should look like this, Early WinNTSetup v2

  4. Click on "Setup". You will proceed to the next window.

  5. In the Ready? window, observe both "Bootdrive" and "Installationdrive" being configured properly. Most importantly, ensure that for Bootsector option, Use bootsect.exe to update the boot code (default option) is selected, WinNTSetup - Ready?

  6. Finally, click "OK" and observe WinNTSetup begin its process.

  7. Toward completion of WinNTSetup operation, as WinNTSetup is Updating boot code, Parallels Desktop for Mac will complain of an error writing boot loader (MBR). This is OK and expected, WinNTSetup - boot code

    Note: WinNTSetup runs bootsect.exe at this point.

  8. Wait a bit more and observe WinNTSetup completing its process and informing that "Setup is done", WinNTSetup - Finish

  9. Once WinNTSetup is finished, close the program and perform a sanity check. Open WinNTSetup again and (as though you wanted to use it again) briefly go through configuration again. Once Bootdrive location is configured, ensure that all checkmarks are ticked and green, WinNTSetup - all green

The installation is largely complete. However, as can be inferred by errors writing boot loader, Mac will not boot to the second OS. There is no rapid way to rectify this, so you'll need to use the Mac OS recovery disk.

Stage 4 - Overwrite MBR

In Mac OS X production

Even though we previously opted to use "Boot Camp Partition", Parallels Desktop for Mac will create an .hdd folder with drive's intended MBR. This .hdd folder will be present once stage 3 is complete.

  1. Obtain the VM .hdd folder in
/Users/{{UserName}}/Documents/Parallels/{{VM name}}/

The resource will be several kilobytes.

  1. Copy this folder elsewhere (for example, to "Downloads" folder) and rename it to vm.hdd
  2. Backup this vm.hdd to USB #2.

Create Mac OS X recovery disk

  • Use TransMac (for .DMG and .toast) or any ImgBurn (for .toast) burn Mac OS X Recovery image to USB stick #1, if you haven't yet (see Save time!). This will take about half an hour.

In Mac OS X Recovery mode

  1. Attach USB stick #1 with Mac OS X recovery disk and USB stick #2 with vm.hdd to the Mac. Turn off/restart the Mac.
  2. Boot your Mac from recovery disk: hold Option key when booting and select "Mac OS X Install DVD".
  3. Open Disk Utility and take note of your installation drive ID and the volume that contains vm.hdd. Be prudent and write it down! For example, it may be that: /dev/disk0 is your Windows installation drive and /Volumes/USB2/ is your USB #2 with vm.hdd inside.
  4. While still in disk utility, unmount every partition of the installation drive, so that the drive is not busy.
  5. Open Terminal
    • 1/4: Sanity check: confirm your {{installation_drive}} by running,

      diskutil list
      
    • 2/4: Ensure USB #2's vm.hdd (and PhysicalMbr.hds inside of it) can be accessed by Mac OS X Recovery disk, by running the following commands,

      ls /Volumes/{{USB2}}
      ls /Volumes/{{USB2}}/vm.hdd
      cat /Volumes/{{USB2}}/vm.hdd/PhysicalMbr.hds
      

      ls returns directory listing, cat prints file contents

    • 3/4: Backup original MBR,

      dd if=/dev/{{installation_drive}} of=/Volumes/{{USB2}}/backupMBR bs=512 count=1
      
    • 4/4: Overwrite the installation boot sector,

      dd if=/Volumes/{{USB2}}/vm.hdd/PhysicalMbr.hds of=/dev/{{installation_drive}} bs=512 count=1
      
    • (Optional): Sanity-check. Run something like,

      head -n 5 /dev/{{installation_drive}}
      

      to confirm that the MBR was overwritten. Prior to EFI, You should see some Google-able strings used by Windows in the event of boot errors.

Note: Even if MBR was overwritten successfully and as required, you will not be able to use Startup Disk utility to immediately boot straight to Windows. The reason for this likely has to do with Mac boot loader code having to detect Windows installation first.

  1. Sanity check. Reboot to Mac OS X first, to ensure it still boots. If not, you may roll back (revert) changes by using the backupMBR file. Additionally, ensure that Mac OS X now detects another boot volume.
  2. Reboot again, holding Option key. Next, hold down the Control key while choosing the circular arrow below the "Windows" label.

Note: The "circular arrow" while holding Control key tells Mac boot code to load to Windows by default, reducing headache with subsequent reboots.

Stage 5 - Prepare Windows

Note: The steps in this section were partially derived from David Anderson's answer to an unrelated question.

Getting started with SysPrep Phase

  1. Boot into Windows. You should be greeted by "Set up Windows" window like this, Set up Windows

  2. Next, press the Ctrl+Shift+F3 keys to restart Windows in Audit mode. If you are using a wireless keyboard, then you may have to utilize the On-Screen Keyboard. See Ease of access on the lower left of the screen.

  3. (Suggestion) At this point, prohibiting your Mac access to the internet is generally a good idea, not so much because of telemetry, but because necessary software and updates are not yet installed.

  4. Turn off Windows Update service temporarily.

    • Using Start menu, launch services.msc.
    • Locate Windows Update.
    • Change "Startup type" to "Manual".
    • If the service is running, stop it using "Stop" button.
    • Close the "Services" window.
  5. If you prohibited your Mac access to the internet in an earlier step, you will now want to allow access. In other words, plug in the ethernet cable or connect by Wi-Fi.

  6. If you haven't yet in Save time! section, then obtain drivers and support files and save them on USB #2. Now, transfer them over to the Windows installation: Attach USB #2 with drivers and support files on it, and install them in the following order,

Boot Camp Drivers

Recall that for Windows 7, you need to use Boot Camp Support Software 4.0.4033. Install these drivers using the aforementioned package.

Note: Wi-Fi connection to the internet may not work the very first time Wi-Fi connectivity is attempted, even with correct credentials. If such problem occurs, simply disconnect from the Wi-Fi hotspot and connect back.

Required Windows Updates

Without required Windows Updates, further steps are not possible. Recall that there are 2 possible options, of which a least 1 must be picked,

  • OP's minimal set of 2 updates
  • David Anderson's "basically SP2"

Install either or both to proceed.

Update "Apple Software Update"

Recall that, as of 2023, you may extract updated Apple Software Update from either Boot Camp Support Software 5.1.5722 or extract it from iTunes.

Once it is obtained (ideally, on your spare Windows machine), install updated Apple Software Update on Windows 7 installation. The package will perform an update without any additional troubles.

Apple Software Update

  1. Start Apple Software Update.
  2. When executed the first time, even after an update above, "Apple Software Update" will ask to update "Apple Software Update" itself. Update Apple Software Update first, as the version that comes with Apple Software Update is outdated (~2020). You should uncheck all other updates and just update "Apple Software Update". Otherwise, you may get an error message. In my case, there were two updates of the "Apple Software Update" to download and install.
  3. Update everything else, until there is nothing to update.

For steps 2-3, feel free to reboot as many times as necessary.

(Optional) Further update Windows via Windows Update

  1. Open Control Panel -> Windows Update. On the side panel, click on "Change Settings". Select a desired update plan. For example, Check for updates but let me choose whether to download and install them. Click "OK".
  2. If Windows Update hasn't done so automatically, initiate the process by clicking on "Check for updates" on the side panel.
  3. Download and install Windows updates, including perhaps any optional updates. You may want to skip this step for now. However, skipping this step may result in some hardware drivers not being updated.

Sysprep utility

  1. From the Windows Start menu, restart the Mac. Once restarted, if the "System Preparation Tool" window is not displayed, run C:\Windows\System32\Sysprep\sysprep.exe. Then select "Shutdown" under the "Shutdown options",
    Sysprep

  2. Next, select "OK" to shutdown the Mac. At this point, you have completed the Windows installation process.

22
  • 1
    Feel free to let me know if you desire any other changes or improvements! @DavidAnderson
    – TAbdiukov
    Dec 2, 2023 at 4:48
  • I apologize for a delay. Re:first issue. This is more or less a common situation around "Abandonware" . I know that there are versions that don't require activation, but they may still break copyright. I'll try to get in touch with Parallels to see if they can provide a special version for this purpose. Similar issue previously occurred for IDA Pro product for ScummVM development process, and a permission was granted, as can be seen here -> here .
    – TAbdiukov
    Dec 9, 2023 at 17:15
  • Re:second issue. I think you are right! I appreciate you taking time and effort correcting me
    – TAbdiukov
    Dec 9, 2023 at 17:49
  • Re:third issue. I assume you are going off this answer's hotfixes (upvoted, by the way). It makes sense, however: 1)These hotfixes were tested on 64-bit release of Windows, whereas this guide targets 32-bit. It may or may not matter, Microsoft almost certainly patched the same logic, but because 32-bit and 64-bit hotfixes are not cross-compatible, it'd be great to test this out and 2)because the SHA-2 problem is well-documented, perhaps it's just that. Can you share the hash/link/filename of the Win7 ISO you used for testing? Thanks! –
    – TAbdiukov
    Dec 9, 2023 at 17:52
  • 1
    @DavidAnderson I got my hands on a mid-2010 Mac mini to test out this guide. I will amend some details of the guide, as I notice some errors. If you dislike some changes, please feel free to let me know
    – TAbdiukov
    Dec 26, 2023 at 4:02
0

TAbdiukov provided both the question and an answer. My answer is modeled after TAbdiukov's answer with the following major differences:

  • I used VirtualBox instead of Parallels.
  • The ONLY third party software used is VirtualBox.
  • VirtualBox is a free product. Parallels no longer offers free trials for versions compatible with Snow Leopard.
  • Unlike Parallels, VirtualBox does not require an activation key. Parallels no longer sells activation keys for versions compatible with Snow Leopard.

My Test Environment

I do not have a 2010 Mac mini. I do not have a version of Parallels old enough to be used for testing. I substituted the following.

  • A 2007 iMac with 4 GB of memory. Snow Leopard (64 bit) 10.6.8 was the host when VirtualBox 4.3.40 was used. The VirtualBox guests were 32 bit Windows 7 installers.
  • A 2013 iMac with 16 GB of memory. Catalina 10.15.7 was the host when Fusion Player 12.1.2 was used. The Fusion Player guests were Lion 10.7.5 and 32 bit Windows 7. Lion was used, because I did not have a Snow Leopard that would run in Fusion Player. Lion was the host when VirtualBox 4.3.40 was used. The VirtualBox guests were 32 bit Windows 7 installers. This nested use of virtual machines allowed me to virtualize both the host and guest.

My Version of TAbdiukov's Answer.

TAbdiukov's answer provides an example where Parallels Desktop 5 for Mac is used to install a 32 bit Windows 7. I do not have the required activation key to use this version of Parallels. Instead, I substituted VirtualBox 4.3.40, which allowed for the installation of Windows without having to use Sergei Strelec's WinPE or WinNTSetup. However, if one wished, installing using Sergei Strelec's WinPE or just WinNTSetup is possible with the use of VirtualBox.

Note that a virtual machine only is used to help install Windows. Once Windows is installed, the virtual machine is not needed and can be removed.

Note: According to Apple, Windows 7 is supposed to include Service Pack 1 (SP1). Although, some users here at Ask Different have reported success by using Windows 7 without SP1. This answer assumes SP1 is included.

What is needed (beyond the Mac with Snow Leopard installed):

  • A computer that can download and copy files to a flash drive.
  • 32 bit Windows 7 ISO file.
  • 16 GB or larger flash drive.
  • VirtualBox 4.3.40 which is compatible with at least 32/64 bit Windows XP through 32/64 bit Windows 10 guests. VirtualBox is free software where all current and previous releases are available for download.
  • All other files needed are free and can be downloaded from the internet. This answer requires no third party tools other than VirtualBox.
  • While you may not need a product key to install Windows 7, you probably will need a product key at some point after the software is installed in order to activate Windows 7.

What is not required:

  • DVDs
  • Optical drives

Below are the steps to follow.

  1. Make a partition for Windows 7.

    Use the Disk Utility application or diskutil command to create a partition at the end of the drive where Windows will be installed. Format the partition as MS-DOS, MS-DOS (FAT), or ExFAT with the BOOTCAMP volume name. Later, the format will be changed to NTFS.

    The table below shows the expected partitions to appear in the output from the diskutil list command for disk0. If you have a different partition arrangement from the those shown, then you will have to make the appropriate adjustments to this answer.

    Table: Expected disk0 Partitions

    # Type Format Identifier Description
    1 EFI MS-DOS (FAT32) disk0s1 Hidden EFI
    2 Apple_HFS Mac OS Extended (Journeled) disk0s2 Contains Mac OS X Snow Leopard
    3 Microsoft Basic Data MS-DOS (FAT32) or ExFAT disk0s3 Will Contain Windows 7
  2. FAT32 or ExFAT format an 8 GB or larger flash drive.

    If the Disk Utility application is used to erase the flash drive, then refer to the table below. If the ExFAT format is being used, then the Mac, where Windows is to be installed, needs Snow Leopard version Mac OS X 10.6.5 or later installed.

    Table: Choices for Disk Utility Flash Drive Erase

    Label Snow Leopard
    Mac OS X 10.6 or later
    Snow Leopard
    Mac OS X 10.6.5 or later
    Name WINSTALL WINSTALL
    Format MS-DOS (FAT) ExFAT
    Scheme Master Boot Record Master Boot Record
  3. Copy files to the flash drive.

    Here the assumption is made that a computer with a new enough operating system is being used to download the necessary files.

    Use the following sources.

    • Copy a 32 bit Windows 7 ISO file to the root folder on the WINSTALL volume. This volume is on the flash drive. Here, I used the file GSP1RMCPRXFRER_EN_DVD.ISO, which is a 32 bit Windows 7 SP1 installer ISO file downloaded from Internet Archive. FYI, I did not verify the authenticity of this file.
    • Create a folder named BootCamp on the root folder of the flash drive. Copy the Windows Support Software for 32 bit Windows 7 to this BootCamp folder. According to the Apple website Install Windows 7 on your Mac using Boot Camp, the version of the Windows Support Software for installing 32 bit Windows 7 on your Mac is Boot Camp Support Software 4.0.4033.
    • Download the Boot Camp Support Software 5.1.5722, then copy the file AppleSoftwareUpdate.msi in the BootCamp\Drivers\Apple folder of this download to the root folder on the WINSTALL volume. Next, copy the file AutoUnattend.xml in the root folder of this download to the root folder on the WINSTALL volume.
    • Download VirtualBox 4.3.40 for OS X hosts file VirtualBox-4.3.40-110317-OSX.dmg from the Download VirtualBox (Old Builds): VirtualBox 4.3 website. Copy this file to the root folder on the WINSTALL volume. VirtualBox 4.3.40 is documented to be compatible with at least 32/64 bit Windows XP through 32/64 bit Windows 10 guests.
    • Download the ZIP file containing the mywindows script from my GitHub Gist. From the download, extract a copy of the mywindows script to the root folder on the WINSTALL volume.
    • Goto the Microsoft Update Catalog and copy the files given in the following table to the root folder on the WINSTALL volume. Each file can be found by searching for the corresponding hotfix.

    Table: Hotfixes Available from Microsoft Update Catalog

    Hotfix Description File Name
    KB3020369 April 2015 servicing stack update for x86 Windows 7 windows6.1-kb3020369-x86_82e168117c23f7c479a97ee96c82af788d07452e.msu
    KB3125574 Convenience rollup update for x86 Windows 7 SP1 windows6.1-kb3125574-v4-x86_ba1ff5537312561795cc04db0b02fbb0a74b2cbd.msu
    KB4474419 SHA-2 code signing support update for x86 Windows 7: September 23, 2019 windows6.1-kb4474419-v3-x86_0f687d50402790f340087c576886501b3223bec6.msu
    KB4490628 Servicing stack update for x86 Windows 7 SP1: March 12, 2019 windows6.1-kb4490628-x86_3cdb3df55b9cd7ef7fcb24fc4e237ea287ad0992.msu
    KB5011649 Servicing stack update for x86 Windows 7 SP1: March 8, 2022 windows6.1-kb5011649-x86_fce83439d6e9707053b0db1a3eb21f5caedd2e7b.msu

    When finished, the USB flash drive should appear as follows.

    files

  4. Install VirtualBox and build a virtual machine.

    Move the flash drive to the Mac where Windows is to be installed. Open a Terminal application window and enter the following command. This will remove any extended attributes on the flash drive that might interfere with the installation of Windows.

    Note: The outputs from the mywindows script are given in the appendix of this answer.

    /bin/bash /Volumes/WINSTALL/mywindows clean
    

    Using the file VirtualBox-4.3.40-110317-OSX.dmg in the root folder on the WINSTALL volume, install VirtualBox 4.3.40. This volume resides on the USB flash drive.

    Execute the following commands to build the virtual machine named MyWindows. The command below changes the current directory to the root folder of the WINSTALL volume on the flash drive.

    cd /Volumes/WINSTALL
    

    The next command hybrid partitions internal drive where Windows is to be installed. This is done to ensure the partition where Windows is to be installed is the active partition and the partition type is set to 07.

    ./mywindows hybrid
    

    The next command creates a ~/VirtualBox\ VMs/support.iso ISO file containing any additional files needed that do not exist in the GSP1RMCPRXFRER_EN_DVD.ISO ISO file. In this case, the only file needed is AutoUnattend.xml in the /Volumes/WINSTALL folder. A copy of this file will be placed in the support.iso ISO file under the name MyAutoUnattend.xml. Renaming is necessary to prevent the Windows installer from automatically reading this file.

    ./mywindows iso
    

    The next command creates the virtual machine. The memory is set to 512 MB and the number of processors is set to 1. The memory will be sufficient enough to run the Windows 7 installer. Two virtual optical drives are added which contain virtual DVDs created from the GSP1RMCPRXFRER_EN_DVD.ISO and support.iso files. The location where Windows will be installed is the disk0s3 partition on the physical internal drive.

    ./mywindows create -i Windows7 -m 512 GSP1RMCPRXFRER_EN_DVD.ISO
    
  5. Install a BIOS bootable PE in the BOOTCAMP volume.

    Enter the command below to start the virtual machine. If the message Press any key to boot from CD or DVD. appears, press the space bar.

    ./mywindows start
    

    Note: At this point, the Mac is running from the in-memory PE, which was read from boot.wim file after booting from the GSP1RMCPRXFRER_EN_DVD volume on one of the virtual optical drives.

    When a display similar to the one shown below appears, make any necessary selections, then press the "Next" button.

    Initial display

    When a display similar to the one shown below appears, press the key combination shift+F10 to open a Command Prompt window.

    Second display

    Enter the following command to get the different letters assigned to the BOOTCAMP and support volumes. The letters should be C: and E:, respectively. If not, then make the appropriate substitutions when entering commands.

    wmic logicaldisk get description,name,volumename
    

    Enter the following command to NTFS format drive C:.

    format c: /v:BOOTCAMP /q
    

    Enter the next command to start installing Windows 7.

    setup /noreboot /unattend:e:\myautounattend.xml
    

    Proceed with the installation of Windows to the BOOTCAMP volume, until a display similar to the one shown below appears. Highlight the desired operating system, then select the "Next" button.

    Choose OS

    Proceed with the installation of Windows to the BOOTCAMP volume. When the Command Prompt windows to reappears, enter the following command to close the window.

    exit
    

    Next, select "Repair your computer". When a display similar to the one shown below appears, press the "Next >" button.

    System Recovery Options

    When a display similar to the one shown below appears, press the "Shut Down" button.

    Shut Down

  6. Update the internal drive MBR.

    Enter the command below to update the internal drive MBR boot code. This includes the bytes at offsets 0x000 through 0x1BD of the MBR.

    ./mywindows update
    

    At this point, you are done with the virtual machine.

  7. Finish Installing Windows 7.

    From the Startup Disk pane of the System Preferences application, select "Windows on BOOTCAMP", as shown below.

    Next, restart the Mac. Proceed with the Windows installation until a display similar to the one shown below appears.

    Note: At this point, use of an external wired mouse and/or keyboard may be temporarily required. The on–screen keyboard can also be temporarily substituted for an actual keyboard. To access the on–screen keyboard, select the "Ease of access" button shown in the lower left of the window in the image below.

    on-screen keyboard

    Note: With the installation of Windows versions newer than Windows 7, I might suggest temporarily prohibiting your Mac access to the internet, then restarting in Audit mode. However, with Windows 7 this is unnecessary, since the software will allow you to temporarily disable automatic updates.

    Proceed with the installation. When a display similar to the one shown below appears, select "Ask me later". This will temporarily disable automatic updates.

    Auto update

  8. Install additional software.

    Once the setup of Windows 7 is complete, execute the Boot Camp Installer Version 4.0 (Build 4033) by opening the setup application in the BootCamp folder on the WINSTALL volume. This volume resides on the USB flash drive.

    Note: If you are adapting these instructions to install a 64 bit Windows 7 (or newer), then the setup application should open automatically.

    The Boot Camp Installer will install additional drivers for your Mac's hardware. If a display similar to the one shown below appears, uncheck "Apple Software Update for Windows", then select the button "Install".

    Install Apple Software Update

    After the Boot Camp Installer has completed and the Mac has restarted, install the hotfixes in the root folder on the WINSTALL volume. This volume resides on the USB flash drive. These hotfixes are needed to get Apple Software Update and Windows Update to work. Install the hotfixes in the following order.

    windows6.1-kb3020369-x86_82e168117c23f7c479a97ee96c82af788d07452e.msu
    windows6.1-kb3125574-v4-x86_ba1ff5537312561795cc04db0b02fbb0a74b2cbd.msu
    windows6.1-kb4474419-v3-x86_0f687d50402790f340087c576886501b3223bec6.msu
    windows6.1-kb4490628-x86_3cdb3df55b9cd7ef7fcb24fc4e237ea287ad0992.msu
    windows6.1-kb5011649-x86_fce83439d6e9707053b0db1a3eb21f5caedd2e7b.msu
    

    Install Apple Software Update by opening the AppleSoftwareUpdate Windows installer package in the root folder on the WINSTALL volume. This volume resides on the USB flash drive. Afterwards, use the Apple Software Update application to get any new software available from Apple. Note the following:

    • You should install any updates to Apple Software Update first before installing other updates available from Apple.
    • You may need to download only, then manually install downloads.
    • You may need to copy any downloads before Apple Software Update deletes the downloads.
    • iTunes appears to be incompatible, so you may want to skip any iTunes updates.

    When finished, go to the Windows Update screen shown below and choose your settings, then download and install all currently available updates shown.

    Note: In previous versions of this answer, instructions were given to install Microsoft Edge. However, Microsoft Edge should now be installed automatically, if all available updates are installed. After Microsoft Edge is installed, you may wish to visit the Control Panel to set Microsoft Edge as default. In other words, use Microsoft Edge to open all file types and protocols it can open by default.


Clean Up

  • How to Remove the Virtual Machine

    From Mac OS X, enter the command given below in a Terminal application window.

    /Volumes/WINSTALL/mywindows remove
    
  • Uninstalling VirtualBox

    Since VirtualBox takes very little space, I would recommend not removing the application. However, if you wish to uninstall, then open the VirtualBox-4.3.40-110317-OSX.dmg file VirtualBox-4.3.40-110317-OSX.dmg in the root folder on the WINSTALL volume. This volume resides on the USB flash drive. Open the VirtualBox_Uninstall.tool file and follow the instructions to uninstall VirtualBox.

Other Possible Answers

  • If one wanted to install Windows 10 on a 2010 Mac mini, then the following might work. With Snow Leopard installed, create a new partition and install High Sierra for a Snow Leopard/High Sierra dual boot arrangement. This would update the firmware. Erase High Sierra. The firmware update would remain. There is a very good chance that one could use a different answer of mine (with perhaps some minor changes) to install Windows 10.
  • If my other answer worked for Windows 10, then a Windows 10 installer could be used to install Windows 7. This would mean the use of Parallels, VirtualBox or any other VM would be unnecessary. If the Mac mini is a used machine, then the High Sierra firmware update may have already been installed. One might want to copy the files from a mounted Windows 10 ISO to a ExFAT formatted flash drive and see if the 2010 Mac mini can EFI boot from this flash drive.

Appendix

The output given is typical. Your output might vary. Version 2.1.4 of mywindows was used to create the output.

Output from the /bin/bash /Volumes/WINSTALL/mywindows clean command.

$ # Enter the commands below to remove ._* files after merging the ._* files
$ # with corresponding native files.
$ dot_clean -f /Volumes/WINSTALL
$ find /Volumes/WINSTALL -type d -mindepth 1 -maxdepth 1 \! -name .Spotlight-V100 \! -name .TemporaryItems \! -name .Trashes -exec dot_clean {} +

***************
*** SUCCESS ***
***************

Output from the ./mywindows hybrid command.

mywindows hybrid: Since this verb requires elevated privileges, sudo is being used to execute the command as root.
Password:
mywindows hybrid: Using implicit device: BOOTCAMP
mywindows hybrid: gpt show: disk0: Suspicious MBR at sector 0
$ # Enter the commands below to hybrid partition the physical drive.
$ unset Input
$ declare "Input="
$ Input+="edit 1;ee;n;1;409639;"
$ Input+="edit 2;af;n;409640;976426672;"
$ Input+="edit 3;07;n;977098752;976424960;"
$ Input+="edit 4;0;"
$ Input+="flag 3;quit;y"
$ Input="${Input//;/$'\n'}"
$ sudo fdisk -ef /dev/zero /dev/disk0 <<<"$Input" >/dev/null
$ sudo fdisk /dev/disk0
Disk: /dev/disk0    geometry: 121601/255/63 [1953525168 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE    0   0   2 - 1023 254  63 [         1 -     409639] <Unknown ID>
 2: AF 1023 254  63 - 1023 254  63 [    409640 -  976426672] HFS+        
*3: 07 1023 254  63 - 1023 254  63 [ 977098752 -  976424960] HPFS/QNX/AUX
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      

***************
*** SUCCESS ***
***************

Output from the ./mywindows iso command.

$ # Enter the commands below to create the ~/VirtualBox\ VMs/support.iso file.
$ mkdir -p ~/VirtualBox\ VMs
$ pushd ~/VirtualBox\ VMs
~/VirtualBox VMs /Volumes/WINSTALL
$ rm -rf support
$ mkdir support
$ echo "Copying files to make support.iso. This may take a while."
Copying files to make support.iso. This may take a while.
$ cp -RXn /Volumes/WINSTALL/AutoUnattend.xml support/MyAutoUnattend.xml
$ echo "Making support.iso"
Making support.iso
$ hdiutil makehybrid -udf -ov -o support.iso support
Creating hybrid image...
..............

$ rm -r support
$ popd
/Volumes/WINSTALL

***************
*** SUCCESS ***
***************

Output from the ./mywindows create -i Windows7 -m 512 GSP1RMCPRXFRER_EN_DVD.ISO command.

mywindows create: Using implicit device: BOOTCAMP
$ # Enter the commands below to create the virtual machine.
$ echo "Making sure the BOOTCAMP device is unmounted."
Making sure the BOOTCAMP device is unmounted.
$ diskutil info "BOOTCAMP" | grep -Eq "^ *Mounted: *No$" || diskutil unmount "BOOTCAMP"
Volume BOOTCAMP on disk0s3 unmounted
$ vboxmanage createvm --name MyWindows --ostype "Windows7" --register
Virtual machine 'MyWindows' is created and registered.
UUID: 2ced668d-b5e9-4e51-8c04-e85878455907
Settings file: '/Users/dma/VirtualBox VMs/MyWindows/MyWindows.vbox'
$ echo "Configuring virtual machine hardware."
Configuring virtual machine hardware.
$ vboxmanage modifyvm MyWindows --memory "512" --cpus "1" --vram "32" --mouse usbtablet --ioapic on --pae on
$ echo "Adding virtual DVDs to the virtual machine."
Adding virtual DVDs to the virtual machine.
$ VBoxManage storagectl MyWindows --name IDE --add ide --controller PIIX4       
$ # Primary Master
$ VBoxManage storageattach MyWindows --storagectl IDE --port 0 --device 0 --type dvddrive --medium "GSP1RMCPRXFRER_EN_DVD.ISO"
$ # Secondary Master
$ VBoxManage storageattach MyWindows --storagectl IDE --port 1 --device 0 --type dvddrive --medium "$HOME/VirtualBox VMs/support.iso"
$ echo "Added partition containing the BOOTCAMP device to the virtual machine."
Added partition containing the BOOTCAMP device to the virtual machine.
$ vboxmanage storagectl MyWindows --name SATA --add sata --controller IntelAhci --portcount 1 --hostiocache on
$ pushd "$HOME/VirtualBox VMs/MyWindows"
~/VirtualBox VMs/MyWindows /Volumes/WINSTALL
$ sudo vboxmanage internalcommands createrawvmdk -filename bootcamp.vmdk -rawdisk "/dev/disk0" -partitions "3"
RAW host disk access VMDK file bootcamp.vmdk created successfully.
$ sudo chown "$USER" bootcamp*.vmdk
$ [[ $(stat -f '%Lp' "/dev/disk0s3") == 666 ]] || sudo chmod 666 "/dev/disk0s3"
$ vboxmanage closemedium disk bootcamp.vmdk
$ vboxmanage storageattach MyWindows --storagectl SATA --port 0 --device 0 --type hdd --medium bootcamp.vmdk
$ popd
/Volumes/WINSTALL

***************
*** SUCCESS ***
***************

Output from the ./mywindows start command.

mywindows start: Using implicit device: BOOTCAMP
$ # Enter the commands below to start the virtual machine.
$ echo "Making sure the BOOTCAMP device is unmounted."
Making sure the BOOTCAMP device is unmounted.
$ diskutil info "BOOTCAMP" | grep -Eq "^ *Mounted: *No$" || diskutil unmount "BOOTCAMP"
$ [[ $(stat -f '%Lp' "/dev/disk0s3") == 666 ]] || sudo chmod 666 "/dev/disk0s3"
$ VBoxManage setextradata global GUI/SuppressMessages remindAboutAutoCapture,remindAboutMouseIntegration
$ echo "Starting virtual machine."
Starting virtual machine.
$ vboxmanage startvm MyWindows
Waiting for VM "MyWindows" to power on...
VM "MyWindows" has been successfully started.

***************
*** SUCCESS ***
***************

Output from the ./mywindows update command.

mywindows update: Using implicit device: BOOTCAMP
$ # Enter the command below to update the physical MBR boot code.
$ sudo fdisk -uyf ~/VirtualBox\ VMs/MyWindows/bootcamp-pt.vmdk /dev/disk0
$ # Enter the commands below to make sure the device is mounted.
$ echo "Making sure the BOOTCAMP device is mounted."
Making sure the BOOTCAMP device is mounted.
$ diskutil info "BOOTCAMP" | grep -Eq "^ *Mounted: *Yes$" || diskutil mount "BOOTCAMP"
Volume BOOTCAMP on BOOTCAMP mounted

***************
*** SUCCESS ***
***************

Output from the /Volumes/WINSTALL/mywindows remove command.

mywindows remove: Using implicit device: BOOTCAMP
$ # Enter the command below to remove the "~/VirtualBox VMs/support.iso" file.
$ rm -f ~/VirtualBox\ VMs/support.iso
$ # Enter the commands below to remove the virtual machine.
$ ! VBoxManage list vms | grep '"MyWindows"' || VBoxManage unregistervm MyWindows
"MyWindows" {2ced668d-b5e9-4e51-8c04-e85878455907}
$ mkdir -p ~/VirtualBox\ VMs 
$ pushd ~/VirtualBox\ VMs
~/VirtualBox VMs ~
$ rm -rf MyWindows
$ popd
~
$ [[ $(stat -f '%Lp' "/dev/disk0s3") == 640 ]] || sudo chmod 640 "/dev/disk0s3"
$ echo "Making sure the BOOTCAMP device is mounted."
Making sure the BOOTCAMP device is mounted.
$ diskutil info "BOOTCAMP" | grep -Eq "^ *Mounted: *Yes$" || diskutil mount "BOOTCAMP"

***************
*** SUCCESS ***
***************

Other References

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .