Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- countdown=5
- default=0
- title[0]="Arch Linux"
- kernel[0]="ArchLinux.image"
- cmdline[0]="root=/dev/mmcblk0p2 rootfstype=ext3 rootwait"
- title[1]="OpenELEC"
- kernel[1]="OpenELEC.image"
- cmdline[1]="root=/dev/ram0 rdinit=/init boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p3 ssh debugging"
- title[2]="Debian"
- kernel[2]="ArchLinux.image"
- cmdline[2]="root=/dev/mmcblk0p4 rootfstype=ext4 rootwait"
- title[3]="USB (sda1)"
- kernel[3]="ArchLinux.image"
- cmdline[3]="root=/dev/sda1 rootwait"
- version=0.1
- tempfile=$( tempfile 2>/dev/null ) || tempfile=/tmp/choice$$
- trap "rm -f $tempfile" 0 1 2 5 15
- echo "4 1 1 7" > /proc/sys/kernel/printk
- dialog --backtitle "XECLoader $version" --pause "Starting ${title[$default]}... \nPress Ok to start now.\nPress Cancel to select." 10 40 $countdown
- if [ $? -eq 0 ]; then
- clear
- kexec -l "/mnt/kernels/${kernel[$default]}" --command-line="$( cat /proc/cmdline ) ${cmdline[$default]}"
- kexec -e
- else
- for (( i=0; i<${#title[@]}; i++ )); do
- options[2*i]=$i
- options[2*i+1]="${title[$i]}"
- done
- dialog --backtitle "XECLoader $version" --menu "Select system or cancel to launch a shell." 20 50 20 "${options[@]}" 2> $tempfile
- if [ $? -eq 0 ]; then
- dialog --backtitle "XECLoader $version" --infobox "Starting ${title[$( cat $tempfile )]}..." 4 40;
- kexec -l "/mnt/kernels/${kernel[$( cat $tempfile )]}" --command-line="$( cat /proc/cmdline ) ${cmdline[$( cat $tempfile )]}"
- rm $tempfile
- kexec -e
- else
- /bin/bash
- fi
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement