Thursday, August 30, 2018

How to resolve Windows 10 IoT core provisioning file flash failure

Recently I checked Windows 10 IoT core on Raspberry Pi 3 B+ board. While flashing this operating system using Windows 10 IoT dashboard I got "Failed to write provisioning file to the microsd card" error. I tried several options in dashboard UI but I got this error continuously.

After some google search I found a forum in Microsoft MSDN saying that this issue happen due to poor or slow speed SD cards. The SD card which I used previously is Kingston 16GB class 4 SDHC memory card. Later by following the site I flash this image into new class 10 SD cards and SDXC cards but repeatedly I got this same errors.

After couple of hours of digging I fix this issue by following the steps below:
  1. Open Windows 10 IoT core dashboard and try to install the OS image. 
  2. If you got "Failed to write provisioning file to the microsd card" error, close the Windows 10 IoT core dashboard.
  3. Open C:\Users\USER-NAME\AppData\Local\Temp\RPi2\msi\msicontent\Microsoft IoT\FFU\RaspberryPi2\ directory and make sure that the appropriate FFU file is located in that location. In my case FFU file is "Flash.ffu". If you can't locate the FFU files try to search the C:\Users\USER-NAME\AppData\Local\Temp\RPi2\msi\msicontent\Microsoft IoT\FFU directories.
  4. Open command prompt with administrative privilagues.
  5. Type "diskpart" and in the diskpart prompt type "list disk".
  6. Identify the SD card and it's disk number. In my system SD card is mapped to disk #1.
  7. Close diskpart prompt by issuing "exit" command.
  8. Now type this following command: "C:\WINDOWS\system32\dism.exe" /Apply-Image /ApplyDrive:\\.\PHYSICALDRIVE1 /SkipPlatformCheck /ImageFile:"C:\Users\USER-NAME\AppData\Local\Temp\RPi2\msi\msicontent\Microsoft IoT\FFU\RaspberryPi2\Flash.ffu". In this command be sure to replace PHYSICALDRIVE1 with the value you found in step 6. For example if the disk #2 is mapped as SD card then replace PHYSICALDRIVE1 to PHYSICALDRIVE2.
Once I flash my SD card(s) with above steps Windows 10 IoT core start successfully in Raspberry Pi 3 boards. Also I checked this with class 4, class 6 SD cards and operating system flashed successfully on all devices.