#!/bin/bash

# Load modules
# You may only need to load the modules you will use

echo "Loading jbd.ko module"
insmod /lib/modules/jbd.ko 
echo "Loading ext3.ko module"
insmod /lib/modules/ext3.ko 

echo "Loading libcrc32c.ko module"
insmod /lib/modules/libcrc32c.ko 
echo "Loading crc32c.ko module"
insmod /lib/modules/crc32c.ko 

echo "Loading mii.ko module"
insmod /lib/modules/mii.ko
echo "Loading 8139too.ko module"
insmod /lib/modules/8139too.ko

echo "Loading e100.ko module"
insmod /lib/modules/e100.ko

echo "Loading e1000.ko module"
insmod /lib/modules/e1000.ko

echo "Loading tulip.ko module"
insmod /lib/modules/tulip.ko

echo "Loading tg3.ko module"
insmod /lib/modules/tg3.ko


echo "Loading scsi_mod.ko module"
insmod /lib/modules/scsi_mod.ko
echo "Loading sd_mod.ko module"
insmod /lib/modules/sd_mod.ko

echo "Loading scsi_transport_iscsi.ko module"
insmod /lib/modules/scsi_transport_iscsi.ko
echo "Loading libiscsi.ko module"
insmod /lib/modules/libiscsi.ko
echo "Loading iscsi_tcp.ko module"
insmod /lib/modules/iscsi_tcp.ko


# Mount /proc and /sys
echo Mounting /proc filesystem
mount -t proc /proc /proc

echo Mounting sysfs
mount -t sysfs /sys /sys

# We need to extract four command line parameters form /proc/cmdline:
# iscsi_i_ip - local initiator IP address/netmask (i.e. 192.168.111.168/255.255.255.192)
# iscsi_i    - local initiator name (InitiatorName)
# iscsi_t    - remote target name (TargetName)
# iscsi_a    - iSCSI target IP address

# Read the kernel cmdline
CMDLINE=$(cat /proc/cmdline)

# Find out IP/NETMASK first
TEMPVAR=${CMDLINE#*iscsi_i_ip=}
ISCSI_I_IP=${TEMPVAR%% *}

# Find InitiatorName
TEMPVAR=${CMDLINE#*iscsi_i=}
ISCSI_I=${TEMPVAR%% *}

# Find TargetName
TEMPVAR=${CMDLINE#*iscsi_t=}
ISCSI_T=${TEMPVAR%% *}

# Find iSCSI target IP address
TEMPVAR=${CMDLINE#*iscsi_a=}
ISCSI_A=${TEMPVAR%% *}


# Bring the network interface up
ifconfig eth0 ${ISCSI_I_IP%/*} netmask ${ISCSI_I_IP#*/}

# Connect the iSCSI drive
iscsistart -i "$ISCSI_I" -t "$ISCSI_T" -g 1 -a $ISCSI_A

mount -o ro /dev/sda2 /sysroot

echo Switching to new root
cd /sysroot

exec chroot . sh -c 'exec /sbin/init'

# Uncomment "bash" below if you're having booting problems.
# It will give you a bash shell with limited tools.
#bash
