Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Sep 2013 02:20:59 +0000
From:      John <jwd@FreeBSD.org>
To:        Current <freebsd-current@freebsd.org>
Cc:        Kristjan Eentsalu <eentsalu@gmail.com>, Daniel Nebdal <dnebdal@gmail.com>
Subject:   Re: iSCSI boot ... root?
Message-ID:  <20130918022059.GA90703@FreeBSD.org>
In-Reply-To: <CA%2Bt49PLS1CENbpbMdSqtEp9rTHfbogAvY78mwfzZSE-mD9ripw@mail.gmail.com>
References:  <CAH9ezV3JP2LQC8tYX5BkyjAGE4%2BamOiT0_h=4Rruwo1P41RqUQ@mail.gmail.com> <CA%2Bt49PLS1CENbpbMdSqtEp9rTHfbogAvY78mwfzZSE-mD9ripw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
----- Daniel Nebdal's Original Message -----
> On Mon, Sep 16, 2013 at 5:45 PM, Kristjan Eentsalu <eentsalu@gmail.com> wrote:
> > On 16.09.2013 13:35, Edward Tomasz Napierała wrote:> Wiadomość napisana
> > przez Zaphod Beeblebrox <zbeeble@gmail.com> w dniu 16 wrz 2013, o godz.
> > 07:35:
> >>> Is it now possible to boot from iSCSI?  I'm not talking about an iSCSI
> >>> controller, but with
> >>>
> >>> pxe -> dhcp -> tftp (loads loader) -> (something) -> boot (mounts root
> > from
> >>> iSCSI)
> >>
> >> Not yet.  The iSCSI initiator requires iscsid(8) in order to work, and
> > you can't
> >> run it before mounting root.
> >>
> >> I think the proper way to do this would be by doing something similar to
> > Linux'
> >> initrd; i.e. booting from mdroot loaded by loader(8), run iscsid(8) from
> > there,
> >> setup iSCSI session, then mount the real root and pivot to it.  I'm not
> > sure if it's
> >> possible right now.
> >> _______________________________________________
> >
> > Kristjan
> 
> Oh wow, that is rather neat. I don't actually have any use for it, but
> now I'm kind of tempted to try and find one.

iBFT/iSCSI

Chain load ipxe from pxe then sanboot.

pxe -> dhcp -> ipxe -> sanboot iscsi:$san_server::$san_port::$san_iqn

# df -h
Filesystem          Size    Used   Avail Capacity  Mounted on
/dev/ufs/FBSDIBFT    48G     39G    5.1G    88%    /
devfs               1.0k    1.0k      0B   100%    /dev

# tunefs -p da0a
...
tunefs: volume label: (-L)                                 FBSDIBFT

# camcontrol inquiry da0
pass1: <FreeBSD XNH7PW1_iSCSI 0000> Fixed Direct Access SCSI-5 device 
pass1: Serial Number pool0-lun000001
pass1: 300.000MB/s transfers

Configure/install the system in a VM attached to an iSCSI disk (Vbox)

install isboot-0.2.6.tar / rebuild kernel / modules

loader.conf

#
# Enable possible iBFT boot
#
isboot_load="YES"

Not sure why isboot or similar iBFT support isn't added to the
tree already (unless it is and I missed it).

I setup the network entirely via dhcp. Allows the image to be
cloned copied and brought up with dhcp config changes only on
any hardware/vm.

However, don't dhcp the ibft configured interface. In rc.conf:

# dirty - but works
setdhcp () {
   iface="${1:-noiface}"; shift
   if [ -x /sbin/ifconfig -a -x /usr/bin/grep -a -x /usr/bin/awk ]; then
      if_addr=`/sbin/ifconfig ${iface:-none} | /usr/bin/grep 'inet [1-9]' | /usr/bin/awk '{ print $2; }'`
      if_ibft=`sysctl -n  hw.ibft.initiator_address`
      if [ "${if_addr:-noaddr}" = "${if_ibft:-noibft}" ]; then
         echo ""
      else
         echo "DHCP $*"
      fi
   else
      echo ""
   fi
}
ifconfig_bge0="`setdhcp bge0`"
ifconfig_bge1="`setdhcp bge1`"
ifconfig_mxge0="`setdhcp mxge0` mtu 1500 -lro -tso"
ifconfig_mxge1="`setdhcp mxge1` mtu 9000 -lro -tso"


Cheers,
John



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130918022059.GA90703>