#!/bin/sh#Created by Budh & TheX1le#With a few code segments from Jabra and Muts#BackTrack 2 Installer############################################################ Values ############################################################VERSION=0.0.3BOOTPS=50SWAPPS=512ROOTPS=3072 #not implimented yet#SOURCE=#ROOT=#BOOT=INPUT=$*PROG=`basename $0`############################################################ Displays script version ############################################################pversion() { echo "version $VERSION" exit 0}############################################################ display script proper usage ############################################################usage() { clear echo " usage: $PROG [options]" echo " " echo " -f --format Format Disk" echo " -h --help Show the help message" echo " -i --interactive Interactive step by step install mode" echo " -d --disk Install Disk IE hda or sda" echo " -v --version Show the version" echo " " exit 0}############################################################user input for commandline arguments ############################################################script_arg() { case "$INPUT" in -f|--format) budh_fdisk ;; -i|--interactive) usr_input ;; -d|--disk) non_usr_input ;; -h|--help) echo "NOT YET CREATED" ;; -v|--version) pversion ;; *) usage ;; esac}############################################################ NonInteractive Input #############################################################should read the install disk to feed to rest of script not sure how to impliment yetnon_usr_input() {echo "Place Holder"}############################################################ Budh's Fdisk ############################################################# NOT FULLY DYNAMIC YET!budh_fdisk() { #Simple shell function that creates the partition for Backtrack HD Install using Parallels #Author: Budh, budh -at- nagologic -dot- com echo "Welcome, this will set up your hard drives to install Backtrack2" echo "First we need to know what sizes you want your partitions to be" echo -n "Boot Partition size in MB ie 1GB = 1024MB (default 50): "; read BOOTPS echo -n "Swap Partition size in MB ie 1GB = 1024MB (default 512) "; read SWAPPS echo -n "ROOT Partition size in MB ie 1GB = 1024MB"; read ROOTPS #Warns the user that formatting procedure is taking place. clear echo "WARNING!!" echo "This procedure will wipe the content of the current hard drive." echo -n "Are you sure you want to continue. (y/n): "; read sAnswer if [ $sAnswer = "n" ] ; then echo "Leaving..." exit 0 fi echo "Creating the partitions..." ERRMSG=$(echo -e "\033[31m Partition creation failed on") SUCMSG=$(echo "Partition creation was successfull") fdisk /dev/hda <<< $'n\np\n1\n\n+'"$BOOTPS"$'M\nn\np\n2\n\n+'"$SWAPPS"$'M\n\nn\np\n3\n\n\n\na\n1\nt\n2\n82\nw\nq\n' >/dev/nullerrcsk fdisk /dev/hda <<< $'p\nq\n' echo "Formating the drives..." ERRMSG=$(echo -e "\033[31m mkfs.ext3 failed") SUCMSG=$() mkfs.ext3 /dev/hda1 >/dev/null errcsk ERRMSG=$(echo -e "\033[31m mkfs.ext3 failed") SUCMSG=$() mkfs.ext3 /dev/hda3 >/dev/null errcsk mkswap /dev/hda2 swapon /dev/hda2exit 0}###########################################################r# Error checking Function, based on ouput codes ie ## 0=success any thing is is failure ############################################################errcsk() { if [ "$?" -na 0 ]; then echo $ERRMSG exit else echo $SUCMSG fi}############################################################ Interactive User Input ############################################################usr_input() { clear echo "This simple script is just for installing bt2, it assumes you have created and formatted your partitions all ready. Version BETA 2" #Handles input of boot and root partitions echo "Your Source for BT files EX. /" read SOURCE echo "Your boot partition EX. hda1" read BOOT echo "Your root partition EX. hda3" read ROOT clear}############################################################ Input Validation Chk for null value ############################################################input_val() {if [ -z "$SOURCE" ]; then echo "Please set a source" exitelse if [ -z "$BOOT" ]; then echo "Please set a boot Destination" exit else if [ -z "$ROOT" ]; then echo "Please set a root Destination" exit fi fifi}############################################################ Mounts Partitons and checks that they exist" ############################################################mount_an_chk() { if [ "$BOOT" == "$ROOT" ]; then echo -e "This is not the best recomended install method. Continue? [y/n]" read YES if [ "y" != "$YES" ]; then exit fi echo "Mounting Drive" ERRMSG=$(echo -e "\033[31m Mounting failed check your partitions") SUCMSG=$(echo "Drive mounted sucessfully") mount /dev/$ROOT /tmp/backtrack errcsk else echo "Mounting Drives" mount /dev/$BOOT /tmp/backtrack/boot mount /dev/$ROOT /tmp/backtrack ERRMSG=$(echo -e "\033[31m Mounting failed check your partitions") SUCMSG=$(echo "Drives mounted sucessfully") mount /dev/$ROOT /tmp/backtrack errcsk fi}############################################################ Creats new install / with files and folder ############################################################cp_root() {mkdir -p /tmp/backtrack/bootcp --preserve -R -v $SOURCE/{bin,dev,home,pentest,root,usr,etc,lib,opt,sbin,var} /tmp/backtrackERRMSG=$(echo -e "\033[31m Files did not copy correctly there were some errors")SUCMSG=$(echo "Backtrack files copied sucessfully")errcskmkdir /tmp/backtrack/{mnt,proc,sys,tmp}ERRMSG=$(echo -e "\033[31m mnt,proc,sys,tmp failed to be made there was an error")SUCMSG=$(echo "mnt,proc,sys,tmp created sucessfully")errcskcp "$SOURCE"/boot/vmlinuz /tmp/backtrack/bootERRMSG=$(echo -e "\033[31m Kernel did not copy correctly there was an error")SUCMSG=$(echo "Kernel copied sucessfully")errcskread -p "Backtrack copied to hard drive successfully press the ANY KEY to continue"clearecho "mounting dev and proc"mount --bind /dev/ /tmp/backtrack/dev/mount -t proc proc /tmp/backtrack/proc/ERRMSG=$(echo -e "\033[31m dev or proc failed to mount there was an error")SUCMSG=$(echo "dev and proc mounted sucessfully")errcsk}############################################################ Chroot Function #############################################################Not yet Implimented BUDH WHERE IS MY SOLUTION!chrooted() {echo "your next step is to chroot into your new install IE [chroot /tmp/backtrack/ /bin/bash], then edit /etc/lilo.conf and run lilo -v . Thats it your installed"}################################################################ ############## Main ############### ################################################################script_arg