Getting the bootstrap file
A target device initiates the boot process by first loading a bootstrap program. A bootstrap program is a small program that runs before the operating system is loaded. Citrix Provisioning uses a special bootstrap program that initializes the streaming session between the target device and the Provisioning Server. After this session starts, the operating system begins to be streamed and loaded from the vDisk that was initiated.
There are three ways that a target device may load the bootstrap program.
- Over the network, via Preboot eXecution Environment (PXE)
- From a boot device stored on attached media
- From a BIOS Embedded bootstrap (OEM versions only)
After the target device’s BIOS is configured to allow it to boot from the network, the device can boot and get a vDisk assignment from the Provisioning Server. The target device firmware gets the bootstrap file using standard network protocols.
The device firmware (NIC) must support PXE 0.99j, PXE 2.1or greater.
Network Booting a Target Device
The DHCP service delivers IP configurations to a target device. It can also deliver the bootstrap file location using options 67, and 60 or 66. Consider delivering the bootstrap file location with a DHCP service to reduce the number of services and increase reliability.
Note: The BOOTP service can deliver IP configuration to a target device according to BOOTP tab. It can also deliver the boot program location using optional fields. Use of this service is no longer typical. Use this service only if DHCP does not meet your requirements.
The PXE service can deliver the bootstrap file location to a target device according to the PXE Specification Version 2.1. Use this service if a DHCP service exists and cannot be changed, and another PXE service is not used.
The TFTP service delivers the bootstrap file to a target device on request. Use it if another TFTP service is not available.
The illustrations and steps that follow describe the boot process both with and without the use of PXE.
Using DHCP to Retrieve IP Address and Scope Options (Without PXE)
- When a target device boots from the network, DHCP sends a request to the Provisioning Server for an IP address and Scope Option settings (66 and 67). The Provisioning Server returns the information as requested.
- Using TFTP, a request for the bootstrap file is sent from the target device to the Provisioning Server. The Provisioning Server downloads the boot file on the target device.
- The target device boots the assigned vDisk image.
Using DHCP with PXE to Retrieve IP Address and Scope Options
- When a target device boots from the network, DHCP sends a request to the Provisioning Server for an IP address and Scope Option settings (option 60; PXEClient identifier). The Provisioning Server returns the information as requested.
- The target device sends a request to the Provisioning Server for the bootstap file name and location to the PXE service (options 66 and 67). The PXE service returns the information to the target device.
- Using TFTP, a request for the bootstrap file is sent from the target device to the Provisioning Server. The Provisioning Server downloads the bootstrap file to the target device and the target device boots.
Booting From an Optional Boot Device
As an alternative to using PXE, the Boot Device Manager (BDM) can create a bootstrap file on a local hard drive, USB flash drive, or ISO image. The bootstrap file will then be used to boot the target device.
Note: The BIOS Embedded Bootstrap boot method also exists to allow OEMs to embedded the bootstrap file on the target device.
Configuring the BIOS-enabled bootstrap
This feature is OEM specific and provides end users with systems preconfigured with Provisioning Services, allowing customers to deploy an Provisioning Services-enabled environment with minimal effort. This feature becomes an alternative to the standard PXE boot method.
As part of this solution, the OEM embeds the bootstrap within the target device’s BIOS at the factory. The OEM also pre-configures the device with product license keys.
For the BIOS-Embedded Bootstrap feature to work automatically from the factory, the target network must support the following:
- A DHCP server that is capable of providing the target device’s IP, Subnet & Gateway address. Additionally, the DHCP service must provide the default DNS server for the client to use.
- A DNS server must be active on the network
- A DNS entry must be defined which points the name <IMAGESERVER1> to each Provisioning Server’s active IP address. This DNS entry is used by the target device to find an active server.
If the target device boots using the BIOS-Embedded Bootstrap, the configuration settings are obtained from the device’s BIOS. These BIOS settings may indicate using DHCP with DNS to lookup the IP and server information (dynamic), or it may list up to four server IP addresses in the BIOS (static).
The first time a target device boots, it reads the product license key and configuration information from the BIOS, locates the Stream Service, and then sends a device registration message to the server. This message contains the information, in addition to the information inherited from the device collection template, necessary to add the device to the Provisioning Services database.
Configuring the BIOS-Embedded Bootstrap Settings
The OEM configures the BIOS-embedded bootstrap settings so that the bootstrap works ‘out-of-the-box’. If the Provisioning Services administrator needs to change settings, use the Configure BIOS Bootstrap feature in the Console. Configuration changes are updated automatically the next time the target device boots. However, only those BIOS settings that differ from the new settings are updated.
The target device must have enough information stored in the BIOS to make initial contact with the Provisioning Server.
- Right-click on a Provisioning Server in the Console window, then select the Configure Bootstrap menu option. The Configure Bootstrap dialog appears.
- To allow target device BIOS settings to be automatically updated if connected to this server, on the General tab, check the Automatically update the BIOS on the target device with these settings check box. The next time the target device boots, these settings are automatically applied.
Target Device IP
- Select the Target Device IP tab on the Configure BIOS Bootstrap dialog.
- Select from the following methods to use to retrieve target device IP addresses:
- Use DHCP to retrieve target device IP; default method.
- Use static target device IP; selecting this method requires that a primary and secondary DNS and Domain be identified.
Server Lookup Tab
On the Server Lookup tab, select the method that the target device will use to find the Provisioning Server it will boot from:
- Use DNS to find server. Select this option to find the server using DNS. The host name displays in the Host name textbox. Note: When using DNS, the DNS server must be able to resolve the name with the IP address of the server.
- Use specific servers. Select this option to manually enter Provisioning Server data. If this information was not previously entered, no data appears. To quickly list all servers in the database, click Read Servers from Database button. To change or enter new information, click Edit, then manually enter the information in the Server Address dialog. Note: Selecting the Reset to Default button will display a confirmation message to indicating that automatic BIOS updates on the target devices will be disabled and to use DNS to find the server.
On the Options tab, select from the network options that follow:
- Select the Verbose mode option if you want to monitor the boot process on the target device (optional). This enables system messaging on the target device.
- Select Interrupt safe mode if the target device hangs early in the boot process.
- Select the Advanced Memory Support option to enable the bootstrap to work with newer Windows OS versions (enabled by default). Only disable this setting on older XP or Windows Server OS 32 bit versions that do not support PAE, or if your target device is hanging or behaving erratically in the early boot phase.
Select from the following Network Recovery Methods:
Restore network connections. Selecting this option results in the target device attempting indefinitely to restore it’s connection to the Provisioning Server.
Reboot to Hard Drive. Selecting this option instructs the target device to perform a hardware reset to force a reboot after failing to re-establish communications for a defined number of seconds. The user determines the number of seconds to wait before rebooting. Assuming the network connection can not be established, the target device will fail to contact the server and the system will reboot to the local hard drive. The default number of seconds is 50.
Note: If the partition containing the vDisks is formatted as a FAT file system, a message displays a warning that this could result in sub-optimal performance. It is recommended that NTFS be used to format the partition containing the vDisks. Do not change the address in the Port field.
Caution: All boot services must be on the same NIC (IP). But the Stream Service can be on a different NIC. The Stream Service allows you to bind to multiple IPs (NICs).
Configure the following:
Login Polling Timeout. Enter the time, in milliseconds, between retries when polling for servers. Each server is sent a login request packet in sequence. The first server that responds is used. This time-out simply defines how often to retry the single available server with the initial login request. This time-out defines how quickly the round-robin routine will switch from one server to the next, in trying to find an active server. The valid range is from 1,000 to 60,000 milliseconds.
Login General Timeout. Enter the time-out, in milliseconds, for all login associated packets, except the initial login polling time-out. The valid range is from 1,000 to 60,000 milliseconds.
Click OK to save your changes.