The problem when rebooting to PXE or USB

When deploying a new, unconfigured server, there are no configured disks from which to boot. This means that the system must boot from other media, such as a CD or DVD drive, from a USB port, or from the network using the Pre-boot Execution Environment (PXE). At times, the installation might reboot the server being deployed during the task sequence to complete initialization of a configuration, such as defining array disks.

In fact, if the disks on a system are defined or redefined after the Windows® Preinstallation Environment (WinPE) boots, WinPE does not recognize the new system partition, which means a reboot is necessary in order to successfully complete a deployment.
Figure 1. Properties page for a Reboot to PXE / USB action
Properties page for a Reboot to PXE / USB action

The primary issue is that when using a “Reboot Computer” standard action within the task sequence editor, the action requires a writeable partition, either to reboot into the existing operating system, or to copy down WinPE to the disk and reboot to WinPE again. If you assign a reboot task to a machine and these conditions do not exist, the task sequence will fail at that action. The capability of rebooting the machine in the middle of a task sequence without a valid boot partition does not exist.

If you use PXE and the machine simply ends the task sequence and reboots on its own, Configuration Manager does not readvertise the PXE boot to the computer. The PXE advertisement must be reset if it is to run the same task sequence again. This means the server would likely reboot into an unknown state and stop at a “No Operating System” prompt. You could assign a second task sequence to the machine, but when the first task sequence ended, the second would start immediately, without a reboot between them.

If you were using boot media such as CD or DVD media or a USB drive, the result would be the same; the task would fail when the reboot task runs because a valid boot partition does not exist. If you simply made the task sequence end instead of using a reboot, the system reboots and starts the task sequence again. Without some sort of conditional flow control, the installation reruns the same tasks.