Boot Camp on an external drive

Intro: my path to Boot Camp

I tend to prefer separate devices to perform certain tasks, and when it came to reacquaint myself with the Windows platform after many years ignoring it completely, instead of going the virtualisation route, I opted for acquiring a couple of vintage ThinkPad laptops; initially a T61, followed by a T400 (now a Windows 8.1 machine), and an X240, my Windows 10 machine.

For those who have noticed my increasing criticism towards Apple in recent years, my interest in Windows may seem connected to that dissatisfaction, but this is true only in part, a very small part. I arrived to desktop Windows via mobile Windows — my surprisingly satisfactory explorations with Windows Phone 8.1 and Windows 10 Mobile in 2017–2018. But I’m also very interested in what Microsoft has in stock for the Surface line, with the Neo and Duo devices coming later this year. Ultimately, as I often reiterated as of late, today in tech we should keep our options open, and being proficient in more than one platform can only be beneficial.

Then there’s gaming, another interest of mine that has stayed dormant for a while, but was awakened in recent times due to the surprising amount of good-quality triple‑A games. Unfortunately, that often means Windows-only games.

My most powerful Windows machine is the 2014 ThinkPad X240, which is roughly equivalent in specs to a MacBook Air of the same vintage. Which means it definitely isn’t a gaming machine. While several indie titles run surprisingly okay, the more demanding stuff is simply unplayable.

In the end it was either buying a dedicated gaming laptop, or turning my 2017 iMac 21.5‑inch 4K into a Windows gaming machine. And while it’s not as powerful as the most recent PC offerings, it still has respectable specs to run more demanding titles. So, for the first time since Apple introduced it in 2006, I took a good look at Boot Camp.

I was disappointed in finding how, 14 years after, Boot Camp still retains a certain inflexibility. I wanted to configure a separate Windows installation on an external SSD unit, but Boot Camp only lets you create a partition on the Mac’s internal drive. I didn’t want that because, a) it seemed a bit too disruptive an option, given that by now the internal drive of my iMac is 60% full; and b) my iMac’s internal drive isn’t an SSD or a Fusion Drive, just a regular 5400rpm hard drive, and I didn’t like the idea of stressing it too much with a Mac OS/Windows dual-boot setup.

So I started looking for solutions on the Web. And indeed, using an external drive with Boot Camp is possible, but all the methods I’ve found tend to be a bit convoluted.

The method I followed, with a few additional notes

The method that looked the most interesting to me, despite its length and many many steps, is the one outlined by OWC in their blog: Tech Tip: How to Use Boot Camp on an External Drive.

The procedure can be broken down into a few macro steps:

Download the Boot Camp Windows Support Software on a USB flash drive.

Obtain a licensed copy of Windows 10 on an ISO image or an install DVD.

Create a Windows 10 virtual machine and, through a Terminal trick, link the virtual disk of said machine to the physical external SSD you want to install Windows on.

Start the Windows 10 installation in the virtual machine, then finish the installation by restarting the Mac from the external drive.

Complete the Boot Camp configuration from within Windows by installing the Windows Support Software you previously copied on the USB flash drive.

Understanding the general logic behind the whole procedure, and being patient, are two important factors that will greatly help you achieve the goal.

Now, the method described in that article is fairly well written; but it was also written in May 2017, and as you can see in the many comments that have been accumulating ever since, it may not work as seamlessly as expected, especially if you’re doing this on recent Mac models.

After three unsuccessful attempts, this is what worked for me.

1. Eject, eject, eject

In step 4 of the Use VirtualBox to Install Windows on the External Drive section, the author writes:

Now that we know the disk identifier, we need to eject the disk so it’s no longer connected logically to the Mac (it will still be connected physically).

Now, as you follow the procedure, there will be operations you do in the virtual machine that will trigger a remount of the external drive. Keep an eye on the Desktop, and every time you see the external drive appear, eject it again. From this point onward, the external drive must never be mounted on the Desktop, otherwise the installation won’t work.

2. Quotation marks

In the section titled Use VirtualBox to Map the External Drive to a VirtualBox Disk, the Terminal command you issue to create the virtual disk is written as follows:

sudo VBoxManage internalcommands createrawvmdk -filename “bootcamp.vmdk” -rawdisk /dev/disk4

You should remove the quotation marks around the file name and type the command this way:

sudo VBoxManage internalcommands createrawvmdk -filename bootcamp.vmdk -rawdisk /dev/disk4

3. Enable EFI

The suggestion mentioned in the comments, to enable EFI in the virtual machine settings, is crucial. Especially if you’re doing this on a recent Mac model. I didn’t the first time, and when I got to the point where you reboot the Mac from the external drive, the external drive was not detected at boot. To enable EFI, you enter the Settings of the virtual machine, you click on the System tab, and then you click on the Enable EFI checkbox:

You must do this after the virtual machine is first created, and before you start it to begin the Windows installation from the ISO image.

4. More than formatting

There is a point you reach during the installation where you’re still in the virtual machine, the Windows Installer has just begun, and it’ll ask you where you want to install Windows. In the reference article, this happens in the Install Windows on Your External Drive Via VirtualBox section. I got to these steps…

3) Select the “Custom: Install Windows only (advanced)” option.

4) The Windows setup will display the currently available drives and partitions that Windows can be installed on. Because the external hard drive has been assigned to the VirtualBox machine, it is the only drive that will be listed.

5) When we used Disk Utility to format the drive, we chose MS-DOS (FAT), which is incompatible with Windows 10. We did this because Disk Utility can’t format with NTFS, but the Windows installer would recognize MS-DOS. All we need to do now is change the drive’s format to NTFS.

6) Select the drive, and then click the Format button.

…But after clicking the Format button, Windows was still telling me that it couldn’t install on the selected partition. After some trial and error, I found that the way to go was to select the (only) partition displayed, click Delete, then click New. Windows warned me that it may create additional partitions as needed by the system. I confirmed, and then Windows created four partitions, three rather small, and one being essentially the remaining 98% of the drive. I selected this large one, and at that point Windows happily proceeded with the installation.

5. Driver check-up

This bit might be subjective, and your mileage may vary, but after booting in Windows on the external drive, when Windows was running the setup assistant, I noticed that the wireless card of my iMac was not detected. The only ‘network’ Windows was seeing was the Ethernet port. I told Windows to proceed ‘without Internet connection’, and finished the initial setup.

Even after successfully installing the Boot Camp Windows Support Software from the USB flash drive, I still noticed I had no Internet connection and that the wireless card was not detected. When I opened the Device Manager on Windows to check what was up, in the devices tree I noticed a whole section of devices that had no driver installed (I’m going from memory here, as I didn’t take a screenshot, but I think Windows threw up an Error Code 28 when checking the device Properties).

What I did was simply to go into each problematic device, tell Windows to ‘Update the driver’ and point Windows to the directory WindowsSupport\$WinPEDriver$ in the USB flash drive with the Boot Camp Windows Support Software. Each time, Windows was intelligent enough to fetch the correct driver, and then everything worked as it should (Wi-Fi, Bluetooth, etc.)

6. Additional advice

I didn’t need to do this on my system, but I saw it mentioned a few times in the comments, and I think it’s worth noting:

If you have a Mac with the T2 Security Chip, you may need to enable External Boot and disable Secure Boot if it’s active, otherwise the Mac won’t detect the external Windows Boot Camp drive at startup. Follow the steps outlined in this Apple Support page to enter the Startup Security Utility, then select Allow booting from external media at the bottom of the window. If that’s not enough, you may also have to select No security under the Secure Boot section. In case you’re unsure whether your Mac has the T2 chip, check this other Apple Support page.

Some have reported that enabling Full Disk Access (a feature present in Mac OS 10.14 Mojave and higher) may help. I don’t know, since my iMac is still on Mac OS 10.13 High Sierra. But in case you have to do this, the procedure is neatly explained in this support page on the Avast website.

Final considerations

I’m aware that the guide on the OWC website plus my notes here above might make the whole process seem extremely complicated. And it certainly is convoluted. Maybe there’s even a simpler procedure I don’t know about. But for the most part, it’s the classic situation where the explanation is lengthier than what you actually have to do. But as I said above, if you break down the process into a few key parts, if you understand what each part does, and if you’re patient, everything should go well.

You don’t even need to do everything in a single session. After my initial, rushed attempts, I finally decided to slow down, and divided the work into three stages I then carried out in separate moments:

Initial formatting of the external SSD. Installation of the Boot Camp Windows Support Software on the USB flash drive. Download of the Windows 10 ISO image from Microsoft’s Software Download page.

Windows 10 virtual machine setup in VirtualBox and Windows installation up to the point where you have to shut down the VM and restart the Mac.

Final Windows installation after rebooting the Mac in the Windows Boot Camp external SSD.

As a general observation, this is what annoyed me the most: a) Why doesn’t Windows simply allow to perform an installation of the operating system on an external drive? Even if you try from a PC, the only option you’re given is to install Windows on the internal drive; b) Why doesn’t Boot Camp allow to perform a Windows installation on an external drive? It’s 2020, and we’re still stuck with byzantine procedures, rituals, and incantations whenever we want to do things slightly differently. Oh well.

As a final note, I’ll share a suggestion a dear friend of mine proposed as I was telling him about my Boot Camp frustrations. He said, Why don’t you first install Mac OS on the external SSD, reboot the Mac from the SSD, and then you configure Boot Camp from there?

I don’t know if this works, I haven’t tried, and maybe it’s worth a shot if you’re looking for a simpler way to do this. If this works, I don’t know if you’ll have to reboot your Mac twice to be able to restart in Windows, or if by restarting the Mac holding down the Alt key, the Mac will be able to detect the Windows partition on the external drive and boot directly into it.

Anyway, I hope all this will help. As I’m going to face a couple of very busy weeks, work-wise, I won’t be able to offer further assistance in case you encounter an issue with this procedure. Again, things should be fine if you’re patient and careful.