Netbooting Microsoft Windows 7 and XP
Total Page:16
File Type:pdf, Size:1020Kb
Netbooting Microsoft Windows 7 and XP Chris Holman∗ Centre for Advanced Internet Architectures, Technical Report 130226A Swinburne University of Technology Melbourne, Australia [email protected] Abstract—This tutorial shows how to set up Microsoft and testing the Windows PE are detailed in Section VI. Windows 7 and XP to be booted using network attached Installing to the iSCSI drive is covered in Section VII. storage. iSCSI support is built in to a Windows 7 installer The report concludes with Section IX and an appendix. using the Windows 7 Automated Installation Kit. DHCP, an iSCSI server and a TFTP server are configured on the II. BACKGROUND server to provide a PXE client and an iSCSI target. Once A. DHCP set up, a client PC will be able to operate entirely without a local disk. Dynamic Host Configuration Protocol’s (DHCP) [2] Index Terms—Windows 7, Windows XP, PXE, netboot- primary purpose is to assign IP addresses and other ing network configuration details to hosts. It is used in this tutorial for the purposes of providing network and PXE I. INTRODUCTION booting configuration details, including TFTP server PXE (“Preboot eXecution Environment”) [1] booting, settings and configuration filenames. or net booting, can be used to load an operating system B. TFTP over the network without using the local hard drive. While FreeBSD and Linux Operating Systems (OSes) Trivial File Transfer Protocol (TFTP) [3] is a simple support a number of different PXE boot methods (includ- protocol to transfer files. It is commonly used in PXE ing NFS, TFTP, HTTP, iSCSI and more), Windows only scenarios because of its simplicity. The iPXE ROM and provides support for iSCSI - a protocol for abstracting configuration are stored on the TFTP server, and are remote storage as virtual block devices, similar to a hard loaded by the PXE boot ROM on the Network Interface drive. Card (NIC). The benefits of PXE booting an OS include reduced C. iPXE energy costs (fewer hard drives), easier maintenance iPXE [4] provides advanced PXE functionality by (reimage the PC without it being on) and flexible boot extending the range of boot options to include iSCSI options (have multiple OS options without needing to and other protocols. It can be flashed on to a NIC’s boot repartition your hard drive). ROM and used instead of the existing one or PXE booted This report will present a guide to setting up an iSCSI via TFTP. backed PXE boot environment and installing Windows 7 Once iPXE is loaded, our DHCP will provide the to it. A Windows PreInstallation (PE) environment will name of the configuration file, conf.ipxe. This file be used to load the iSCSI drive before beginning setup. is interpreted by iPXE. iPXE can also chainload another The changes to the process required for Windows XP executable file using this same method - including from a are detailed in Appendix A HTTP or FTP URI, unlike a standard PXE environment. The report is structured as follows: some background is detailed in Section II; requirements and details of our D. iSCSI test bed are in Section III. Instructions on setting up SCSI (Small Computer System Interface) is a protocol the required servers are in Section IV. Instructions on which allows a computer to communicate with directly configuring the PXE booting are in Section V. Creating attached storage devices, such as hard drives and optical ∗Author was undertaking an IBL placement at CAIA when this drives. iSCSI [5] encapsulates the SCSI protocol within report was written CAIA Technical Report 130226A February 2013 page 1 of 9 IP packets. iSCSI storage devices appear as a directly • Windows 7 installation media attached disk. • inetd TFTP [10] The iSCSI client is called the iSCSI initiator, while • ISC DHCPD v4.2.4-P2 [11] the iSCSI target refers to the storage device on the iSCSI C. What we used server. An iSCSI target does not need to be a physical disk on the iSCSI server - it can be a file, a partition Client 1: HP Compaq DC7800. The internal hard drive or any block device. In this tutorial, a file is used as the was blank. The PC has an onboard Intel gigabit NIC. target, but this can be exchanged for any of the supported Server: HP Compaq DC7900, running PC-BSD 9.0- storage mechanisms easily. This tutorial uses the istgt RELEASE x64. All software except iPXE was installed iSCSI target software [6]. through the FreeBSD ports tree, which was up to date as of 2012-12-20. iPXE was compiled on a Linux PC, E. The boot process as it would not compile under FreeBSD. A pre-compiled At boot time, the PC operates in a mode that allows version is available at [8]. iPXE to hook in to the BIOS and make the iSCSI drive Figure 1 shows how the PCs are networked. appear as a physical drive. The initial stages of the OS are loaded while the PC remains in this mode. Once the OS switches to “protected” mode, iPXE is no longer able to operate in that manner, and is unloaded. When iPXE is unloaded, the iSCSI drive is disconnected, and the OS must initiate its own connection. Using information from the iBFT (iSCSI Boot Firmware Table), which iPXE populates during its execution, the OS re-connects the iSCSI target and continues booting. If the OS does not have iSCSI boot support, then when it switches to protected mode it will completely lose access to its boot disk and be unable to continue booting. Windows supports iSCSI booting, but only if iSCSI is where Windows was initially installed to. To include support for this within the Windows installation media, Figure 1. Software used Windows Automated Installation Kit (AIK) [7] is used. III. REQUIREMENTS IV. SERVER SETUP All configuration files referenced throughout this doc- If you do not control your network, you should ensure ument have full examples available at [8]. Some lines that you isolate the testbed network from your usual have been wrapped over multiple lines in this document. network. The tutorial involves setting up DHCP, which If a line ends with a slash (\), it continues on the next can interfere with your existing network operation. In a line. home environment, the worst case scenario is that some A. Hardware PCs will not be able to access each other or the internet until after you have removed your DHCP server from the • A Linux or FreeBSD server - the instructions cover network. In many corporate environments, your network FreeBSD, but are easily adaptable to other BSDs or port will be shut down if a DHCP server is detected. Linuxes. However, an internet connection is temporarily needed • 10GB or more of free disk space on the server during the installation of software, as FreeBSD ports • A PC or virtual machine running Windows 7 require internet access to fetch content. B. Software Our example test bed will use 10.0.0.0/24 as a • iPXE v1.0.0 [9] network and our server will be configured with an IP • istgt v0.5, extra version 20121028 [6] address of 10.0.0.1. • Windows 7 AIK [7] (and a Windows PC or VM to use it on) CAIA Technical Report 130226A February 2013 page 2 of 9 A. DHCP server isc-dhcpd onerestart. On your server, start by installing the ISC DHCP 1) Advanced DHCP configuration: The above con- server. On FreeBSD, it is available as a port un- figuration assumes that every PC on the network will der net/isc-dhcp42-server. As root, install us- be netbooting from the same image. This presents two ing cd /usr/ports/net/isc-dhcp42-server problems - the first is that multiple clients using the same && make install clean. The default options are NTFS partition simultaneously will result in significant acceptable. data corruption; the second is that you may not want Once installed, open the configuration file - every device on your network netbooting - eg, some /usr/local/etc/dhcpd.conf . Cisco devices treat the filename option as their con- The example simple configuration file is split in to figuration file, and complain about receving an invalid two categories - subnet declarations, which start with a configuration file. “subnet” line and contain everything within the following A PC will only try to netboot if it receives the braces; and the global section, which is everything that filename option from the DHCP server. Using a host is not part of a subnet declaration. definition, the filename option can be conditionally Add the following subnet declaration anywhere within provided. Place the host definition at the end of the the global section. DHCP configuration file, after the existing subnet dec- laration. Multiple host definitions may be specified in subnet 10.0.0.0 netmask 255.255.255.0 { separate host definitions. authoritative; range 10.0.0.100 10.0.0.254; if exists user-class and host arbitrary-name { option user-class = iPXE hardware ethernet 11:22:33:44:55:66; { if exists user-class and filename conf.ipxe; option user-class = iPXE } { else filename conf.ipxe; { } filename undionly.kpxe; else option routers 10.0.0.1; { } filename undionly.kpxe; next-server 10.0.0.1; } } } This configuration declares a subnet Then remove the filename lines from within the (10.0.0.0/255.255.255.0), then states that the DHCP subnet declaration. server is authoritative for the network interface this This host definition defines the host subnet is on. An authoritative server will ensure that all arbitrary-name. It is good practice to have DHCP discover requests from clients result in the client the given name match the hostname of the PC.