Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- die( )
- {
- echo $1 ; exit 1
- }
- doit( )
- {
- echo "+ $*"
- $* || die "command failed"
- }
- unmount( )
- {
- devices=`mount | grep ^$1 | cut -f 1 -d ' '`
- for dev in $devices ; do doit umount $dev ; done
- }
- last( )
- {
- ls -d $* | tail -1
- }
- check( )
- {
- result=1
- partitions=( `sudo fdisk -l | grep ^$1 | cut -d " " -f 1` )
- if [ ${#partitions[@]} -eq 2 ]
- then
- file -sL ${partitions[0]} | grep \"System > /dev/null 2>&1 &&
- file -sL ${partitions[1]} | grep \"Storage\" > /dev/null 2>&1 &&
- result=0
- fi
- return $result
- }
- [ $# -ne 1 ] && die "Usage: sudo `basename $0` /dev/sdb"
- device=$1
- device1=${device}1
- device2=${device}2
- bootloader=`last build.OpenELEC-RPi.arm-devel/bcm2835-bootloader-*`
- system=`last target/OpenELEC-RPi.arm-devel-*.system`
- kernel=`last target/OpenELEC-RPi.arm-devel-*.kernel`
- echo "Updating $device with:"
- echo
- echo "bootloader = $bootloader"
- echo "system = $system"
- echo "kernel = $kernel"
- echo
- echo -n "Do you want to continue (y/n)? "
- read answer
- [ "$answer" != "y" ] && exit 0
- echo
- unmount $device
- if ! check $device
- then
- doit parted -s $device mklabel msdos
- doit parted -s $device unit cyl mkpart primary fat32 -- 0 16
- doit parted -s $device set 1 boot on
- doit parted -s $device unit cyl mkpart primary ext2 -- 16 -2
- doit mkfs.vfat -n System $device1
- doit mkfs.ext4 -L Storage $device2
- doit partprobe
- fi
- doit mkdir -p /tmp/media/System
- doit mount $device1 /tmp/media/System
- doit cp $bootloader/arm128_start.elf /tmp/media/System/start.elf
- doit cp $bootloader/bootcode.bin /tmp/media/System/
- doit cp $bootloader/loader.bin /tmp/media/System/
- doit cp $system /tmp/media/System/SYSTEM
- doit cp $kernel /tmp/media/System/kernel.img
- echo "boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 ssh quiet" > /tmp/media/System/cmdline.txt
- doit sync
- doit umount $device1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement