summaryrefslogtreecommitdiffstats
path: root/build_tools/clarch/bootusb/bootinst.sh
blob: 258413c0880f1b388d751f79ffd0da7afafcfc51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
set -e
TARGET=""
MBR=""
DISTRO=MythVantage
MP=`pwd`
# Find out which partition or disk are we using
MYMNT=$(cd -P $(dirname $0) ; pwd)
while [ "$MYMNT" != "" -a "$MYMNT" != "." -a "$MYMNT" != "/" ]; do
   TARGET=$(egrep "[^[:space:]]+[[:space:]]+$MYMNT[[:space:]]+" /proc/mounts | cut -d " " -f 1)
   if [ "$TARGET" != "" ]; then break; fi
   MYMNT=$(dirname "$MYMNT")
done

if [ "$TARGET" = "" ]; then
   echo "Can't find device to install to."
   echo "Make sure you run this script from a mounted device."
   exit 1
fi

MBR=$(echo "$TARGET" | sed -r "s/[0-9]+\$//g")
NUM=${TARGET:${#MBR}}
cd "$MYMNT"
clear
echo $MP

echo "This installer will setup disk $TARGET to boot only $DISTRO."
if [ "$MBR" != "$TARGET" ]; then
   echo
   echo "Warning! Master boot record (MBR) of $MBR will be overwritten."
   echo "If you use $MBR to boot any existing operating system, it will not work"
   echo "anymore. Only $DISTRO will boot from this device. Be careful!"
fi
echo
echo "Press any key to continue, or Ctrl+C to abort..."
read junk
clear
echo "Flushing filesystem buffers, this may take a while..."
sync
pwd

# setup MBR if the device is not in superfloppy format
if [ "$MBR" != "$TARGET" ]; then
   echo "Setting up MBR on $MBR..."
   syslinux/lilo -S /dev/null -M $MBR ext 
   # this must be here to support -A for extended partitions
   #echo "Activating partition $TARGET..."
   syslinux/lilo -S /dev/null -A $MBR $NUM
   echo "Updating MBR on $MBR..." 
   # this must be here because LILO mbr is bad. mbr.bin is from syslinux
   cat syslinux/mbr.bin > $MBR
fi

echo "Setting up boot record for $TARGET..."
 syslinux/syslinux  $TARGET

echo "Disk $TARGET should be bootable now. Installation finished."

echo
echo "Read the information above and then press any key to exit..."
read junk