raspberrypi/tools/pi_sd_prep.sh

75 lines
1.6 KiB
Bash
Executable file

#!/bin/bash
# cleanup
# trap ctrl-c and call ctrl_c()
trap cleanup INT
function cleanup() {
rm -f /tmp/noobs.zip
umount -f /tmp/sdcard.$$ >/dev/null 2>&1
echo "Aborted."
exit 1
}
if [[ $EUID -ne 0 ]]; then
echo "ERROR: this script must be run as root (i.e. using \`sudo'.)"
exit 1
fi
PATH=${PATH}:/sbin:/usr/sbin
if [ -z "$1" ]; then
echo "USAGE: pi_sd_prep.sh device"
exit 1
fi
if [ ! -b "$1" ]; then
echo "ERROR: no such device: $1"
exit 1
fi
DEV="$1"
echo "Unmoounting all partitions on $DEV:"
PARTS="`df | grep ^$DEV | awk '{ print $1 }'`"
if [ ! -z "$PARTS" ]; then
for PART in $PARTS; do
echo "...$PART"
umount "$PART"
done
fi
echo "...done"
echo "Preparing partition table on $DEV:"
echo -e "d\n1\nd\n2\nd\n3\nd\n4\nd\n5\nd\n6\nn\np\n1\n\n\nt\nb\na\n1\nw\nq\n" | fdisk $DEV >/dev/null
echo "...done"
echo "Formatting partition on $DEV:"
mkfs.vfat ${DEV}1
echo "...done"
echo "Mounting partition on $DEV:"
mkdir -p /tmp/sdcard.$$
mount -t vfat "${DEV}1" /tmp/sdcard.$$
echo "...done"
echo "Downloading latest NOOBS:"
curl -#Lo /tmp/noobs.zip http://downloads.raspberrypi.org/NOOBS_latest
echo "...done"
echo "Unzipping to SD card..."
unzip -q -d /tmp/sdcard.$$ /tmp/noobs.zip
echo "...done"
# get NOOBS version info
NOOBS_VERSION=`grep -i "^NOOBS Version:" /tmp/sdcard.$$/BUILD-DATA | cut -d':' -f2 | tr -d '[[:space:]]'`
BUILD_DATE=`grep -i "^Build-date:" /tmp/sdcard.$$/BUILD-DATA | cut -d':' -f2 | tr -d '[[:space:]]'`
echo "unmounting SD card..."
sync;sync;sync
umount /tmp/sdcard.$$
echo "...done"
rm -f /tmp/noobs.zip
rmdir /tmp/sdcard.$$
echo "NOOBS $NOOBS_VERSION ($BUILD_DATE) has been installed and is ready to be booted."