How to boot a Raspberry Pi from Windows

Copyright 2019 Herbert Hanewinkel, Neuried
 
06.2019

Remote booting Raspbian from Windows

The setup assume the following addresses. Adapt to your own numbers:

Windows IP address: 192.168.1.4
Router/Gateway IP address: 192.168.1.73
DNS Server IP address: 192.168.1.73
RPi IP address: 192.168.1.26

On Windows:
  1. Create a folder e.g. "c:\server\raspbian".
  2. Create a sub folder, "boot"
  3. Download a zipped Rasbian image, e.g. 2019-04-08-raspbian-stretch-lite.zip
  4. Use 7zip to extract the SD image.
  5. Use 7zip to open the SD image and extract "0.fat".
  6. Use 7zip to open the SD image and extract "1.img" to c:\server\raspbian.
  7. Use 7zip to open "0.fat" and extract the whole contents to folder "boot".
  8. In file "cmdline.txt" in folder "boot" from the line
In haneWIN NFS Server (1.2.43 and higher)
  1. Create a NFS server exports entry: c:\server\raspbian -name:raspbian -alldirs -umask:077 -sub:35 -maproot:0
  2. What the options do:
7zip can open "1.img" but it is in ext format and 7z does not handle symbolic links on extraction. We need the contents of "1.img" in the correct format for the NFS server:
  1. Boot the RPi with libreelec and login with ssh (setup description on previous page)
    1. Create two directories /var/raspbian and /var/nfs
    2. mount -t nfs 192.168.1.4:/raspbian /var/raspbian
      now we can access the image "1.img" in libreelec.
    3. Bind the image to a device:
      losetup /dev/loop1 /var/raspbian/1.img
    4. Mount the device:
      mount /dev/loop1 /var/nfs
      now we can access the contents of the image "1.img" in libreelec
    5. cp -a /var/nfs /var/raspbian
      (could take an hour depending on the downloaded Raspbian release. libreelec has no rsync and cp -a worked fine)
    6. Clean up:
      umount /var/raspbian and umount /var/nfs
      rmdir /var/raspbian and rmdir /var/nfs
In haneWIN DHCP Server
  1. Create a new DHCP server profile for clients with static IP addresses.
  2. Configure the profile
  1. In Preferences-TFTP set the TFTP Root Directory to: c:\server\raspbian\boot.
    dhcp tftp configuration
  2. Power on the RPi. The DHCP server should log a DHCP discover from a new device, e.g.

    DHCP  Discov. b8:27:eb:9e:75:f0 (0.0.0.0) vc "PXEClient:Arch:00000:UNDI:002001" if 192.168.1.4

  3. A matching entry should appear in the list of unknown clients. Move the entry to the list of static clients and assign it ip address 192.168.1.26 and the created profile.
    dhcp entry configuration
Restart the RPi. Now it should boot Raspbian from the net. Good luck.

www.haneWIN.net Home