2019-04-04 14:36:27 -04:00
#!/bin/bash
#Check for root
if [ [ $EUID -ne "0" ] ]
then
echo " You must be root - try: sudo $0 or sudo bash $0 "
exit 1
fi
#check for wipefs
command -v wipefs >/dev/null 2>& 1 || { echo >& 2 "I require wipefs but it's not installed. Aborting." ; exit 1; }
script = " $0 "
basename = " $( dirname $script ) "
2019-04-04 15:46:00 -04:00
DIR = "/home/temp/rescueusb"
2019-04-04 14:36:27 -04:00
#Warn user that this will detroit the things
echo "This will destroy all data and partitions on the device name you enter without further warning!!"
#get device name
echo "Please enter the device you wish to use (/dev/sdX):"
read dev
device = ${ dev } 1
echo " Unmounting $device Partitions... "
for part in $dev *
do umount $part > /dev/null 2>& 1
done
#umount $device
DD = " ${ device : 0 : 7 } "
if [ " $DD " = = "/dev/sd" ] ;
then
echo ""
else
echo "Bad device - must start with /dev/sd"
exit 1
fi
if [ ${ device : 8 : 1 } = = 0 ]
then
echo "Bad Partition! should end in the number 1 or 2 - e.g. /dev/sdc1"
exit1
fi
#format device
echo " Partitioning: $dev "
read -p "Proceed with partitioning (y/n): " opinion2
if [ [ $opinion2 = = 'y' ] ] || [ [ $opinion2 = = 'yes' ] ]
then
#umount $device > /dev/null 2>&1
label = "RESCUE-USB"
##Remove existing data/partitions
echo " Removing existing partitions and data from $dev ... "
#dd if=/dev/zero of=$dev bs=512 count=1 conv=notrunc > /dev/null 2>&1
wipefs -a $dev > /dev/null 2>& 1
##Create partition table
echo "Creating partition table..."
parted $dev --script -- mklabel msdos > /dev/null 2>& 1
##Create partitions
echo " Creating partitions on $device ... "
parted $dev --script -- mkpart primary 0% 90% > /dev/null 2>& 1
parted $dev --script -- mkpart primary 91% 100% > /dev/null 2>& 1
#Create /home/temp if it doesn't exist
echo " Creating working directory of $DIR ... "
mkdir -p $DIR
#Fetch Easy2Boot
echo "Fetching Easy2Boot..."
2019-10-31 11:20:47 -04:00
wget -O $DIR /E2B.zip "https://f002.backblazeb2.com/file/tfmm-files/E2B.zip" > /dev/null 2>& 1
2019-04-04 14:36:27 -04:00
#Extract it
echo "Extracting Easy2Boot..."
unzip -d $DIR / $DIR /E2B.zip > /dev/null 2>& 1
#Remove the zip
echo "Removing Easy2Boot zip..."
rm -f $DIR /E2B.zip > /dev/null 2>& 1
echo "Formatting primary partition..."
#Run E2B's fmt.sh
/sbin/mkfs.vfat -F32 -n " $label " $device > /dev/null 2>& 1
ptn = ${ device : -1 }
echo Making partition " $ptn " active using parted...
sudo parted -s ${ device %? } set $ptn boot on > /dev/null 2>& 1
sleep 2
sync
sleep 5
echo " Mounting $device as /mnt/myusb "
mkdir -p /mnt/myusb 2>/dev/null
mount $device /mnt/myusb > /dev/null 2>& 1
echo "Installing grub4dos to MBR"
chmod +rwx $DIR /_ISO/docs/linux_utils/bootlace.com > /dev/null 2>& 1
$DIR /_ISO/docs/linux_utils/bootlace.com --time-out= 0 ${ device %? } > /dev/null 2>& 1
echo "Installing grub4dos to PBR"
$DIR /_ISO/docs/linux_utils/bootlace.com --floppy= 1 $device > /dev/null 2>& 1
echo " Copying $DIR to /mnt/myusb... "
cp -r -i $DIR /* /mnt/myusb > /dev/null 2>& 1
#Fetch ISOs to device
2019-04-04 15:46:00 -04:00
echo "Copying ISOs from internet to the USB..."
pushd $DIR
wget -O $DIR /chntpw.zip http://pogostick.net/~pnh/ntpasswd/cd140201.zip > /dev/null 2>& 1
unzip chntpw.zip
cp cd140201.iso /mnt/myusb/_ISO/MAINMENU/chntpw.iso
2019-09-13 11:45:52 -04:00
wget -O $DIR /clonezilla.iso "https://osdn.net/frs/redir.php?m=constant&f=clonezilla%2F71318%2Fclonezilla-live-2.6.2-15-amd64.iso" > /dev/null 2>& 1
2019-04-04 15:46:00 -04:00
cp clonezilla.iso /mnt/myusb/_ISO/MAINMENU/
2019-09-13 11:45:52 -04:00
wget -O $DIR /supergrub2disk.iso "https://sourceforge.net/settings/mirror_choices?projectname=supergrub2&filename=2.04s1/super_grub2_disk_2.04s1/super_grub2_disk_hybrid_2.04s1.iso&selected=managedway" > /dev/null 2>& 1
2019-04-04 15:46:00 -04:00
cp supergrub2disk.iso /mnt/myusb/_ISO/MAINMENU/
2019-09-13 11:45:52 -04:00
wget -O $DIR /systemrescuecd.iso "https://osdn.net/projects/systemrescuecd/storage/releases/6.0.3/systemrescuecd-6.0.3.iso" > /dev/null 2>& 1
2019-10-31 11:20:47 -04:00
cp systemrescuecd.iso /mnt/myusb/_ISO/MAINMENU/
2019-12-02 15:57:43 -05:00
wget -O $DIR /kali-2019.04.iso "https://cdimage.kali.org/kali-2019.4/kali-linux-2019.4-amd64.iso" > /dev/null 2>& 1
cp kali-2019.04.iso /mnt/myusb/_ISO/MAINMENU/
wget -O $DIR /acti-new.iso "https://f002.backblazeb2.com/file/tfmm-files/acti-new.iso" > /dev/null 2>& 1
cp acti-new.iso /mnt/myusb/_ISO/MAINMENU/acronis-new.iso
wget -O $DIR /acti-2012.iso "https://f002.backblazeb2.com/file/tfmm-files/acti-2012.iso" > /dev/null 2>& 1
cp acti-2012.iso /mnt/myusb/_ISO/MAINMENU/acronis-2012.iso
wget -O $DIR /WPEF.iso "https://f002.backblazeb2.com/file/tfmm-files/WPEF.iso" > /dev/null 2>& 1
cp WPEF.iso /mnt/myusb/_ISO/MAINMENU/WinPE_Fixer.iso
2019-04-04 15:46:00 -04:00
popd > /dev/null 2>& 1
2019-12-02 15:57:43 -05:00
# pushd /mnt/myusb/_ISO/MAINMENU/ > /dev/null 2>&1
2019-09-13 11:45:52 -04:00
# wget -nd -e robots=off -r --no-parent /mnt/myusb/_ISO/MAINMENU/ http://files.tfmm.co/isos/ --reject index.htm* > /dev/null 2>&1
2019-10-31 11:20:47 -04:00
# for iso in $(curl -s -X GET 'https://registry.tfmm.co/service/rest/v1/assets?repository=tfmm-raw'| jq -r '.items | .[].downloadUrl'); do wget $iso; done
2019-12-02 15:57:43 -05:00
# wget -O acti-new.iso "https://f002.backblazeb2.com/file/tfmm-files/acti-new.iso" > /dev/null 2>&1
# mv acti-new.iso /mnt/myusb/_ISO/MAINMENU/acronis-new.iso
# wget -O acti-2012.iso "https://f002.backblazeb2.com/file/tfmm-files/acti-2012.iso" > /dev/null 2>&1
# mv acti-2012.iso /mnt/myusb/_ISO/MAINMENU/acronis-2012.iso
# wget -O WPEF.iso "https://f002.backblazeb2.com/file/tfmm-files/WPEF.iso" > /dev/null 2>&1
# mv WPEF.iso /mnt/myusb/_ISO/MAINMENU/WinPE_Fixer.iso
# popd > /dev/null 2>&1
2019-04-04 14:36:27 -04:00
#Use E2B's defragger
echo "Defragmenting the drive and ISOs..."
chmod +x $DIR /_ISO/docs/linux_utils/defragfs > /dev/null 2>& 1
$DIR /_ISO/docs/linux_utils/defragfs /mnt/myusb -f > /dev/null 2>& 1
#mount WinPE iso to copy /tools dir
echo "Mounting WinPE ISO and copying tools directory..."
mkdir $DIR /isomount > /dev/null 2>& 1
mount -o loop /mnt/myusb/_ISO/MAINMENU/WinPE_Fixer.iso $DIR /isomount > /dev/null 2>& 1
#copy tools dir
cp -r $DIR /isomount/tools /mnt/myusb/ > /dev/null 2>& 1
#unmount ISO
umount $DIR /isomount > /dev/null 2>& 1
#Get files to Update Menu settings
2019-04-04 15:46:00 -04:00
echo "Placing menu config files..."
cp resources/menu_defaults.txt /mnt/myusb/_ISO/menu_defaults.txt > /dev/null 2>& 1
cp resources/MyE2B.cfg /mnt/myusb/_ISO/MyE2B.cfg > /dev/null 2>& 1
2019-04-04 14:36:27 -04:00
#Remove working dir
echo "Removing working directory..."
rm -rf $DIR > /dev/null 2>& 1
#unmount drive
echo "Unmounting drive..."
sleep 20
umount $dev * > /dev/null 2>& 1
umount /mnt/myusb > /dev/null 2>& 1
#remove mountpoint
echo "Removing mountpoint..."
rm -r /mnt/myusb > /dev/null 2>& 1
#Complete
echo "Script completed, your USB has been created!"
exit 1
else
echo "You said no, stopping."
exit 1
2019-09-13 11:45:52 -04:00
fi