iSCSI boot ... root?
John
jwd at FreeBSD.org
Wed Sep 18 02:20:59 UTC 2013
----- Daniel Nebdal's Original Message -----
> On Mon, Sep 16, 2013 at 5:45 PM, Kristjan Eentsalu <eentsalu at gmail.com> wrote:
> > On 16.09.2013 13:35, Edward Tomasz Napiera³a wrote:> Wiadomo¶æ napisana
> > przez Zaphod Beeblebrox <zbeeble at 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
More information about the freebsd-current
mailing list