Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- if [ -z "$STORAGE_MEDIA" ]; then
- echo "No STORAGE_MEDIA defined!"
- echo "Please run via with_storage or set STORAGE_MEDIA variable!"
- exit 1;
- fi
- DEVICES=`fdisk -lu|grep '^/dev/.*FAT'|sed 's,^\([^ ]\+\) \+\(\*\?\) \+\([^ ]\+ \+\)\{2\}\([0-9]\+\) \+ [^ ]\+ \+\(.*\)$,\1 - \4 kB \5\t\2,'`
- FS="$IFS"
- IFS='|'
- if [ -z "$DEVICES" ]; then
- echo "No FAT partitions found!"
- exit
- fi
- choice=''
- while [ -z "$choice" ]; do
- num=1
- echo -e "\nAvailable partitions to install LEAF:"
- for i in $DEVICES; do
- echo "$num) $i"
- num=$(($num + 1))
- done
- echo -en "\nSelect partition: "
- read choice
- choice=$(echo "$choice" | sed 's,[^0-9],,g')
- if [ -n "$choice" ] && [ "$(($choice>0 && $choice<$num))" -eq 0 ]; then
- echo "Wrong value selected!"
- choice=""
- fi
- done
- IFS="$FS"
- LINE=$(echo "$DEVICES" | sed -n -e $choice'{p;q}')
- DEVICE=$(echo "$LINE"|awk '{print $1}')
- ACTIVE=$(echo "$LINE"|awk '{print $6}')
- MDEVICE=$(echo "$DEVICE"|sed 's,[0-9]\+,,')
- DEVNUM=$(echo "$DEVICE"|sed 's,.*\([0-9]\+\),\1,')
- # check for primary partition - from 1 to 4
- if [ "$(($DEVNUM>0 && $DEVNUM<$5))" -eq 0 ]; then
- echo "You tried to install on non-primary partition!!! Exitting..."
- sleep 1
- exit 1
- fi
- # check mounts
- if [ -n "`mount|grep "$DEVICE "`" ]; then
- echo "Partition is already mounted!!! Exitting..."
- sleep 1
- exit 1
- fi
- echo -e "\nSyslinux will be installed to $DEVICE, and MBR code on $MDEVICE will be updated. "
- echo -n "Are you sure (y/N)? "
- read choice
- if [ "$choice" != "y" ] && [ "$choice" != "Y" ]; then
- echo "Cancelling operation..."
- sleep 1
- exit 1
- fi
- echo -n "Copy all files to storage? (y/N)? "
- read choice
- if [ "$choice" = "y" ] || [ "$choice" = "Y" ]; then
- echo -n "Mounting sorage... "
- mkdir -p /tmp/mpoint
- mount $DEVICE /tmp/mpoint
- if [ $? -ne 0 ]; then
- echo "Failed! Exitting..."
- sleep 1
- exit 1
- fi
- echo -n "Ok. Copying files... "
- cp -p $STORAGE_MEDIA/* /tmp/mpoint
- if [ $? -ne 0 ]; then
- echo "Failed! Exitting..."
- umount /tmp/mpoint
- sleep 1
- exit 1
- fi
- if [ -d $STORAGE_MEDIA/isolinux ]; then
- mkdir -p /tmp/mpoint/syslinux
- cp -p $STORAGE_MEDIA/isolinux/* /tmp/mpoint/syslinux
- mv /tmp/mpoint/syslinux/isolinux.dpy /tmp/mpoint/syslinux/syslinux.dpy
- mv /tmp/mpoint/syslinux/isolinux.cfg /tmp/mpoint/syslinux/syslinux.cfg
- rm /tmp/mpoint/syslinux/isolinux.*
- fi
- sed -i 's,PKGPATH=[^ ]\+,PKGPATH=/dev/sda'"$DEVNUM"',' /tmp/mpoint/syslinux/syslinux.cfg /tmp/mpoint/leaf.cfg
- sed -i 's,LEAFCFG=[^ ]\+,PKGPATH=/dev/sda'"$DEVNUM"',' /tmp/mpoint/syslinux/syslinux.cfg
- umount /tmp/mpoint
- echo -n "Ok. "
- fi
- echo -n "Updating MBR... "
- # write MBR
- dd if=/usr/share/syslinux/mbr.bin of=$MDEVICE bs=440 count=1
- if [ $? -ne 0 ]; then
- echo "Failed! Exitting..."
- sleep 1
- exit 1
- fi
- echo -n "Ok. Installing syslinux... "
- syslinux -s $DEVICE
- if [ $? -ne 0 ]; then
- echo "Failed! Exitting..."
- sleep 1
- exit 1
- fi
- echo "Ok."
- if [ -z "$ACTIVE" ]; then
- echo "Please, set partition $DEVICE active via fdisk to boot LEAF!"
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement