Splitting out a first bunch of functions out to /live/live/boot/.
[live-boot-grml.git] / scripts / boot / mount-iscsi.sh
1 #!/bin/sh
2
3 do_iscsi()
4 {
5         do_netsetup
6         #modprobe ib_iser
7         modprobe iscsi_tcp
8         local debugopt=""
9         [ "${DEBUG}" = "Yes" ] && debugopt="-d 8"
10         #FIXME this name is supposed to be unique - some date + ifconfig hash?
11         ISCSI_INITIATORNAME="iqn.1993-08.org.debian.live:01:$(echo "${HWADDR}" | sed -e s/://g)"
12         export ISCSI_INITIATORNAME
13         if [ -n "${ISCSI_SERVER}" ] ; then
14                 iscsistart $debugopt -i "${ISCSI_INITIATORNAME}" -t "${ISCSI_TARGET}" -g 1 -a "${ISCSI_SERVER}" -p "${ISCSI_PORT}"
15         else
16                 iscsistart $debugopt -i "${ISCSI_INITIATORNAME}" -t "${ISCSI_TARGET}" -g 1 -a "${ISCSI_PORTAL}" -p 3260
17         fi
18         if [ $? != 0 ]
19         then
20                 panic "Failed to log into iscsi target"
21         fi
22         local host="$(ls -d /sys/class/scsi_host/host*/device/iscsi_host:host* \
23                             /sys/class/scsi_host/host*/device/iscsi_host/host* | sed -e 's:/device.*::' -e 's:.*host::')"
24         if [ -n "${host}" ]
25         then
26                 local devices=""
27                 local i=0
28                 while [ -z "${devices}" -a $i -lt 60 ]
29                 do
30                         sleep 1
31                         devices="$(ls -d /sys/class/scsi_device/${host}*/device/block:* \
32                                          /sys/class/scsi_device/${host}*/device/block/* | sed -e 's!.*[:/]!!')"
33                         i=$(expr $i + 1)
34                         echo -ne $i\\r
35                 done
36                 for dev in $devices
37                 do
38                         if check_dev "null" "/dev/$dev"
39                         then
40                                 NETBOOT="iscsi"
41                                 export NETBOOT
42                                 return 0;
43                         fi
44                 done
45                 panic "Failed to locate a live device on iSCSI devices (tried: $devices)."
46         else
47                 panic "Failed to locate iSCSI host in /sys"
48         fi
49 }