75 lines
1.6 KiB
Bash
Executable file
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."
|