David Cumberland

(Photographer && Programmer)

Bootable Windows, on Mac

via an external SSD Drive (USB-C)

One of the biggest annoyances since upgrading to macOS Catalina is that most of my steam games aren’t compatible with the current version of the operating system. Why’s that? Apple have dropped support for the 32 bit applications, and have also removed them from the App Store.

Some games fall under this problem. I was looking to boot up some Sim City 2013 (now legacy) or City Skylines and to my surprise (not really), the developers have not updated these games to support the now 64 bit operating system. Their solution? Boot up an older version of the macOS and run it on a virtual machine or through bootcamp.

I only have a Mac Book Pro with 256 GB SSD storage, so I can’t exactly partition my drive to allow for Windows or an older version of macOS to be running on the same disk. There are some pretty large programs in the Adobe suite that I need installed. So I decided to go out and buy one of these bad bois. SanDisk 500GB SSD USB-C. It has the storage and speed that you need for gaming or running a whole new operating system.

I admit it did take a few attempts to really get it working, until I stumbled on some notes I compile from various sites and documentation (remember kids, always RTFM). The end result, an external drive you can throw in your bag and plug it in when wanting to boot into Windows. When you’re done, shut down, unplug and turn it back on to see your mac in all it’s glorious… glory.

What you Need if you’re on a Mac

  • External USB Hard Drive (4GB or more), must be bootable
  • Copy of Windows 10 (thanks Microsoft)
  • VirtualBox
  • Wired Keyboard/Mouse, yes, even on the MacBooks
  • sudo (or root) access on your machine
  • A spare 1-2 Hours

Prepare

First thing’s first. Wipe the External Hard Drive (extHDD). I shouldn’t have to remind you that erasing or formatting the extHDD will result in your data being deleted that is currently on that drive, because you’re an intelligent person.

To do this, open up Disk Utilities, find your drive. If it’s not showing, just click on the view button top left, and select show all devices. Erase and format this drive to MS-DOS (FAT) with the Master Boot Record as the Scheme. Call it what you want. I called mine ExtWIN. Now, Erase!

Bootcamp

You only need Boot Camp to grab some support software for Windows to recognise your Mac’s hardware. Have a spare USB Flash drive ready, saves a bit of headache later.

Open Boot Camp Assistant, click Continue, then select Download the latest Windows support software from Apple, make sure the rest are unchecked, you don’t want to me messing around with partitioning here. Click continue.

Select the device where you want to save it, this is where the spare USB Flash Drive comes in handy. You may need to give it Admin powers, so get ready to type in your password, don’t worry, it’s all good, it just wants to change some permissions on the Flash Drive. You’ll get the confirmation, and now you’re ready for the next step!

Virtual Box

Time to use VirtualBox to install Windows, this is by far the easiest and quickest method. Hands up who likes the VirtualBox Interface? Don’t worry if you didn’t raise your hand, and don’t panic if you did, because we’re going to be using the glorious terminal to get the job done! It’s easy, bare with me. Timing is key for this part.

Open terming and run the following command, which should result in something like below. Now we know it’s disk2s1 for the next few steps. Make sure you get it right, you don’t want to erase anything you need! I would actually suggest to ensure that everything us unplugged except the drive to ensure no confusion.

$ diskutil list

/dev/disk2 (external, physical):
   #:   TYPE NAME             SIZE       IDENTIFIER
   [...]
   2:  DOS_FAT_32 ExtWIN10    231.5 GB   disk2s1

Great, let’s now unmount this drive. Drag it to the trash or unmount via the Disk Utilities App. But keep the drive physically connected, it’s time to write to it.

Here’s where it gets serious. We now need to let VirtualBox know where to find the disk for the installation. That’s correct, VirtualBox can in fact install to a drive, but we need to do this via the terminal. Remember your disk number?

sudo VBoxManage internalcommands createrawvmdk \
-filename "win10bootcamp.vmdk" \
-rawdisk /dev/disk2

You may see a win10bootcamp.vmdk file appear in your home directory, that’s cool, it worked.

Install Windows

Before you do anything! We have to open up VirtualBox with elevated privileges! Why? Because we need to write to the disk, but a normal user cannot do this.

sudo /Applications/VirtualBox.app/Contents/MacOS/VirtualBox

To start the process, follow the steps (I’m not going into great detail, should be easy to figure it out):

  • Click New (should be in the toolbar)
  • Enter a name, Probably “Windows 10”, “Win10”, or “Windoze”
  • Ensure Microsoft Windows is selected
  • Version should be Windows 10 (64-bit)
  • Continue and Accept any default size and memory it has suggested (we don’t have to worry about that)
  • On the Hard Disk screen, select “Use an existing virtual hard disk file” and some new options appear
  • Click the folder icon next to the drop down.
  • Locate the file that was created earlier in your home directory, Open and Create

Windows 10 should be ready now, but before you go ahead and power it on, it needs to know where the iso file is. Click on settings, storage and find the CD/DVD icon )called Optical Storage), then in the Attributes, click the CD/DVD icon and locate the Windows 10 iso file we downloaded from Microsoft earlier.

Now we can click start.

Do all the normal things, language agree to any terms that you didn’t read. I do not condone this sort of behaviour, but honestly…

Within the installation, go through to Custom: Install Windows Only (Advanced) and you’ll have some options on how to install. Also note that if you want to split the drive, we do this last, so ensure the drive is FULLY formatted with NTSF. Windows 10 does not accept MS-DOS (FAT) as an appropriate format (incompatible). Then continue on to the install screen.

SUPER DUPER IMPORTANT

Get into the installing screen (copy windows, getting files ready, etc) and wait for that. Once it says “Windows needs to restart”, POWER OFF THE MACHINE, by clicking that exact option from the list of options provided when clicking the close button. Do not let it reboot! If you do, GOTO: Prepare, and start all over again.

Windows has now installed a brand new boot environment ready to be triggered and finish installing Windows on that drive! Let’s now complete the installation process.

Finish Setting up Windows

Turn off your mac, plug in your keyboard and mouse (you’ll need it once we enter the land of Windows - for now). it is assumed that you still have the hard drive plugged in? If not, strange, but plug that in too.

Turn on your mac, hold down the Option key to bring up the Start up Manager, select the Windows drive and like magic, Windows will boot from the external drive! Finish the Windows installation (if it restarts again, hold down the option key again).

Once the install is done, plug in that spare USB and run the setup executable to install the drivers and other support software to get Windows talking to your Mac’s hardware.

Done! You should be able to use your Apple Wireless keyboard and Magic Mouse, and if you’re lucky to have the touch bar, that will be available too.

Bonus

I went one step further and partitioned my drive to 256/256 GB, one for Windows and one for MacOS so I can keep a scratch disk for Premier Pro. This is all handled through the Windows Disk Management software, just resize the NTFS and leave the unpartitioned as is, we’ll fix that up next time you’re back on Mac.

Now, the problem with having dual formats is that each time I plug it in, I’ll also mount my Windows volume too, which got old fast. To prevent this, you’ll need to know the UUID of the Windows volume and not be afraid to user terminal, run the following command and you’ll see the output, find the Volume UUID: and copy that set of alpha-numeric characters that follow. Mine is 62BD7B16-CD67-4EFF-69D8-CC7B314ABCD9.

$ diskutil info /Volumes/<ExtWIN10 Volume>
[...]
Volume UUID:  62BD7B16-CD67-4EFF-69D8-CC7B314ABCD9
[...]

Now change directory to etc (cd /etc) and run vifs in sudo

$ sudo vifs

Now paste in your UUID like below (replacing my large ID with yours). Not a Vim user? Just hit the letter a to start typing. When you’re done, press esc key, then type :wq and press enter.

UUID=62BD7B16-CD67-4EFF-69D8-CC7B314ABCD9 none ntfs r,noauto

Next time you plug it in, you won’t see that pesky Windows 10 Volume!