When migrating Windows between different hardware or hard drives, Windows may start up with a INACCESSIBLE_BOOT_DEVICE error. This error is caused by the lack of the correct mass storage device driver. To resolve this issue, the correct mass storage device driver can be injected into Windows. This document outlines what is needed to inject the correct mass storage driver into Windows.

What is needed

  1. USB Flash drive (8 GB or larger recommended)
  2. Windows Installer ISO for Windows 10
  3. Boot Camp drivers

Overview

In order to resolve the INACCESSIBLE_BOOT_DEVICE issue and successfully boot Windows, a recovery USB flash drive must be created. Once created, the Mac will boot into the installer and a command line interface will be used to inject the correct drivers into Windows.

Preparation

All the preparation is done in macOS on the Mac that is having an issue booting Windows. It is important to use this Mac since it will be used to identify the correct Windows drivers.

USB Flash Drive

The USB Flash drive must be formatted as exFAT.

  1. Insert an 8GB or larger flash drive into a USB port on the Mac
  2. In Disk Utility, format the Flash drive as exFAT. Quit Disk Utility after this operation completes.

Boot Camp Driver

Open Boot Camp Assistant in the Utilities folder, and download the current Windows Support Software from the Action menu. Save the Windows Support Software to your desktop or other location, but do not save directly to the USB Flash Drive.

Windows Install Media

Download the current install media from the Microsoft website. Windows is not going to be installed, but the install media will give access to the command line tools in Windows. Select the version of Windows that is closes to the version of Windows installed on the Mac (Windows 8, Windows 10). It does not matter what edition of Windows is used since Windows is not going to be installed.

Create Recovery USB Flash Drive

To create the USB Flash drive, follow these steps:

  1. Mount the Windows ISO that was downloaded from Microsoft. To mount the ISO, double click on the ISO in the Finder.
  2. Drag all the files and folders from the mounted ISO to the USB Flash Drive.
  3. Drag the contents of the Windows Support Software to the USB Flash Drive.

Once the Flash drive has been created, it should look like this:

The $WinPEDriver$ folder is important for 2 reasons: First, the $WinPEDriver$ folder contains the drivers for Windows to boot successfully from the USB Flash drive. Second, these are the drivers that will be injected into Windows that has the INACCESSIBLE_BOOT_DEVICE error.

Boot from the USB Flash drive

To inject the drivers, the Mac must be booted from the USB Flash drive.

  1. Insert the USB Flash drive into an available USB port on the Mac
  2. Reboot while holding the option key.
  3. Select EFI volume in the startup selector.

Inject drivers

Once booted from the USB Flash drive, the correct Windows drivers can be injected into the version of Windows that is experiencing the INACCESSIBLE_BOOT_DEVICE error.

  1. Press fn-shift-f10 (or just shift-f10 depending on your keyboard) to open the Windows command line interface.
  2. Typically, the USB Flash drive is assigned C: and the internal drive is assigned D: when booted from the USB Flash Drive.  Verify drive lettering by entering in these commands and verifying correct driver letter assignment. If the drive letters are different, adjust the dism command below to use the correct lettering.
    dir c:
    
    dir d:
  3. Inject Windows drivers by running the following command:
    dism /Image:D:\ /Add-Driver /driver:c:\$WinPEDriver$ /recurse

You should see output similar to this:

X:\Sources>dism /Image:d:\ /Add-Driver /driver:c:\$WinPEDriver$ /recurse

Deployment Image Servicing and Management tool
Version: 10.0.17134.1

Image Version: 10.0.16299.125

Searching for driver packages to install...
There was a problem opening the INF file. d:$WinPEDriver$\IntelHDGraphics64\autorun.inf Error: 0xE0000100.
Found 16 driver package(s) to install.
Installing 1 of 16 - c:$WinPEDriver$\AppleBluetoothBroadcom64\AppleBTBC.inf: The driver package was successfully installed.
Installing 2 of 16 - c:$WinPEDriver$\AppleSPIDevice\AppleSPIDevice.inf: The driver package was successfully installed.
Installing 3 of 16 - c:$WinPEDriver$\AppleSPIKeyboard\AppleSPIKeyboard.inf: The driver package was successfully installed.
Installing 4 of 16 - c:$WinPEDriver$\AppleSPITrackpad\AppleSPITrackpad.inf: The driver package was successfully installed.
Installing 5 of 16 - c:$WinPEDriver$\AppleSSD64\AppleSSD.inf: The driver package was successfully installed.
Installing 6 of 16 - c:$WinPEDriver$\IntelHDGraphics64\DisplayAudio\6.16\IntcDAud.inf: The driver package was successfully installed.
Installing 7 of 16 - c:$WinPEDriver$\IntelHDGraphics64\DisplayAudio\8.20\IntcDAud.inf: The driver package was successfully installed.
Installing 8 of 16 - c:$WinPEDriver$\IntelHDGraphics64\Graphics\igdlh64.inf: The driver package was successfully installed.
Installing 9 of 16 - c:$WinPEDriver$\SerialIO\iaLPSS_GPIO.inf: The driver package was successfully installed.
Installing 10 of 16 - c:$WinPEDriver$\SerialIO\iaLPSS_I2C.inf: The driver package was successfully installed.
Installing 11 of 16 - c:$WinPEDriver$\SerialIO\iaLPSS_SPI.inf: The driver package was successfully installed.
Installing 12 of 16 - c:$WinPEDriver$\SerialIO\iaLPSS_UART2.inf: The driver package was successfully installed.
Installing 13 of 16 - c:$WinPEDriver$\SerialIO\iaLPSS2_GPIO2_SKL.inf: The driver package was successfully installed.
Installing 14 of 16 - c:$WinPEDriver$\SerialIO\iaLPSS2_I2C_SKL.inf: The driver package was successfully installed.
Installing 15 of 16 - c:$WinPEDriver$\SerialIO\iaLPSS2_SPI_SKL.inf: The driver package was successfully installed.
Installing 16 of 16 - c:$WinPEDriver$\SerialIO\iaLPSS2_UART2_SKL.inf: The driver package was successfully installed.
The operation completed successfully.

Once completed, shut down the Mac, remove the USB Flash drive, and boot into Windows.