You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
genkernel_fork/defaults/initrd.d/00-iscsi.sh

71 lines
1.6 KiB

#!/bin/sh
. /etc/initrd.d/00-common.sh
start_iscsi() {
if [ ! -e /usr/sbin/iscsistart ]; then
return 0 # disabled
fi
if [ ! -n "${ISCSI_NOIBFT}" ]; then
good_msg "Activating iSCSI via iBFT"
iscsistart -b
fi
if [ -z "${ISCSI_INITIATORNAME}" ]; then
warn_msg "No iSCSI initiator found"
return 0
fi
if [ -z "${ISCSI_TARGET}" ]; then
warn_msg "No iSCSI target found"
return 0
fi
if [ -z "${ISCSI_ADDRESS}" ]; then
warn_msg "No iSCSI address found"
return 0
fi
good_msg "Activating iSCSI via cmdline"
if [ "${ISCSI_TGPT}" ]; then
ADDITIONAL="${ADDITIONAL} -g ${ISCSI_TGPT}"
else
ADDITIONAL="${ADDITIONAL} -g 1"
fi
if [ "${ISCSI_PORT}" ]; then
ADDITIONAL="${ADDITIONAL} -p ${ISCSI_PORT}"
fi
if [ "${ISCSI_USERNAME}" ]; then
ADDITIONAL="${ADDITIONAL} -u ${ISCSI_USERNAME}"
fi
if [ "${ISCSI_PASSWORD}" ]; then
ADDITIONAL="${ADDITIONAL} -w ${ISCSI_PASSWORD}"
fi
if [ "${ISCSI_USERNAME_IN}" ]; then
ADDITIONAL="${ADDITIONAL} -U ${ISCSI_USERNAME_IN}"
fi
if [ "${ISCSI_PASSWORD_IN}" ]; then
ADDITIONAL="${ADDITIONAL} -W ${ISCSI_PASSWORD_IN}"
fi
if [ "${ISCSI_DEBUG}" ]; then
ADDITIONAL="${ADDITIONAL} -d ${ISCSI_DEBUG}"
fi
iscsistart -i "${ISCSI_INITIATORNAME}" -t "${ISCSI_TARGET}" \
-a "${ISCSI_ADDRESS}" ${ADDITIONAL}
# let iscsid settle - otherwise mounting the iSCSI-disk
# will fail (very rarely, though)
# TODO(lxnay): this is horrible, find a real synchronization
# technique.
sleep 1
}