Brand new Raspberry Pi 2

Install Windows 10 IoT from Windows 7

Posted on Posted in Guide, IoT

I was so excited when I first bought my Raspberry Pi 2 in February and even more excited when I read that it would support Windows 10. That excitement quickly faded when I learned that a version of Windows 10 IoT (as it is called) would only be available later this year. I put my Raspberry Pi 2 away for when I would have time for it again.

Unfortunately when I did, you needed Windows 10 on your pc to install it onto the Raspberry Pi 2. After some searching the dism.exe tool method workaround found here didn’t work for me. I then found the very handy guide (no longer available) that almost made it work, but I had to tinker some more to make it work and here are the steps that I followed.

You will need:

  • PC running Windows 7
  • Raspberry Pi 2
  • Daemon Tools from here
  • flash.ffu from here
  • imgmount from xda-developers, download here
  • Winimage from here

Getting flash.ffu

The flash.ffu file is the file containing Windows 10 IoT.

The file downloaded above is an .iso file that you need to mount with something like Daemon Tools if you don’t already have it. Once mounted, run the .msi file on it. Once the installation is complete the flash.ffu file should be located C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2.

Convert flash.ffu into VHD

Copy the flash.ffu file to the folder where you have the imgmount tool. Imgmount will convert the flash.ffu to a Virtual Hard Drive (VHD) and mount it automatically. To do this follow these steps:

  1. Run command prompt in administrator mode. Press the Windows button on your keyboard and typing “cmd”. Right click on cmd.exe and Run as Administrator.
  2. Navigate to where you have the imgmount and flash.ffu files located.
  3. Once you are in the correct folder type “imgmount.exe flash.ffu”. You should see the following:cmd running imgmount flash.ffu
  4. Close the command prompt and open Computer Management (Right-click on My Computer and select Manage), then click on Disk Management in the left pane.
  5. You’ll see several volumes that don’t have drive letters associated with them and in the bottom pane there will be a disk with all these volumes on it, like this:Mounted flash.ffu in Disk Management tool
  6. Right-click on the disk (in my case Disk 5) in the bottom pane and select Detach VHD. You should see the following dialogue box. Note the location of the file. Fetch it and copy it to the folder where the flash.ffu and imgmount tool is kept.Detach flash.ffu as VHD

Clone VHD to MicroSD

Now that you have the VHD, you are ready to clone it to a MicroSD card. Install and run Winimage as administrator.

Note: I realised that winimage will only be a 30-day trial version. I tried using Win32DiskImager, but that only resulted in a single raw partition on the SD card.

  1. In Winimage, click on the Disk menu and select Restore Virtual Had Disk image on physical drive.
  2. Click OK and select the VHD file.

Once the process is complete you have Windows 10 IoT on MicroSD card ready to use in your Raspberry Pi 2!

Let me know how it goes and what project you’ll be undertaking!



4 thoughts on “Install Windows 10 IoT from Windows 7

  1. Hi, I’ve followed all your instructions but in the last step, when I select the VHD file and the drive on which I want to add it, Winimage doesn’t do anything and nothing happens with the drive in regards to its content. Any idea why?

  2. Actually, I figured it out, it was mostly my mistake. It seems that winimage isn’t able to process the file while it is mounted. But despite that, when I boot up the RPI2, nothing happens.

  3. You forgot to mention that it takes a bit longer than expected, for the boot to complete :)). Works fine, it’s the only tutorial which worked for me.

  4. Hi, very detailed steps, did not encounter any hickups with setting up the IoT on the SD Card,

    How ever, when I plugged the SD Card into my Pi 2 B the green light flashes 7 times indicating, it is missing the kernel.img file,

    any idea on how to solve this annoying issue ?


Comments are closed.