[ipxe-devel] Hang/reboot wrt. skip-san-boot and sanboot + chaining to pxelinux.0

Robin Smidsrød robin at smidsrod.no
Fri Feb 18 11:30:16 UTC 2011


I've had a puzzling problem. When doing the things below on the command
line, it works as intended, but when I tried to actually put things in a
script and load then with my gpxe-dispatcher
(http://github.com/robinsmidsrod/gpxe-dispatcher/) I would get various
random lockups. One of the things I would consider failure was for the
sanboot command to either hang or force reboot, the other would be
pxelinux.0 hanging halfway through its configuration lookup procedure.

meteger on #ipxe at irc.freenode.net suggested I do a bisect an email the
list. I hope you'll be able to shed some light on my problems.

My iSCSI target is a Nexenta 3.0 COMSTAR device running on the same
physical subnet. The testing was performed on a HP 6730b laptop with a
Broadcom BCM5787M (14e4:1693) running a HP-based PXE rom. The iSCSI
target was erased (filled with nulls) before testing started.

#!gpxe
echo
echo Trying to boot WinPE x64 with SAN enabled (via PXELinux)
set skip-san-boot 1
set keep-san 1
show skip-san-boot
show keep-san
sanboot iscsi:nas.smidsrod.lan::::iqn.2011-02.lan.smidsrod:htpc.win7
chain http://10.1.1.2/tftp/pxelinux.0


Doing a git bisect between commit 053d28688c3 (good) and commit (head of
master) revealed this commit to be the bad one:


6d68ffee396af30c14b971ea677ba6e790695926 is the first bad commit
commit 6d68ffee396af30c14b971ea677ba6e790695926
Author: Michael Brown <mcb30 at ipxe.org>
Date:   Mon Nov 22 04:19:24 2010 +0000

    [script] Implement "goto" in iPXE scripts

    Allow script labels to be defined using the syntax

      :<labelname>

    (nothing else allowed on the line, including whitespace).  Labels are
    ignored during script execution, but can be used as the target of the
    "goto" command.  For example:

      #!ipxe

      goto machine_${net0/ip} || goto machine_default

      # Linux kernel boot
      :machine_10.0.0.101
      :machine_10.0.0.102
      set filename http://my.boot.server/vmlinuz
      goto done

      # Default configuration
      :machine_default
      set filename pxelinux.0
      goto done

      # Boot selected configuration
      :done
      chain ${filename}

    Originally-implemented-by: Shao Miller <shao.miller at yrdsb.edu.on.ca>
    Originally-implemented-by: Stefan Hajnoczi <stefanha at gmail.com>
    Signed-off-by: Michael Brown <mcb30 at ipxe.org>

:040000 040000 220fb7f334cadd898ace5c06b1a79c5f864d0c0c
d1971b3bd12f1ccc4d8af7c48972ed9db18ff39c M      src


-- Robin



More information about the ipxe-devel mailing list