Files
open-iscsi/mkinitrd-setup.sh

74 lines
1.6 KiB
Bash

#!/bin/bash
#
#%stage: device
#
check_iscsi_root() {
local devname=$1
local sysfs_path
sysfs_path=$(/sbin/udevadm info -q path -n $rootdev 2> /dev/null)
if [ -z "$sysfs_path" ] || [ ! -d /sys$sysfs_path ] ; then
return;
fi
pushd /sys$sysfs_path > /dev/null
if [ ! -d device ] ; then
cd ..
fi
if [ ! -d device ] ; then
# no device link; return
popd > /dev/null
return;
fi
cd -P device
cd ../..
if [ -d connection* ]; then
cd -P connection*
cid=${PWD#*connection}
sid=${cid%%:*}
if [ -d /sys/class/iscsi_session/session$sid ]; then
cd -P /sys/class/iscsi_session/session$sid
echo $(basename $PWD)
fi
fi
popd > /dev/null
}
for bd in $blockdev; do
update_blockdev $bd
sid=$(check_iscsi_root $bd)
if [ "$sid" ]; then
root_iscsi=1
iscsi_sessions="$iscsi_sessions ${sid#session}"
fi
done
save_var root_iscsi
save_var iscsi_sessions
if [ "${root_iscsi}" ]; then
for session in $iscsi_sessions; do
eval TargetName${session}=$(cat /sys/class/iscsi_session/session${session}/targetname)
eval TargetAddress${session}=$(cat /sys/class/iscsi_connection/connection${session}:0/address)
eval TargetPort${session}=$(cat /sys/class/iscsi_connection/connection${session}:0/port)
save_var TargetName${session}
save_var TargetAddress${session}
save_var TargetPort${session}
# copy the iscsi configuration
cp -rp /etc/iscsi etc/
mkdir -p $tmp_mnt/var/run
mkdir -p $tmp_mnt/var/lock/iscsi
if [ -z "$interface" ] ; then
interface="default"
fi
done
fi
save_var TargetPort 3260 # in case the port was not defined via command line we assign a default port