|
#!/bin/sh
|
|
#
|
|
# /sbin/iscsi-gen-initiatorname
|
|
#
|
|
# Generate a default iSCSI Initiatorname for SUSE installations.
|
|
#
|
|
# Copyright (c) 2011 Hannes Reinecke, SUSE Labs
|
|
# This script is licensed under the GPL.
|
|
#
|
|
|
|
if [ "$1" ] ; then
|
|
if [ "$1" = "-f" ] ; then
|
|
FORCE=1
|
|
else
|
|
echo "Invalid option $1"
|
|
echo "Usage: $0 [-f]"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if [ -d /sys/firmware/ibft/initiator ] ; then
|
|
read iSCSI_INITIATOR_NAME < /sys/firmware/ibft/initiator/initiator-name
|
|
fi
|
|
|
|
if [ -f /etc/iscsi/initiatorname.iscsi -a -z "$FORCE" ] ; then
|
|
if [ "$iSCSI_INITIATOR_NAME" ] ; then
|
|
eval $(cat /etc/iscsi/initiatorname.iscsi | sed -e '/^#/d')
|
|
if [ "$iSCSI_INITIATOR_NAME" != "$InitiatorName" ] ; then
|
|
echo "iSCSI Initiatorname from iBFT is different from the current setting."
|
|
echo "Please call '/sbin/iscsi-gen-initiatorname -f' to update the iSCSI Initiatorname."
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ "$iSCSI_INITIATOR_NAME" ] ; then
|
|
cat << EOF >> /etc/iscsi/initiatorname.iscsi
|
|
##
|
|
## /etc/iscsi/iscsi.initiatorname
|
|
##
|
|
## iSCSI Initiatorname taken from iBFT BIOS tables.
|
|
##
|
|
## DO NOT EDIT OR REMOVE THIS FILE!
|
|
## If you remove this file, the iSCSI daemon will not start.
|
|
## Any change here will not be reflected to the iBFT BIOS tables.
|
|
## If a different initiatorname is required please change the
|
|
## initiatorname in the BIOS setup and call
|
|
## /sbin/iscsi-gen-initiatorname -f
|
|
## to recreate an updated version of this file.
|
|
##
|
|
InitiatorName=$iSCSI_INITIATOR_NAME
|
|
EOF
|
|
fi
|
|
|
|
if [ ! -f /etc/iscsi/initiatorname.iscsi ] ; then
|
|
cat << EOF >> /etc/iscsi/initiatorname.iscsi
|
|
##
|
|
## /etc/iscsi/iscsi.initiatorname
|
|
##
|
|
## Default iSCSI Initiatorname.
|
|
##
|
|
## DO NOT EDIT OR REMOVE THIS FILE!
|
|
## If you remove this file, the iSCSI daemon will not start.
|
|
## If you change the InitiatorName, existing access control lists
|
|
## may reject this initiator. The InitiatorName must be unique
|
|
## for each iSCSI initiator. Do NOT duplicate iSCSI InitiatorNames.
|
|
EOF
|
|
YEAR=$(date +"%Y")
|
|
MONTH=$(date +"%m")
|
|
ISSUEDATE="$YEAR$MONTH"
|
|
INAME=$(iscsi-iname -p iqn.$ISSUEDATE.local.openwrt:01)
|
|
printf "InitiatorName=$INAME\n" >>/etc/iscsi/initiatorname.iscsi
|
|
chmod 0600 /etc/iscsi/initiatorname.iscsi
|
|
fi
|
|
|