iPXE discussion forum

Full Version: no iSCSI target for win7 install (several examples - none work)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello everybody, I am unable to install win7 to iscsi target, I manage to get to windows setup but
no drive is detected. I tried several approaches (on real machine and in virtualbox).

Notes:
  • I am using isc-dhcp-server (ipxe config is on the bottom of this post), tftpd-hpa, apache2, ietd
  • iscsi target is accessible and works fine (connected to it through normal w7 machine)
  • tried all examples with both virtualbox and real machine

I used info found on these links to get where I am now with regards to ipxe:

http://ipxe.org/howto/winpe
FAQ on this forum
http://etherboot.org/wiki/sanboot/win2k8_iscsi_install

Any help/suggestion would be appreciated ..

Cheers,
Dorijan

1. SAN only with iscsi target attached - this would be ideal, but it doesn't work for me

Code:
#!ipxe
dhcp
set boot-url http://diskless.voyager.fast

set base-iqn iqn.2013-01.fast.voyager.kira:sedmica
set base-iscsi iscsi:192.168.200.128::::${base-iqn}

# Set initiator-iqn to either hostname or mac
isset ${hostname} && set initiator-iqn ${base-iqn}:${hostname} || set initiator-iqn ${base-iqn}:${mac}

set keep-san 1
set root-path ${base-iscsi}

sanhook --drive 0x80 ${root-path} || echo sanhook failed for ${root-path}

#Start Windows 7 installer DVD
sanboot --no-describe --drive 0x81 ${boot-url}/w7/w7.iso

Screenshot 1 - ipxe happily boots with iscsi target attached and all seems fine
[Image: ss1.jpg]

Screenshot 2 - windows boot cd dies with error
[Image: ss2.jpg]

2. SAN with winpe - sanhook command, I guess it should work, I manage to get to setup but no drive offered for installation

Code:
#!ipxe
dhcp

set boot-url http://diskless.voyager.fast

set base-iqn iqn.2013-01.fast.voyager.kira:sedmica
set base-iscsi iscsi:192.168.200.128::::${base-iqn}

# Set initiator-iqn to either hostname or mac
isset ${hostname} && set initiator-iqn ${base-iqn}:${hostname} || set initiator-iqn ${base-iqn}:${mac}

set keep-san 1
set root-path ${base-iscsi}

sanhook --drive 0x80 ${root-path} || echo sanhook failed for ${root-path}
cpuid --ext 29 && set arch amd64 || set arch x86
echo found ${arch}
kernel ${boot-url}/winpe/wimboot
initrd ${boot-url}/winpe/${arch}/ISO/bootmgr       bootmgr
initrd ${boot-url}/winpe/${arch}/ISO/boot/bcd      BCD
initrd ${boot-url}/winpe/${arch}/ISO/boot/boot.sdi boot.sdi
initrd ${boot-url}/winpe/${arch}/winpe.wim         boot.wim
sleep 3
boot

Screenshot 3 - ipxe happily boots winpe
[Image: ss3.jpg]

Screenshot 4 - winpe boot completed and pinging server with iscsi target
http://dorijan.com/ipxe/ss4.jpg

screenshot 5 - starting w7 setup
http://dorijan.com/ipxe/ss5.jpg

Screenshot 6 - no drive offered for installation
[Image: ss6.jpg]

Screenshot 7 - got to console with SHIFT-F10 in w7 setup to confirm network works
[Image: ss7.jpg]

3. SAN with winpe - sanboot command, same output as in example 2. (except ipxe part)
("patched" iscsi target on server with script "#!/bin/bash printf "\xCD\x18" | dd of=$1 conv=notrunc" as suggested in FAQ)

Code:
#!ipxe
dhcp

set boot-url http://diskless.voyager.fast

set base-iqn iqn.2013-01.fast.voyager.kira:sedmica
set base-iscsi iscsi:192.168.200.128::::${base-iqn}

# Set initiator-iqn to either hostname or mac
isset ${hostname} && set initiator-iqn ${base-iqn}:${hostname} || set initiator-iqn ${base-iqn}:${mac}

set keep-san 1
set root-path ${base-iscsi}

sanboot --drive 0x80 --keep ${root-path} || echo sanboot failed for ${root-path}
cpuid --ext 29 && set arch amd64 || set arch x86
echo found ${arch}
kernel ${boot-url}/winpe/wimboot
initrd ${boot-url}/winpe/${arch}/ISO/bootmgr       bootmgr
initrd ${boot-url}/winpe/${arch}/ISO/boot/bcd      BCD
initrd ${boot-url}/winpe/${arch}/ISO/boot/boot.sdi boot.sdi
initrd ${boot-url}/winpe/${arch}/winpe.wim         boot.wim
sleep 3
boot

Screenshot 8 - ipxe happily boots winpe
http://dorijan.com/ipxe/ss8.jpg


After that same thing happens as in example 2.

Any ideas?





dhcpd.conf ipxe sections:
Code:
option space ipxe;
  option ipxe-encap-opts code 175 = encapsulate ipxe;
  option ipxe.priority code 1 = signed integer 8;
  option ipxe.keep-san code 8 = unsigned integer 8;
  option ipxe.skip-san-boot code 9 = unsigned integer 8;
  option ipxe.syslogs code 85 = string;
  option ipxe.cert code 91 = string;
  option ipxe.privkey code 92 = string;
  option ipxe.crosscert code 93 = string;
  option ipxe.no-pxedhcp code 176 = unsigned integer 8;
  option ipxe.bus-id code 177 = string;
  option ipxe.bios-drive code 189 = unsigned integer 8;
  option ipxe.username code 190 = string;
  option ipxe.password code 191 = string;
  option ipxe.reverse-username code 192 = string;
  option ipxe.reverse-password code 193 = string;
  option ipxe.version code 235 = string;
  option iscsi-initiator-iqn code 203 = string;
  # Feature indicators
  option ipxe.pxeext code 16 = unsigned integer 8;
  option ipxe.iscsi code 17 = unsigned integer 8;
  option ipxe.aoe code 18 = unsigned integer 8;
  option ipxe.http code 19 = unsigned integer 8;
  option ipxe.https code 20 = unsigned integer 8;
  option ipxe.tftp code 21 = unsigned integer 8;
  option ipxe.ftp code 22 = unsigned integer 8;
  option ipxe.dns code 23 = unsigned integer 8;
  option ipxe.bzimage code 24 = unsigned integer 8;
  option ipxe.multiboot code 25 = unsigned integer 8;
  option ipxe.slam code 26 = unsigned integer 8;
  option ipxe.srp code 27 = unsigned integer 8;
  option ipxe.nbi code 32 = unsigned integer 8;
  option ipxe.pxe code 33 = unsigned integer 8;
  option ipxe.elf code 34 = unsigned integer 8;
  option ipxe.comboot code 35 = unsigned integer 8;
  option ipxe.efi code 36 = unsigned integer 8;
  option ipxe.fcoe code 37 = unsigned integer 8;
  option ipxe.no-pxedhcp 1;

host diskless {
        hardware ethernet 08:00:27:BA:3B:E2;            #virtualbox
        fixed-address 192.168.200.11;
        next-server 192.168.200.128;  # tftp server
        if exists user-class and option user-class = "iPXE" {
                filename "http://diskless.voyager.fast/default.ipxe";
        } else {
                filename "undionly.kpxe";
        }
}
From what I've gathered from the source code of int13_describe(), the iBFT is reset each time you you perform a sanhook or sanboot command, which only allows the last sanhook/sanboot command to actually be included in the iBFT. If you can manage to only perform one sanhook (for the install drive) and boot PE using e.g. wimboot it is more likely to work.

I also noticed that you set root-path to ${base-iscsi} and not ${base-iscsi}:mytarget. Is that actually correct?
(2013-01-18 13:36)robinsmidsrod Wrote: [ -> ]From what I've gathered from the source code of int13_describe(), the iBFT is reset each time you you perform a sanhook or sanboot command, which only allows the last sanhook/sanboot command to actually be included in the iBFT. If you can manage to only perform one sanhook (for the install drive) and boot PE using e.g. wimboot it is more likely to work.

I also noticed that you set root-path to ${base-iscsi} and not ${base-iscsi}:mytarget. Is that actually correct?

I am new to iscsi, but I assume in my example

variable base-iscsi with value iscsi:192.168.200.128::::iqn.2013-01.fast.voyager.kira:sedmica
describes complete target?

My ietd.conf (server at 192.168.200.128):
Code:
Target iqn.2013-01.fast.voyager.kira:sedmica
       Lun 0 Path=/iscsi/iscsi_20g.raw
Sorry I cant help you.

I just stumple upon this.

http://trentent.blogspot.dk/2012/11/iscs...tware.html

Semilar problem and he got it solved
Reference URL's