Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
sanboot:win2k8_iscsi_install [2009/08/18 08:18] tal.aloni |
sanboot:win2k8_iscsi_install [2011/01/22 12:16] (current) leeph [What to do if the installation can't find the iSCSI disk.] |
||
---|---|---|---|
Line 12: | Line 12: | ||
- Boot from DVD-ROM. | - Boot from DVD-ROM. | ||
- | ===== Configuring gPXE for iSCSI boot ===== | + | <sub>//If you can't boot from gPXE from your BIOS read: [[/howtos#how_to_deploy_gpxe|How to Deploy gPXE]]. Specifically [[/pxechaining|Boot gPXE for your PXE enabled network card]] and [[/removable#creating_a_bootable_floppy_disk|Loading gPXE from a bootable floppy]] or the ultimate [[/romburning|Replace your legacy network card PXE ROM]]//</sub> |
+ | |||
+ | ===== Configure DHCP gPXE options for iSCSI boot ===== | ||
+ | |||
+ | Refer to [[/howtos#how_to_use_advanced_dhcp_options|advanced dhcp options]] | ||
+ | |||
+ | ==== ISC dhcpd ==== | ||
+ | See [[dhcpd]] for more info on the following settings | ||
Place the following lines in ///etc/dhcpd.conf//: | Place the following lines in ///etc/dhcpd.conf//: | ||
Line 29: | Line 36: | ||
root@chipmunk# /etc/init.d/dhcpd restart | root@chipmunk# /etc/init.d/dhcpd restart | ||
+ | |||
+ | ==== Microsoft DHCP Server ==== | ||
+ | See [[msdhcp]] for more info on the following settings | ||
+ | |||
+ | {{:sanboot:msdhcpiscsiwds.png|}} | ||
+ | |||
+ | <sup>NOTE: //The above picture shows settings for a specific windows deployment environment//. Configure your settings to meet your needs.</sup> | ||
+ | |||
+ | 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 [[/pxechaining#using_the_windows_dhcp_server|PXE Chaining]] for the two //Option 67// entries pictured above, if your **not** using [[/pxechaining#using_the_windows_dhcp_server|PXE Chaining]] set //Option 67// as a //blank entry//\\ | ||
+ | See [[/msdhcp#setting_up_a_gpxe_encapsulated_options_on_windows_dhcp|gPXE Encapsulated options]] for information on //Option 175//, 08 01 01 FF is the Hex entry for //keep-san 1// | ||
===== Starting the installation ===== | ===== Starting the installation ===== | ||
Line 37: | Line 59: | ||
{{ :screenshots:win2k8_iscsi_install.png?800x600 |Windows Server 2008 installation disk selection}} | {{ :screenshots:win2k8_iscsi_install.png?800x600 |Windows Server 2008 installation disk selection}} | ||
+ | ===== Alternative Method (using WinPE) ===== | ||
- | ===== Alternative Method ===== | + | Some BIOS programs will not fall back to another boot device after loading gPXE. |
- | + | In such cases, you can proceed by executing [[:winpe|pxe boot to WinPE 2.1]]. | |
- | some BIOS programs will not fall back to another boot device after loading gPXE. | + | |
- | in such cases, you can proceed by executing [[:winpe|pxe boot to WinPE 2.1]]. | + | |
(make sure it's WinPE 2.1, WinPE 2.0 won't detect iSCSI drives) | (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) | + | 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: | + | The required gPXE command sequence to achieve this should be like: |
<code> | <code> | ||
dhcp net0 | dhcp net0 | ||
Line 54: | Line 75: | ||
</code> | </code> | ||
- | Note: | + | **NOTE:** |
- | when using tftpd32, bootmgr.exe should reside inside the root tftp directory and inside the boot directory. | + | 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 [[http://www.lrz-muenchen.de/~bernhard/grub-chain-cd.html|here]]. | ||
+ | |||
+ | To give a proper short receipe: | ||
+ | In you tftp directory do: | ||
+ | Put [[http://www.lrz-muenchen.de/~bernhard/memdisk.bin|memdisk.bin]] and [[http://www.lrz-muenchen.de/~bernhard/sbootmgr.dsk|sbootmgr.dsk]] into it | ||
+ | Place also a copy of [[http://syslinux.zytor.com/wiki/index.php/PXELINUX|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): | ||
+ | |||
+ | <code> | ||
+ | label torito | ||
+ | kernel memdisk | ||
+ | append initrd=sbootmgr.dsk | ||
+ | </code> | ||
+ | |||
+ | Kick off you machine, load some gPXE and press Ctrl+B as it appears. Now do: | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | 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: | ||
+ | |||
+ | <code> | ||
+ | dhcp net0 | ||
+ | set keep-san 1 | ||
+ | sanboot iscsi:192.168.1.11::::iqn.2007-08.name.dns.target.my:iscsiboot | ||
+ | exit | ||
+ | </code> | ||
+ | |||
+ | 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 ===== | ===== Completing the installation ===== | ||
Line 78: | Line 143: | ||
**NOTE:** If you are installing vista, be sure to read the NOTE in [[sanboot:winvista|Vista install guide]] to save your time. | **NOTE:** If you are installing vista, be sure to read the NOTE in [[sanboot:winvista|Vista install guide]] to save your time. | ||
- | **NOTE:** You cannot install directly when using Microsoft iSCSI Software Target 3.1.3412, it will 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. | + | **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. |
- | **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). 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. 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" ===== | ===== What to do if the installation says: "Ensure that the disk's controller is enabled in the computer's BIOS menu" ===== | ||
Line 86: | Line 171: | ||
If you can't continue with windows installation on iSCSI Target with an error message | 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 | 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//. 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. | + | 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 |