Table of Contents
Installing Windows Server 2008 to an iSCSI target
To install Windows Server 2008 to an iSCSI target, you must first configure your system to attempt to boot via iSCSI, and fall back to booting from DVD-ROM if the iSCSI boot fails. The exact procedure for doing this will vary depending on your computer's BIOS.
Configuring the BIOS boot order
Enter your BIOS setup screen. (Typically, this will require you to press a key such as DEL or one of the function keys F1-F12 immediately after rebooting the system.)
Configure your BIOS to attempt booting in the following order:
- Boot using gPXE.
- Boot from DVD-ROM.
If you can't boot from gPXE from your BIOS read: How to Deploy gPXE. Specifically Boot gPXE for your PXE enabled network card and Loading gPXE from a bootable floppy or the ultimate Replace your legacy network card PXE ROM
Configure DHCP gPXE options for iSCSI boot
Refer to advanced dhcp options
ISC dhcpd
See dhcpd for more info on the following settings
Place the following lines in /etc/dhcpd.conf:
option space gpxe; option gpxe-encap-opts code 175 = encapsulate gpxe; option gpxe.keep-san code 8 = unsigned integer 8; filename ""; option root-path "iscsi:my.target.dns.name::::iqn.2007-08.name.dns.target.my:iscsiboot"; option gpxe.keep-san 1;
where my.target.dns.name is the DNS name (or IP address) of your iSCSI target, and iqn.2007-08.name.dns.target.my:iscsiboot is the iSCSI target IQN that you wish to boot from.
You will probably need to restart your DHCP server for the changes to take effect:
root@chipmunk# /etc/init.d/dhcpd restart
Microsoft DHCP Server
See msdhcp for more info on the following settings
NOTE: The above picture shows settings for a specific windows deployment environment. Configure your settings to meet your needs.
Option 17 Root Path iscsi:my.target.dns.name::::iqn.2007-08.name.dns.target.my:iscsiboot Option 67 Bootfile "" Option 175 gPXE_Options 08 01 01 FF
Where freenas1.domain.local == my.target.dns.name == is the DNS name (or IP address) of your iSCSI target, and iqn.2007-09.local.domain.freenas1.target:disk1 == iqn.2007-08.name.dns.target.my:iscsiboot == the iSCSI target IQN that you wish to boot from.
See PXE Chaining for the two Option 67 entries pictured above, if your not using PXE Chaining set Option 67 as a blank entry
See gPXE Encapsulated options for information on Option 175, 08 01 01 FF is the Hex entry for keep-san 1
Starting the installation
Place the Windows Server 2008 DVD-ROM in the drive, and switch on the computer. You should see it attempt to boot via iSCSI, fail, and then boot from the DVD-ROM. Once you reach the point of selecting an installation disk drive, you should see your iSCSI disk appear in the list:
Note: If you get the message “This computer's hardware may not support booting to this disk. Ensure that the disk's controller is enabled in the computer's BIOS menu.” or “Windows is unable to find a system volume that meets its criteria for installation.”, do the following: Create a new partition on the disk and format it. Then exit the setup and try again after a reboot. More information can be found in this article.
Alternative Method (using WinPE)
Some BIOS programs will not fall back to another boot device after loading gPXE. In such cases, you can proceed by executing pxe boot to WinPE 2.1. (make sure it's WinPE 2.1, WinPE 2.0 won't detect iSCSI drives)
After you've reached the WinPE command prompt, you can execute setup.exe from the installation media or network share. (this method was tested with Windows Server 2008 x86, Windows 7 x86 and Windows 7 x64. For installing Windows 7, you will probably want to try using WinPE 3.0 instead of 2.1)
The required gPXE command sequence to achieve this should be like:
dhcp net0 set keep-san 1 sanboot iscsi:192.168.1.11::::iqn.2007-08.name.dns.target.my:iscsiboot chain tftp://192.168.1.11/boot/pxeboot.n12
NOTE: When using tftpd32, bootmgr.exe should reside inside the root tftp directory and inside the boot directory.
NOTE: If the Windows Setup cannot recognize your iSCSI drive be sure that WinPE is recognized your network card. Type “route print” to the WinPE command prompt and look for your network interface. If it is not there, you should load your network card's driver by using the “loaddrv” command of the WinPE. Go to a local or a network folder which has your driver and execute “loaddrv file.inf” to load the driver.
Alternative Method (simple)
As stated before, some BIOS won't fall back properly. And if you don't need the whole WinPE stuff, have a look here.
To give a proper short receipe: In you tftp directory do: Put memdisk.bin and sbootmgr.dsk into it Place also a copy of pxelinux there.
Edit your pxelinux config file (if you dont have one: Make a directory called “pxelinux.cfg” in your tftp directory and put the folling into a file named “default” to your new pxelinux.cfg-directory):
label torito kernel memdisk append initrd=sbootmgr.dsk
Kick off you machine, load some gPXE and press Ctrl+B as it appears. Now do:
dhcp net0 set keep-san 1 sanboot iscsi:192.168.1.11::::iqn.2007-08.name.dns.target.my:iscsiboot chain tftp://192.168.1.11/pxelinux.0
After some curious stuff enter torito and enter. Now it starts of your Windows 2008 DVD. (May show error if dvd drive is not ready yet. Just try by pressing enter again and again)
This is might also work for you, without the PXE menu if you have no HD or boot PXE after your HD boot order Kick off you machine, load some gPXE and press Ctrl+B as it appears. Now do:
dhcp net0 set keep-san 1 sanboot iscsi:192.168.1.11::::iqn.2007-08.name.dns.target.my:iscsiboot exit
You should now have a message that says insert media and press a key. Insert your CD and wait a few seconds then press a key
Completing the installation
Continue the installation as normal. Your computer will reboot a few times during installation; you can safely leave it unattended during this time.
Congratulations on successfully installing Windows Server 2008 to an iSCSI target!
What to do if the installation can't find the iSCSI disk.
- Ensure the iSCSI target is working by connecting it with existing os. To make your life easy, You can unset the password for the iSCSI target for testing.
- Reboot the into gPXE, then press
Ctrl-B
to get the command line.
- In the command line, type
dhcp net0
You'll see response which is like:
DHCP (net0 xx:xx:xx:xx:xx:xx)... ok
- In the command line, type
set keep-san 1
- And in command line, type
sanboot iscsi:my.target.dns.name::::iqn.2007-08.name.dns.target.my:iscsiboot
If you see something like “Preserving connection to SAN disk.” in response, You are on the half way.
- In the command line, type
exit
- Go on with the installation above.
NOTE: If you are installing vista, be sure to read the NOTE in Vista install guide to save your time.
NOTE: Windows Setup creates an explicit route to your your iSCSI target using your default gateway. This means if your target is on the same LAN, your router must be prepared to route local LAN traffic (which normally it would not do as the initiator and target could communicate directly). You can examine the route settings by pressing SHIFT+F10 when the drive selection window is displayed, then typing “route print” at the DOS command prompt.
Some strict firewall settings will prevent this kind of routing which will cause Windows Setup to be unable to see the iSCSI drive. For example, using Shorewall you need to enable the “routeback” setting on the LAN interface. If using OpenWrt (without shorewall) add this to /etc/firewall.user (create this file if absent):
iptables -A forwarding_lan -i br-lan -o br-lan -j ACCEPT
To avoid that behaviour, put your iSCSI into it's very own subnet and omit a gateway. Like say your LAN is 192.168.1.0, you could say target is 192.168.2.1 and initiator 192.168.2.2. Configure your DHCP server accordingly and windows won't do that curious explicit route (static route).
NOTE: With Windows 7 the above routing problem affects normal boot as well, not just the setup.
NOTE: When using Microsoft iSCSI Software Target 3.1.3412, The aforementioned explicit routing may cause WinPE 2.1 (Windows Server 2008 / Vista SP1) to BSOD (IRQL_NOT_LESS_OR_EQUAL), and WinPE 3.0 (Windows 7 / Windows Server 2008 R2) won't recognize the iSCSI drive at all.
- To avoid this problem, you can set the gateway (received from the DHCP server) to the IP of the machine running Microsoft iSCSI Software Target. (or use the “set gateway” command from the gPXE console, after the “dhcp” command)
- Another way around this is to configure your DHCP server to give the target host as the default gateway for the initial gPXE boot, and then give your normal gateway for the Windows boot proper. This avoids routing the SAN traffic through an IP router when it isn't necessary (in my case, my LAN is gigabit but routing through the gateway reduced effective throughput to 100mbit - not ideal!). Add the following lines to your dhcpd config (to the stanza that defines the host to be booted):
if exists user-class and option user-class = "gPXE" { option routers <iSCSI target IP>; } else { option routers <normal default gateway IP>; }
- Alternatively, you can install to another software target, and then transfer the installation to the Microsoft iSCSI Software Target.
What to do if the installation says: "Ensure that the disk's controller is enabled in the computer's BIOS menu"
If you can't continue with windows installation on iSCSI Target with an error message
Windows cannot be installed to this disk. This computer's hardware may not support booting to this disk. Ensure that the disk's controller is enabled in the computer's BIOS menu
Solution for this error is quite simple, just add a drive for installation time, if the drive is a Serial-ATA connected then set it to Compatibile Mode not AHCI (for Windows 7 this doesn't matter, you can leave it as AHCI). If you start windows installer once again you will see an error message only at the physical drive, select iSCSI target and just click next.
XFGolden Begin Edit → This is totally contradictory to the above. But it worked for me when the above did not.
In some cases such as mine using an asus m3n-HT Deluxe motherboard with the latest pheonix/award bios having Serial ATA mode set to IDE(compatibility mode) caused the Windows 7 Ultimate x86_64 installer to view the the iscsi connected drive as a non-bios boot drive. There are three options in this bios for how Serial ATA drives are handled IDE/AHCI/RAID . Once the access mode for Serial ATA drives was set to AHCI the Windows Installer saw the physically attached drive as non-bios bootable and the iSCSI attached drive as a valid install target. On subsequent boots the installer completed and I was presented with a freshly installed Windows 7 desktop served from my SAN.
← End Edit XFGolden