|This article does not cite any references or sources. (September 2013)|
Network booting is the process of booting a computer from a network rather than a local drive. This method of booting can be used by routers, diskless workstations and centrally managed computers (thin clients) such as public computers at libraries and schools. Network booting can be used to centralise management of disk storage, which supporters claim can result in reduced capital and maintenance costs. It can also be used in cluster computing, in which nodes may not have local disks.
Contemporary desktop personal computers generally provide an option to boot from the network in their firmware, frequently via the Preboot Execution Environment (PXE). Post-1998 PowerPC (G3 - G5) Mac systems can also boot from their firmware to a network disk via NetBoot. Other personal computers can utilize a floppy disk or flash drive containing software to boot from the network instead, using technology such as iPXE.
The initial software to be loaded is loaded from a server on the network; for TCP/IP networks this is usually done using the Trivial File Transfer Protocol. The server from which to load the initial software is usually found by broadcasting or multicasting a Bootstrap Protocol or Dynamic Host Configuration Protocol request. Typically, this initial software is not a full image of the operating system to be loaded, but just part of it - enough for the operating system to start and then take control of the booting process, and continue booting over the network.
Before IP became the primary Layer 3 protocol, NetWare Core Protocol and IBM RIPL was widely used for network booting. Their client implementations also fit into smaller ROM than PXE. Technically network booting can be implemented over any of file transfer or resource sharing protocols, for example, NFS is preferred by BSD variants.
Network booting is also used for unattended operating system installations. In this case, a network-booted helper operating system is used as a platform to execute the script-driven, unattended installation of the intended operating system on the target machine. Implementations of this for Mac OS X and Windows exist as NetInstall and Windows Deployment Services, respectively.