|
@@ -1,4 +1,4 @@
|
|
|
-
|
|
|
+
|
|
|
if [ $(id -u) -ne 0 ];then
|
|
|
printf "Installation is only possible as root\n"
|
|
|
exit 1
|
|
@@ -55,16 +55,20 @@ else
|
|
|
fi
|
|
|
|
|
|
cfgfs=1
|
|
|
-while getopts "n" option
|
|
|
+rb532=0
|
|
|
+while getopts "nr" option
|
|
|
do
|
|
|
case $option in
|
|
|
n)
|
|
|
- cfgfs=0
|
|
|
- ;;
|
|
|
+ cfgfs=0
|
|
|
+ ;;
|
|
|
+ r)
|
|
|
+ rb532=1
|
|
|
+ ;;
|
|
|
*)
|
|
|
- printf "Option not recognized\n"
|
|
|
- exit 1
|
|
|
- ;;
|
|
|
+ printf "Option not recognized\n"
|
|
|
+ exit 1
|
|
|
+ ;;
|
|
|
esac
|
|
|
done
|
|
|
shift $(($OPTIND - 1))
|
|
@@ -84,6 +88,18 @@ else
|
|
|
printf "$2 is not a file, Exiting\n"
|
|
|
exit 1
|
|
|
fi
|
|
|
+ if [ $rb532 -eq 1 ];then
|
|
|
+ if [ -z $3 ];then
|
|
|
+ printf "Please give the kernel as third parameter\n"
|
|
|
+ exit 2
|
|
|
+ fi
|
|
|
+ if [ -f $3 ];then
|
|
|
+ printf "Installing $3 on $1\n"
|
|
|
+ else
|
|
|
+ printf "$3 is not a file, Exiting\n"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+ fi
|
|
|
if [ -b $1 ];then
|
|
|
printf "Using $1 as CF/USB disk for installation\n"
|
|
|
printf "This will destroy all data on $1, are you sure?\n"
|
|
@@ -127,7 +143,23 @@ if [ $($sfdisk -l $1 2>/dev/null|grep Empty|wc -l) -ne 4 ];then
|
|
|
fi
|
|
|
|
|
|
printf "Create partition and filesystem\n"
|
|
|
-if [ $cfgfs -eq 0 ];then
|
|
|
+if [ $rb532 -ne 0 ];then
|
|
|
+ rootpart=${1}2
|
|
|
+ $parted -s $1 mklabel msdos
|
|
|
+ sleep 2
|
|
|
+ maxsize=$(parted $1 -s unit cyl print |awk '/^Disk/ { print $3 }'|sed -e 's/cyl//')
|
|
|
+ rootsize=$(($maxsize-2))
|
|
|
+
|
|
|
+ $parted -s $1 unit cyl mkpart primary ext2 0 1
|
|
|
+ $parted -s $1 unit cyl mkpartfs primary ext2 1 $rootsize
|
|
|
+ $parted -s $1 unit cyl mkpart primary fat32 $rootsize $maxsize
|
|
|
+ $parted -s $1 set 1 boot on
|
|
|
+ $sfdisk --change-id $1 1 27
|
|
|
+ $sfdisk --change-id $1 3 88
|
|
|
+ dd if=$3 of=${1}1
|
|
|
+else
|
|
|
+ rootpart=${1}1
|
|
|
+ if [ $cfgfs -eq 0 ];then
|
|
|
$sfdisk $1 << EOF
|
|
|
,,L
|
|
|
;
|
|
@@ -135,51 +167,50 @@ $sfdisk $1 << EOF
|
|
|
;
|
|
|
y
|
|
|
EOF
|
|
|
-
|
|
|
-$mke2fs ${1}1
|
|
|
-
|
|
|
-else
|
|
|
-$parted -s $1 mklabel msdos
|
|
|
-sleep 2
|
|
|
-declare -i maxsize
|
|
|
-maxsize=$(parted $1 -s unit cyl print |awk '/^Disk/ { print $3 }'|sed -e 's/cyl//')
|
|
|
-let rootsize=$maxsize-1
|
|
|
-
|
|
|
-$parted -s $1 unit cyl mkpartfs primary ext2 0 $rootsize
|
|
|
-$parted -s $1 unit cyl mkpart primary fat32 $rootsize $maxsize
|
|
|
-$parted -s $1 set 1 boot on
|
|
|
-$sfdisk --change-id $1 2 88
|
|
|
+ $mke2fs ${rootpart}
|
|
|
+ else
|
|
|
+ $parted -s $1 mklabel msdos
|
|
|
+ sleep 2
|
|
|
+ maxsize=$(parted $1 -s unit cyl print |awk '/^Disk/ { print $3 }'|sed -e 's/cyl//')
|
|
|
+ rootsize=$(($maxsize-1))
|
|
|
+
|
|
|
+ $parted -s $1 unit cyl mkpartfs primary ext2 0 $rootsize
|
|
|
+ $parted -s $1 unit cyl mkpart primary fat32 $rootsize $maxsize
|
|
|
+ $parted -s $1 set 1 boot on
|
|
|
+ $sfdisk --change-id $1 2 88
|
|
|
+ fi
|
|
|
fi
|
|
|
|
|
|
if [ $? -eq 0 ];then
|
|
|
- printf "Successfully created partition ${1}1\n"
|
|
|
+ printf "Successfully created partition ${rootpart}\n"
|
|
|
else
|
|
|
printf "Partition creation failed, Exiting.\n"
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
-sleep 4
|
|
|
-$tune2fs -c 0 -i 0 ${1}1 >/dev/null
|
|
|
-
|
|
|
+sleep 2
|
|
|
+$tune2fs -c 0 -i 0 ${rootpart} >/dev/null
|
|
|
if [ $? -eq 0 ];then
|
|
|
- printf "Successfully disabled filesystem checks on ${1}1\n"
|
|
|
+ printf "Successfully disabled filesystem checks on ${rootpart}\n"
|
|
|
else
|
|
|
printf "Disabling filesystem checks failed, Exiting.\n"
|
|
|
+ exit 1
|
|
|
fi
|
|
|
|
|
|
tmp=$(mktemp -d)
|
|
|
-mount -t ext2 ${1}1 $tmp
|
|
|
+mount -t ext2 ${rootpart} $tmp
|
|
|
printf "Extracting install archive\n"
|
|
|
tar -C $tmp -xzpf $2
|
|
|
printf "Fixing permissions\n"
|
|
|
chmod 1777 $tmp/tmp
|
|
|
chmod 4755 $tmp/bin/busybox
|
|
|
|
|
|
-printf "Copying grub files\n"
|
|
|
-mkdir $tmp/boot/grub
|
|
|
-cp /boot/grub/stage1 $tmp/boot/grub
|
|
|
-cp /boot/grub/stage2 $tmp/boot/grub
|
|
|
-cp /boot/grub/e2fs_stage1_5 $tmp/boot/grub
|
|
|
+if [ $rb532 -ne 0 ];then
|
|
|
+ printf "Copying grub files\n"
|
|
|
+ mkdir $tmp/boot/grub
|
|
|
+ cp /boot/grub/stage1 $tmp/boot/grub
|
|
|
+ cp /boot/grub/stage2 $tmp/boot/grub
|
|
|
+ cp /boot/grub/e2fs_stage1_5 $tmp/boot/grub
|
|
|
|
|
|
cat << EOF > $tmp/boot/grub/menu.lst
|
|
|
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
|
|
@@ -192,13 +223,14 @@ root (hd0,0)
|
|
|
kernel /boot/kernel root=/dev/sda1 init=/init console=ttyS0,115200 console=tty0 panic=10 rw
|
|
|
EOF
|
|
|
|
|
|
-printf "Installing Grub bootloader\n"
|
|
|
+ printf "Installing Grub bootloader\n"
|
|
|
$grub --batch --no-curses --no-floppy --device-map=/dev/null >/dev/null << EOF
|
|
|
device (hd0) $1
|
|
|
root (hd0,0)
|
|
|
setup (hd0)
|
|
|
quit
|
|
|
EOF
|
|
|
+fi
|
|
|
|
|
|
printf "Creating device nodes\n"
|
|
|
mknod -m 666 $tmp/dev/null c 1 3
|