View difference between Paste ID: u9Qpm5n0 and
SHOW: | | - or go back to the newest paste.
1
# Generates the sdcard partitions for Raspberry Pi sdcard
2
# Thomas Bohm <thomas.bohm@cs.upt.ro>
3
4
# Based on scripts by:
5
# Graeme Gregory <dp@xora.org.uk>
6
# Edward Lin <linuxfae@technexion.com>
7
# This script is GPLv3 licensed!
8
9
#!/bin/bash
10
11
SPREF="/sys/class/block"
12
RBP_DIR="Raspberry Pi"
13
GPU_DIR="GPU partition"
14
DRIVE=""
15
16
devicearray[0]=""
17
18
if [ "`whoami`" != "root" ]; then
19
        echo "Must be root"
20
        exit 1
21
fi
22
23
clear
24
echo "List of removable devices smaller than 10GB : "
25
echo
26
devindex=1
27
for ii in $SPREF/sd?/removable ; do
28
	if [ `cat $ii` == 1 ]; then
29
		devfound=`echo $ii | awk -F "/" {'print $5 '}`
30
		dev_model=`cat $SPREF/$devfound/device/model`
31
		dev_vendor=`cat $SPREF/$devfound/device/vendor`
32
		dev_size=$((`cat $SPREF/$devfound/size`/1024/2))
33
		if [ "$dev_size" -gt "10000" ]; then
34
			continue;
35
		fi
36
		echo "[$devindex]: $dev_vendor -- $dev_model ( $devfound ) size is $dev_size MBytes. "
37
		devicearray[$devindex]=$devfound
38
		devindex=$(($devindex+1))
39
	fi
40
done
41
if [ "$devindex" == "1" ] ; then
42
	echo
43
	echo "No removable devices found !"
44
	exit 1
45
fi
46
47
echo
48
while [ "$DRIVE" == "" ]; do
49
	echo -n "Input device number: "
50
	read choice
51
	if [ "${devicearray[${choice}]}" == "" ]; then
52
		echo
53
		echo "Invalid number ! "
54
		echo
55
	else
56
		DRIVE=${devicearray[${choice}]}
57
	fi
58
done
59
60
echo
61
echo "Are you 100 % sure you want to FORMAT [ $DRIVE ] ?. All data will be lost."
62
echo -n "Enter YES in uppercase to continue: "
63
read sure
64
echo
65
66
if [ "$sure" != "YES" ]; then
67
	exit 1
68
fi
69
70
echo
71
echo "Umounting all partitions of $DRIVE."
72
73
for ii in $SPREF/$DRIVE? ; do
74
	umount /dev/`echo $ii | awk -F "/" {'print $5 '}` 2>/dev/null
75
done
76
77
echo "Partitioning"
78
79
#clear the beginning of the card
80
dd if=/dev/zero of=/dev/$DRIVE bs=1024 count=1024
81
82
#install a blank mbr (blank from the partitions point of view)
83
# dd if=blank_mbr.img of=/dev/$DRIVE bs=512 count=1
84
85
86
SIZE=`fdisk -l /dev/$DRIVE | grep Disk | awk '{print $5}'`
87
88
echo DISK SIZE – $SIZE bytes
89
90
CYLINDERS=`echo $SIZE/255/63/512 | bc`
91
92
echo CYLINDERS – $CYLINDERS
93
94
{
95
#create a new partition table
96
#ext partition for linux, bootable
97
#   start, size, type ( default 0x83 - linux , 0x0C FAT32 ), bootable ( * yes, - no )
98
echo ,19,0x83,*
99
#FAT 32 partition filling rest of card, maybe for /tmp ?
100
echo ,,0x0C,-
101
} | sfdisk -D -H 122 -S 62 -C $CYLINDERS /dev/$DRIVE
102
##############################################
103
104
umount /dev/${DRIVE}1
105
umount /dev/${DRIVE}2
106
107
echo "Formatting partition as EXT"
108
mke2fs -F -L "$MNT_DIR" /dev/${DRIVE}1
109
mkfs.vfat -F 32 -n "$GPU_DIR" /dev/${DRIVE}2
110
sync
111
112
echo "Done. Please remove the card."
113
114