Lately I've been using Mikrotik routers because they're cheap, powerful, and fast. Most of them have either a USB or MicroSD slot, so you can add enough space to store network boot images right on the router.
I got most of the tips needed from these two articles, and combined them into this step by step guide:
- A Mikrotik device running RouterOS, login info, and SSH client
- A deployment computer: A computer with the Windows Assessment and Deployment Kit (Windows ADK) installed.
- A 1GB or larger USB drive or MicroSD card compatible with your Mikrotik router
First, let's make sure the USB drive can be detected and formatted on the Mikrotik device.
- Verify the disk is found with
/disk print
[admin@MikroTik] /disk> print
# NAME LABEL TYPE DISK FREE SIZE
0 disk1 NO NAME fat32 USB Flash Drive 3934.7MiB 7.5GiB
- Format it with
/disk format-drive
. If it's already mounted, you need to eject it first with/disk eject-drive
[admin@MikroTik] /disk> format-drive 0 file-system=fat32
failure: disk is being used, eject it first
[admin@MikroTik] /disk> /disk eject-drive 0
[admin@MikroTik] /disk> format-drive 0 file-system=fat32
formatted: 100%
- Now that it's formatted, go ahead and eject it with
/disk eject-drive #
then plug it into your Windows machine where you have the ADK installed.
Note: If you want more details on these steps, please see the original source Configure a PXE server to load Windows PE. These are copied from that article but adjusted to use a USB drive instead of a remote fileserver.
-
On the deployment computer, click Start, and type deployment.
-
Right-click Deployment and Imaging Tools Environment and then click Run as administrator. The Deployment and Imaging Tools Environment shortcut opens a Command Prompt window and automatically sets environment variables to point to all the necessary tools.
-
Run the following command to copy the base Windows PE files into a new folder. The script requires two arguments: hardware architecture (amd64) and destination location (a temporary folder - I used c:\winpe_amd64).
copype.cmd amd64 c:\winpe_amd64
The script creates the destination directory structure and copies all the necessary files for that architecture. In the previous example, the following directories are created:
C:\winpe_amd64 C:\winpe_amd64\fwfiles C:\winpe_amd64\media C:\winpe_amd64\mount
-
Mount the base Windows PE image (winpe.wim) to the \mount directory using the DISM tool. Mounting an image file unpacks the file contents into a folder so that you can make changes directly or by using tools such as DISM. See the following example.
cd \winpe_amd64 Dism /mount-image /imagefile:c:\winpe_amd64\media\sources\boot.wim /index:1 /mountdir:C:\winpe_amd64\mount
Verify that "The operation completed successfully" is displayed.
-
Make a folder on your USB drive or MicroSD card called "tftp". I will be using
e:\tftp
below.mkdir e:\tftp mkdir e:\tftp\boot
-
Copy the PXE boot files from the mounted directory to the \boot folder. For example:
copy c:\winpe_amd64\mount\windows\boot\pxe\*.* e:\tftp\boot\
-
Copy the boot.sdi file to the PXE/TFTP server.
copy C:\winpe_amd64\media\boot\boot.sdi e:\tftp\boot\
-
Copy the bootable Windows PE image (boot.wim) to the \boot folder.
copy C:\winpe_amd64\media\sources\boot.wim e:\tftp\boot\
-
(Optional) Copy true type fonts to the \boot folder
mkdir e:\tftp\boot\Fonts copy C:\winpe_amd64\media\Boot\Fonts e:\tftp\boot\Fonts\
-
Create a BCD store using bcdedit.exe:
bcdedit /createstore c:\winpe_amd64\bcd
-
Configure RAMDISK settings:
bcdedit /store c:\winpe_amd64\bcd /create {ramdiskoptions} /d "Ramdisk options" bcdedit /store c:\winpe_amd64\bcd /set {ramdiskoptions} ramdisksdidevice boot bcdedit /store c:\winpe_amd64\bcd /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi bcdedit /store c:\winpe_amd64\bcd /create /d "winpe boot image" /application osloader
The last command will return a GUID, for example:
The entry {d318e932-1717-11e7-9c5d-94659c579f96} was successfully created.
Copy this GUID to your clipboard, you will need it in the next step.
-
Create a new boot application entry for the Windows PE image:
Important replace the GUID in the first line below with your GUID.
```
SET GUID1="{d318e932-1717-11e7-9c5d-94659c579f96}"
bcdedit /store c:\winpe_amd64\bcd /set %GUID1% device ramdisk=[boot]\boot\boot.wim,{ramdiskoptions}
bcdedit /store c:\winpe_amd64\bcd /set %GUID1% path \windows\system32\winload.exe
bcdedit /store c:\winpe_amd64\bcd /set %GUID1% osdevice ramdisk=[boot]\boot\boot.wim,{ramdiskoptions}
bcdedit /store c:\winpe_amd64\bcd /set %GUID1% systemroot \windows
bcdedit /store c:\winpe_amd64\bcd /set %GUID1% detecthal Yes
bcdedit /store c:\winpe_amd64\bcd /set %GUID1% winpe Yes
```
-
Configure BOOTMGR settings:
bcdedit /store c:\winpe_amd64\bcd /create {bootmgr} /d "boot manager" bcdedit /store c:\winpe_amd64\bcd /set {bootmgr} timeout 30 bcdedit /store c:\winpe_amd64\bcd -displayorder %GUID1% -addlast
-
Copy the BCD file to your USB drive:
copy c:\winpe_amd64\bcd e:\tftp\bcd
You can view the BCD settings that have been configured using the command bcdedit /store <BCD file location> /enum all. See the following example. Note: Your GUID will be different than the one shown below.
C:\>bcdedit /store c:\winpe_amd64\bcd /enum all
Windows Boot Manager
--------------------
identifier {bootmgr}
description boot manager
displayorder {a4f89c62-2142-11e6-80b6-00155da04110}
timeout 30
Windows Boot Loader
-------------------
identifier {a4f89c62-2142-11e6-80b6-00155da04110}
device ramdisk=[boot]\boot\boot.wim,{ramdiskoptions}
description winpe boot image
osdevice ramdisk=[boot]\boot\boot.wim,{ramdiskoptions}
systemroot \Windows
detecthal Yes
winpe Yes
Setup Ramdisk Options
---------------------
identifier {ramdiskoptions}
description ramdisk options
ramdisksdidevice boot
ramdisksdipath \boot\boot.sdi
That's it for copying files! Now it's time to clean up and unmount the USB drive.
- Unmount the WIM
dism /unmount-wim /MountDir:C:\winpe_amd64\mount /discard
- (Optional) Clean up the WinPE temporary directory
If you don't plan to use or modify this WinPE image, clean it up to save space:
rmdir /s /q c:\winpe_amd64
- Eject the USB drive and move it back to the router
You're done with the steps on your PC!
-
Plug in the USB drive or MicroSD card
-
Find the new files with
/file print
Make sure all the boot and WinPE files are there. Here's a trimmed list showing them on my router. Since I'm using a USB drive they're prefixed with disk1/
:
[admin@MikroTik] /file> print
# NAME TYPE SIZE CREATION-TIME
...
6 disk1/tftp directory apr/01/2017 06:09:06
7 disk1/tftp/boot directory apr/01/2017 06:11:22
8 disk1/tftp/boot/abortpxe.com .com file 79 jul/15/2016 22:11:12
9 disk1/tftp/boot/bootmgr.exe .exe file 610.3KiB jul/15/2016 22:11:12
10 disk1/tftp/boot/hdlscom1.com .com file 25.1KiB jul/15/2016 22:11:12
11 disk1/tftp/boot/hdlscom1.n12 .n12 file 25.0KiB jul/15/2016 22:11:12
12 disk1/tftp/boot/hdlscom2.com .com file 25.1KiB jul/15/2016 22:11:12
13 disk1/tftp/boot/hdlscom2.n12 .n12 file 25.0KiB jul/15/2016 22:11:12
14 disk1/tftp/boot/pxeboot.com .com file 24.8KiB jul/15/2016 22:11:12
15 disk1/tftp/boot/pxeboot.n12 .n12 file 24.8KiB jul/15/2016 22:11:12
16 disk1/tftp/boot/WdsConfig.inf .inf file 2165 jul/15/2016 22:10:58
17 disk1/tftp/boot/wdsmgfw.efi .efi file 984.3KiB jul/15/2016 22:10:58
18 disk1/tftp/boot/wdsnbp.com .com file 30.1KiB jul/15/2016 22:11:12
19 disk1/tftp/boot/boot.sdi .sdi file 3096.0KiB may/25/2016 07:42:20
20 disk1/tftp/boot/boot.wim .wim file 212.4MiB apr/01/2017 06:06:44
21 disk1/tftp/boot/Fonts directory apr/01/2017 06:13:12
22 disk1/tftp/boot/Fonts/chs_boot.ttf .ttf file 3607.5KiB may/25/2016 07:28:06
23 disk1/tftp/boot/Fonts/cht_boot.ttf .ttf file 3785.9KiB may/25/2016 07:28:06
24 disk1/tftp/boot/Fonts/jpn_boot.ttf .ttf file 1937.7KiB may/25/2016 07:28:06
25 disk1/tftp/boot/Fonts/kor_boot.ttf .ttf file 2315.8KiB may/25/2016 07:28:06
26 disk1/tftp/boot/Fonts/malgunn_boot.ttf .ttf file 169.9KiB jul/14/2016 07:17:34
27 disk1/tftp/boot/Fonts/malgun_boot.ttf .ttf file 172.3KiB jul/14/2016 07:17:34
28 disk1/tftp/boot/Fonts/meiryon_boot.ttf .ttf file 139.4KiB jul/14/2016 07:17:34
29 disk1/tftp/boot/Fonts/meiryo_boot.ttf .ttf file 141.0KiB jul/14/2016 07:17:34
30 disk1/tftp/boot/Fonts/msjhn_boot.ttf .ttf file 157.5KiB jul/14/2016 07:17:34
31 disk1/tftp/boot/Fonts/msjh_boot.ttf .ttf file 159.5KiB jul/14/2016 07:17:34
32 disk1/tftp/boot/Fonts/msyhn_boot.ttf .ttf file 147.3KiB jul/14/2016 07:17:34
33 disk1/tftp/boot/Fonts/msyh_boot.ttf .ttf file 151.4KiB jul/14/2016 07:17:34
34 disk1/tftp/boot/Fonts/segmono_boot.ttf .ttf file 42.8KiB jul/14/2016 07:17:34
35 disk1/tftp/boot/Fonts/segoen_slboot.ttf .ttf file 82.9KiB jul/14/2016 07:17:34
36 disk1/tftp/boot/Fonts/segoe_slboot.ttf .ttf file 83.2KiB jul/14/2016 07:17:34
37 disk1/tftp/boot/Fonts/wgl4_boot.ttf .ttf file 46.3KiB may/25/2016 07:28:06
38 disk1/tftp/bcd file 12.0KiB apr/01/2017 06:17:36
...
Watch out for files over 32Mb such as boot.wim - you'll need to adjust the settings for them later.
- Find the IP subnet you want to boot from
Use /ip pool print
to list the IP address pools.
[admin@MikroTik] > /ip pool print
# NAME RANGES
0 dhcp 192.168.88.10-192.168.88.254
I only have one pool configured on this router, which is the subnet 192.168.88.0/24
. That address is needed when configuring the tftp server.
- Map the files in the tftp server
Each one of these files need to be mapped from a real path on the router such as disk1/tftp/bcd
to the request path for the network boot clients such as /bcd
.
Switch to the tftp server configuration context with /ip tftp
For each file, run add ip-addresses=<ip>/<subnet> real-filename=... req-filename=...
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/abortpxe.com req-filename=boot/abortpxe.com
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/bootmgr.exe req-filename=boot/bootmgr.exe
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/hdlscom1.com req-filename=boot/hdlscom1.com
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/hdlscom1.n12 req-filename=boot/hdlscom1.n12
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/hdlscom2.com req-filename=boot/hdlscom2.com
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/hdlscom2.n12 req-filename=boot/hdlscom2.n12
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/pxeboot.com req-filename=boot/pxeboot.com
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/pxeboot.n12 req-filename=boot/pxeboot.n12
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/WdsConfig.inf req-filename=boot/WdsConfig.inf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/wdsmgfw.efi req-filename=boot/wdsmgfw.efi
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/wdsnbp.com req-filename=boot/wdsnbp.com
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/boot.sdi req-filename=boot/boot.sdi
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/boot.wim req-filename=boot/boot.wim
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/chs_boot.ttf req-filename=boot/Fonts/chs_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/cht_boot.ttf req-filename=boot/Fonts/cht_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/jpn_boot.ttf req-filename=boot/Fonts/jpn_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/kor_boot.ttf req-filename=boot/Fonts/kor_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/malgunn_boot.ttf req-filename=boot/Fonts/malgunn_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/malgun_boot.ttf req-filename=boot/Fonts/malgun_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/meiryon_boot.ttf req-filename=boot/Fonts/meiryon_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/meiryo_boot.ttf req-filename=boot/Fonts/meiryo_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/msjhn_boot.ttf req-filename=boot/Fonts/msjhn_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/msjh_boot.ttf req-filename=boot/Fonts/msjh_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/msyhn_boot.ttf req-filename=boot/Fonts/msyhn_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/msyh_boot.ttf req-filename=boot/Fonts/msyh_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/segmono_boot.ttf req-filename=boot/Fonts/segmono_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/segoen_slboot.ttf req-filename=boot/Fonts/segoen_slboot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/segoe_slboot.ttf req-filename=boot/Fonts/segoe_slboot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/boot/Fonts/wgl4_boot.ttf req-filename=boot/Fonts/wgl4_boot.ttf
add ip-address=192.168.88.0/24 real-filename=disk1/tftp/bcd req-filename=bcd
Now, adjust the settings for any files > 32 MB and set allow-rollover=yes
. In this list, it's just boot.wim.
Get the file numbers with print
, then find boot.wim
in that list.
[admin@MikroTik] /ip tftp> print
Flags: X - disabled
# IP-ADDRESSES REQ-FILENAME REAL-FILENAME ALLOW READ-ONLY ALLOW-ROLLOVER HITS
0 192.168.88.0/24 boot/abortpxe.com disk1/tftp/boot/abo... yes yes no 0
1 192.168.88.0/24 boot/bootmgr.exe disk1/tftp/boot/boo... yes yes no 0
2 192.168.88.0/24 boot/hdlscom1.com disk1/tftp/boot/hdl... yes yes no 0
3 192.168.88.0/24 boot/hdlscom1.n12 disk1/tftp/boot/hdl... yes yes no 0
4 192.168.88.0/24 boot/hdlscom2.com disk1/tftp/boot/hdl... yes yes no 0
5 192.168.88.0/24 boot/hdlscom2.n12 disk1/tftp/boot/hdl... yes yes no 0
6 192.168.88.0/24 boot/pxeboot.com disk1/tftp/boot/pxe... yes yes no 0
7 192.168.88.0/24 boot/pxeboot.n12 disk1/tftp/boot/pxe... yes yes no 0
8 192.168.88.0/24 boot/WdsConfig.inf disk1/tftp/boot/Wds... yes yes no 0
9 192.168.88.0/24 boot/wdsmgfw.efi disk1/tftp/boot/wds... yes yes no 0
10 192.168.88.0/24 boot/wdsnbp.com disk1/tftp/boot/wds... yes yes no 0
11 192.168.88.0/24 boot/boot.sdi disk1/tftp/boot/boo... yes yes no 0
12 192.168.88.0/24 boot/boot.wim disk1/tftp/boot/boo... yes yes no 0
13 192.168.88.0/24 boot/Fonts/chs_boo... disk1/tftp/boot/Fon... yes yes no 0
14 192.168.88.0/24 boot/Fonts/cht_boo... disk1/tftp/boot/Fon... yes yes no 0
15 192.168.88.0/24 boot/Fonts/jpn_boo... disk1/tftp/boot/Fon... yes yes no 0
16 192.168.88.0/24 boot/Fonts/kor_boo... disk1/tftp/boot/Fon... yes yes no 0
17 192.168.88.0/24 boot/Fonts/malgunn... disk1/tftp/boot/Fon... yes yes no 0
18 192.168.88.0/24 boot/Fonts/malgun_... disk1/tftp/boot/Fon... yes yes no 0
19 192.168.88.0/24 boot/Fonts/meiryon... disk1/tftp/boot/Fon... yes yes no 0
20 192.168.88.0/24 boot/Fonts/meiryo_... disk1/tftp/boot/Fon... yes yes no 0
21 192.168.88.0/24 boot/Fonts/msjhn_b... disk1/tftp/boot/Fon... yes yes no 0
22 192.168.88.0/24 boot/Fonts/msjh_bo... disk1/tftp/boot/Fon... yes yes no 0
23 192.168.88.0/24 boot/Fonts/msyhn_b... disk1/tftp/boot/Fon... yes yes no 0
24 192.168.88.0/24 boot/Fonts/msyh_bo... disk1/tftp/boot/Fon... yes yes no 0
25 192.168.88.0/24 boot/Fonts/segmono... disk1/tftp/boot/Fon... yes yes no 0
26 192.168.88.0/24 boot/Fonts/segoen_... disk1/tftp/boot/Fon... yes yes no 0
27 192.168.88.0/24 boot/Fonts/segoe_s... disk1/tftp/boot/Fon... yes yes no 0
28 192.168.88.0/24 boot/Fonts/wgl4_bo... disk1/tftp/boot/Fon... yes yes no 0
29 192.168.88.0/24 bcd disk1/tftp/bcd yes yes no 0
Number 12 needs to be modified, so run set numbers=12 allow-rollover=yes
- Add boot options to DHCP server
Find the right DHCP configuration. Change to the DHCP config with /ip dhcp-server network
, then print
to see the settings
[admin@MikroTik] /ip> /ip dhcp-server network
[admin@MikroTik] /ip dhcp-server network> print
# ADDRESS GATEWAY DNS-SERVER WINS-SERVER DOMAIN
0 ;;; defconf
192.168.88.0/24 192.168.88.1
Add the new options with set <number> next-server=<router ip> boot-file-name=boot/pxeboot.n12
, then run print detail
again to check your settings
[admin@MikroTik] /ip dhcp-server network> set 0 boot-file-name=boot/pxeboot.n12 next-server=192.168.88.1
[admin@MikroTik] /ip dhcp-server network> print detail
0 ;;; defconf
address=192.168.88.0/24 gateway=192.168.88.1 dns-server="" wins-server="" ntp-server="" caps-manager=""
next-server=192.168.88.1 boot-file-name="boot/pxeboot.n12" dhcp-option=""
TODO's
- Change boot image to bootx64.efi?
copy C:\winpe_amd64\media\EFI\Boot\bootx64.efi e:\tftp bcdedit /store c:\winpe_amd64\bcd /set "{d318e932-1717-11e7-9c5d-94659c579f96}" path \windows\system32\boot\winload.efi copy c:\winpe_amd64\bcd e:\tftp\bcd
> - adjust BCD options to path \windows\system32\boot\winload.efi
> ```
C:\winpe_amd64>bcdedit /store c:\winpe_amd64\bcd /enum all
Windows Boot Manager
--------------------
identifier {bootmgr}
description boot manager
displayorder {d318e932-1717-11e7-9c5d-94659c579f96}
timeout 30
Windows Boot Loader
-------------------
identifier {d318e932-1717-11e7-9c5d-94659c579f96}
device ramdisk=[boot]\boot\boot.wim,{ramdiskoptions}
path \windows\system32\boot\winload.efi
description winpe boot image
osdevice ramdisk=[boot]\boot\boot.wim,{ramdiskoptions}
systemroot \windows
detecthal Yes
winpe Yes
Setup Ramdisk Options
---------------------
identifier {ramdiskoptions}
description Ramdisk options
ramdisksdidevice boot
ramdisksdipath \boot\boot.sdi
[admin@MikroTik] /ip dhcp-server network> set 0 boot-file-name=boot/bootx64.efi [admin@MikroTik] /ip dhcp-server network> /ip tftp [admin@MikroTik] /ip tftp> add allow comment ip-addresses reading-window-size allow-overwrite copy-from place-before real-filename allow-rollover disabled read-only req-filename [admin@MikroTik] /ip tftp> add ip-addresses=192.168.88.0/24 re read-only reading-window-size real-filename req-filename [admin@MikroTik] /ip tftp> add ip-addresses=192.168.88.0/24 rea read-only reading-window-size real-filename [admin@MikroTik] /ip tftp> add ip-addresses=192.168.88.0/24 real-filename=disk1/tftp/bootx64.efi req-filename=boot/bootx64.efi [admin@MikroTik] /ip tftp> print Flags: X - disabled
0 192.168.88.0/24 boot/abortpx... disk1/tftp/... yes yes no 0 1 192.168.88.0/24 boot/bootmgr... disk1/tftp/... yes yes no 0 2 192.168.88.0/24 boot/hdlscom... disk1/tftp/... yes yes no 0 3 192.168.88.0/24 boot/hdlscom... disk1/tftp/... yes yes no 0 4 192.168.88.0/24 boot/hdlscom... disk1/tftp/... yes yes no 0 5 192.168.88.0/24 boot/hdlscom... disk1/tftp/... yes yes no 0 6 192.168.88.0/24 boot/pxeboot... disk1/tftp/... yes yes no 36 7 192.168.88.0/24 boot/pxeboot... disk1/tftp/... yes yes no 31 8 192.168.88.0/24 boot/WdsConf... disk1/tftp/... yes yes no 0 9 192.168.88.0/24 boot/wdsmgfw... disk1/tftp/... yes yes no 4 10 192.168.88.0/24 boot/wdsnbp.com disk1/tftp/... yes yes no 0 11 192.168.88.0/24 boot/boot.sdi disk1/tftp/... yes yes no 0 12 192.168.88.0/24 boot/boot.wim disk1/tftp/... yes yes yes 0 13 192.168.88.0/24 boot/Fonts/c... disk1/tftp/... yes yes no 0 14 192.168.88.0/24 boot/Fonts/c... disk1/tftp/... yes yes no 0 15 192.168.88.0/24 boot/Fonts/j... disk1/tftp/... yes yes no 0 16 192.168.88.0/24 boot/Fonts/k... disk1/tftp/... yes yes no 0 17 192.168.88.0/24 boot/Fonts/m... disk1/tftp/... yes yes no 0 18 192.168.88.0/24 boot/Fonts/m... disk1/tftp/... yes yes no 0 19 192.168.88.0/24 boot/Fonts/m... disk1/tftp/... yes yes no 0 20 192.168.88.0/24 boot/Fonts/m... disk1/tftp/... yes yes no 0 21 192.168.88.0/24 boot/Fonts/m... disk1/tftp/... yes yes no 0 22 192.168.88.0/24 boot/Fonts/m... disk1/tftp/... yes yes no 0 23 192.168.88.0/24 boot/Fonts/m... disk1/tftp/... yes yes no 0 24 192.168.88.0/24 boot/Fonts/m... disk1/tftp/... yes yes no 0 25 192.168.88.0/24 boot/Fonts/s... disk1/tftp/... yes yes no 0 26 192.168.88.0/24 boot/Fonts/s... disk1/tftp/... yes yes no 0 27 192.168.88.0/24 boot/Fonts/s... disk1/tftp/... yes yes no 0 28 192.168.88.0/24 boot/Fonts/w... disk1/tftp/... yes yes no 0 29 192.168.88.0/24 boot/bcd disk1/tftp/bcd yes yes no 0 30 192.168.88.0/24 boot/bootx64... disk1/tftp/... yes yes no 0
## Advanced Topics
[Customize your WinPE image](https://msdn.microsoft.com/en-us/windows/hardware/commercialize/manufacture/desktop/winpe-mount-and-customize), add [Network Drivers](https://msdn.microsoft.com/en-us/windows/hardware/commercialize/manufacture/desktop/winpe-network-drivers-initializing-and-adding-drivers) or [other Windows drivers](https://msdn.microsoft.com/en-us/windows/hardware/commercialize/manufacture/desktop/winpe-add-drivers). If you boot a machine but can't see the network card, then you need to manually download and install the right drivers.
This is a work in progress, and it's not working yet 👎