diff options
Diffstat (limited to 'scripts/install.sh')
-rwxr-xr-x | scripts/install.sh | 87 |
1 files changed, 44 insertions, 43 deletions
diff --git a/scripts/install.sh b/scripts/install.sh index 5cb5e01f4..79bfa36bf 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -4,16 +4,6 @@ if [ $(id -u) -ne 0 ];then exit 1 fi -printf "Checking if grub is installed" -grub=$(which grub) - -if [ ! -z $grub -a -x $grub ];then - printf "...okay\n" -else - printf "...failed\n" - exit 1 -fi - printf "Checking if sfdisk is installed" sfdisk=$(which sfdisk) @@ -79,7 +69,7 @@ if [ -z $1 ];then exit 1 else if [ -z $2 ];then - printf "Please give your install tar as second parameter\n" + printf "Please give your install tar archive as second parameter\n" exit 2 fi if [ -f $2 ];then @@ -105,7 +95,7 @@ else printf "This will destroy all data on $1, are you sure?\n" printf "Type "y" to continue\n" read y - if [ $y = "y" ];then + if [ "$y" = "y" ];then $sfdisk -l $1 2>&1 |grep 'No medium' if [ $? -eq 0 ];then exit 1 @@ -135,34 +125,45 @@ if [ $($sfdisk -l $1 2>/dev/null|grep Empty|wc -l) -ne 4 ];then read y if [ $y = "y" ];then printf "Wiping existing partitions\n" - dd if=/dev/zero of=$1 bs=512 count=1 + dd if=/dev/zero of=$1 bs=512 count=1 >/dev/null 2>&1 else printf "Exiting.\n" exit 1 fi fi -printf "Create partition and filesystem\n" +case $2 in + wrap*) + speed=38400 + ;; + *) + speed=115200 + ;; +esac + if [ $rb532 -ne 0 ];then + printf "Create partition and filesystem for rb532\n" 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//') + maxsize=$(env LC_ALL=C $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 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 sleep 2 + $mke2fs ${1}2 sync dd if=$3 of=${1}1 bs=2048 sync else rootpart=${1}1 if [ $cfgfs -eq 0 ];then + printf "Create partition and filesystem without cfgfs\n" $sfdisk $1 << EOF ,,L ; @@ -172,15 +173,17 @@ y EOF $mke2fs ${rootpart} else + printf "Create partition and filesystem with cfgfs\n" $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)) + maxsize=$(env LC_ALL=C $parted $1 -s unit cyl print |awk '/^Disk/ { print $3 }'|sed -e 's/cyl//') + rootsize=$(($maxsize-2)) - $parted -s $1 unit cyl mkpartfs primary ext2 0 $rootsize + $parted -s $1 unit cyl mkpart 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 ${1}1 fi fi @@ -192,7 +195,7 @@ else fi sleep 2 -$tune2fs -c 0 -i 0 ${rootpart} >/dev/null +$tune2fs -c 0 -i 0 -m 1 ${rootpart} >/dev/null if [ $? -eq 0 ];then printf "Successfully disabled filesystem checks on ${rootpart}\n" else @@ -209,30 +212,28 @@ chmod 1777 $tmp/tmp chmod 4755 $tmp/bin/busybox if [ $rb532 -eq 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 -terminal --timeout=2 serial console -timeout 2 -default 0 -hiddenmenu -title linux -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" -$grub --batch --no-curses --no-floppy --device-map=/dev/null >/dev/null << EOF -device (hd0) $1 -root (hd0,0) -setup (hd0) -quit + printf "Installing GRUB bootloader\n" + mkdir -p $tmp/boot/grub + mount -o bind /dev $tmp/dev + chroot $tmp mount -t proc /proc /proc + chroot $tmp mount -t sysfs /sys /sys +cat << EOF > $tmp/boot/grub/grub.cfg +set default=0 +set timeout=1 +serial --unit=0 --speed=$speed +terminal_output serial +terminal_input serial + +menuentry "GNU/Linux (OpenADK)" { + insmod ext2 + set root=(hd0,1) + linux /boot/vmlinuz-adk root=/dev/sda1 ro init=/init console=ttyS0,$speed console=tty0 panic=10 +} EOF + chroot $tmp grub-install $1 + umount $tmp/proc + umount $tmp/sys + umount $tmp/dev fi printf "Creating device nodes\n" |