# INITRD {{{
function actionMkInitrd
{
- echo "Installing initrd $PATH_/minirt26.gz:"
+ echo "Installing initrd $PATH_/initrd.img:"
# until we have a stable file location API let's use
# an according heuristic
initrd_=initrd.img-"$(uname -r)"
- cp /boot/"$initrd_" "$PATH_"/minirt26.gz || die "Could not copy /boot/$initrd_"
+ cp /boot/"$initrd_" "$PATH_"/initrd.img || die "Could not copy /boot/$initrd_"
}
# }}}
done
IPRANGE_FROM_=`execute "ipcalc -nb $IP_/$NETMASK_" warn |awk '/HostMin/{print $2}'`
+ # if we have x.x.x.1 as starting range address provide
+ # x.x.x.10 instead so we avoid possible conflicts with
+ # default gateway
+ if echo $IPFROM | grep -c '\.1$' ; then
+ IPFROM="${IPFROM%%\.1}.10"
+ fi
IPRANGE_TO_=`execute "ipcalc -nb $IP_/$NETMASK_" warn |awk '/HostMax/{print $2}'`
NETWORK_=`execute "ipcalc -nb $IP_/$NETMASK_" warn |awk '/Network:/{print $2}'`
NETWORK_=${NETWORK_%/*}
NAMESERVERS_=`netGetNameservers warn`
GW_=`netGetDefaultGateway warn`
- GW_DEV_=`/sbin/ip route get "$GW_" | awk '{ print $3; exit; }'`
- if [ "$GW_DEV_" != "$INTERFACE_" ] && [ "$GW_DEV_" != "" ]; then
+ GW_DEV_=`/sbin/ip route get "$GW_" | sed 's/^local //' | awk '{ print $3; exit; }'`
+ if [ "$GW_DEV_" != "$INTERFACE_" ] && [ "$GW_DEV_" != "" ] && [ "$GW_DEV_" != "lo" ]; then
# GW_DEV_ of server is not the same device as the one serviced by dhcpd
# so it doesn't make sense to provide the GW_ address to the clients
local do_nat_="YES"
fi
fi
- # get options
- #local OPT_IPTABLES_="yes"
- #local OPT_SSH_="yes"
- #local OPT_DISTCC_="yes"
- #local OPT_SQUID_=""
-
- local OPTIONS_TITLE_="Options"
- local OPTIONS_MESSAGE_="Please give the appropriate options you want the clients to use:
-
-grml2hd - Make a non-interactive remote installation
-
-
-
-"
-# local OPTIONS_MESSAGE_="Please give the appropriate options you want the clients to use:
-#
-#iptables - Only the server should be able to access the clients
-#ssh - A ssh-key will be created on the server and distributed to the clients
-#distcc - You want to use the clients as compile-farm (ssh options recommned)
-#
-#"
-
- local OPT_IPTABLES_DESC_="Start iptables on the clients"
- local OPT_SSH_DESC_="Start ssh on the clients"
- local OPT_DISTCC_DESC_="Start distcc on the clients"
- local OPT_GRML2HD_DESC_="Remote install grml on the network clients"
- # dialog options (enable if implemented)
- #iptables "$OPT_IPTABLES_DESC_" off \
- #ssh "$OPT_SSH_DESC_" off \
- #distcc "$OPT_DISTCC_DESC_" off \
- echo -n "" >"$TMP_"
- $DIALOG_ --clear --separate-output --backtitle "$BACK_TITLE_" --title "$OPTIONS_TITLE_" --checklist "$OPTIONS_MESSAGE_" 25 80 10 \
- grml2hd "$OPT_GRML2HD_DESC_" off \
- 2>$TMP_ || die "could not get terminalserver options" $?
- while read tmp_option_; do
- OPTIONS_="$OPTIONS_ $tmp_option_"
- done <$TMP_
-
- # parse options
- for i in $OPTIONS_; do
- case "$i" in
- grml2hd) optGrml2Hd || return 1 ;;
- esac
- done
-
echo -n "" >"$TMP_"
local OPTIONS_BOOTARG_MESSAGE_="Here you can add additional boot arguments for the clients seperated by spaces:
-Quite usefull examples:
+Quite useful examples:
ssh=<pw> - Start ssh server and set password of user grml to pw
services=<1,2,3> - Execute /etc/init.d/{1,2,3} start
}
# }}}
-# OPTIONS GETTING DIALOG {{{
-function optGrml2Hd
-{
- local GRML2HD_TITLE_='Grml2hd options dialog'
- local tmp_=''
- local options_='BOOT_IMAGE=grml2hd'
-
- # get partition to install grml2hd on
- OPTIONS_PARTITION_MSG_='Please specify the target partition where to install grml'
- PARTITION_TITLE_='Partition selection'
- echo -n "" >"$TMP_"
- $DIALOG_ --clear --backtitle "$BACK_TITLE_" --title "$PARTITION_TITLE_" --inputbox \
- "$OPTIONS_PARTITION_MSG_" 0 75 '/dev/hda1' 2>$TMP_ || die "problems getting partition"
- tmp_="partition=$(<$TMP_)"
- options_="$options_ $tmp_"
-
- # get filesystem type
- OPTION_FS_TYPE_='Please specify the filesystem type'
- FS_TITLE_='Filesystem selection'
- echo -n "" >"$TMP_"
- $DIALOG_ --clear --backtitle "$BACK_TITLE_" --title "$FS_TITLE_" --inputbox \
- "$OPTION_FS_TYPE_" 0 75 'ext3' 2>$TMP_ || die "problems getting filesystem type"
- tmp_="filesystem=$(<$TMP_)"
- options_="$options_ $tmp_"
-
- # get where to save mbr
- OPTION_MBR_='Please specify the location where to save the mbr'
- MBR_TITLE_='Select location of mbr'
- echo -n "" >"$TMP_"
- $DIALOG_ --clear --backtitle "$BACK_TITLE_" --title "$MBR_TITLE_" --inputbox \
- "$OPTION_MBR_" 0 75 '/dev/hda' 2>$TMP_ || die "problems getting location where to write mbr"
- tmp_="mbr=$(<$TMP_)"
- options_="$options_ $tmp_"
-
- # get first user
- OPTION_USER_='Who should be the first user on the system'
- USER_TITLE_='User selection'
- echo -n "" >"$TMP_"
- $DIALOG_ --clear --backtitle "$BACK_TITLE_" --title "$USER_TITLE_" --inputbox \
- "$OPTION_USER_" 0 75 'grml' 2>$TMP_ || die "problems getting first user of system"
- tmp_="user=$(<$TMP_)"
- options_="$options_ $tmp_"
-
- BOOT_ARGS_="$options_"
-}
-#}}}
-
-
function removeTmpFiles
{
execute "rm -f $TMP_" warn
function actionClean
{
- for i in dhcpd.conf minirt26.gz; do
+ for i in dhcpd.conf initrd.img; do
execute "rm -f $PATH_/$i*"
done
. $DEFAULT_CONFIG_
. $CONFIG_
-# used config vars:
-# MODULES_PATH_
-# MODULES_PATH_ROOT_DIFF_
-# KERNEL_VERSION_
-# ORIGINAL_INITRD_
-if [[ $MODULES_PATH_ == "" || $KERNEL_VERSION_ == "" || $ORIGINAL_INITRD_ == "" ]]; then
- warn "MODULES_PATH_=\"$MODULES_PATH_\" \
-KERNEL_VERSION_=\"$KERNEL_VERSION_\" \
-ORIGINAL_INITRD_=\"$ORIGINAL_INITRD_\""
- die "False configuration, please update $CONFIG_"
-fi
-
case "$1" in
interactive) actionInteractive ;;