Skip to content

Commit 5fd29f4

Browse files
committed
Introduced SDCard helper for RPi
1 parent ce80afb commit 5fd29f4

1 file changed

Lines changed: 103 additions & 0 deletions

File tree

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
#/bin/bash
2+
3+
# This script enables the SDCard as ext4 to be used as storage
4+
# it also activates some spare for swap
5+
6+
MOUNTPOINT="/mnt/sdshare"
7+
FS="ext4"
8+
9+
10+
SDCARD="/dev/mmcblk0"
11+
12+
if test -e "$SDCARD"p3 ; then
13+
echo "ERROR: SWAP already exists"
14+
exit 1
15+
fi
16+
17+
if test -e "$SDCARD"p4 ; then
18+
echo "ERROR: Data partition already exists"
19+
exit 1
20+
fi
21+
22+
echo "Creating partitions.."
23+
fdisk "$SDCARD" <<EOF
24+
n
25+
p
26+
3
27+
28+
+256M
29+
n
30+
p
31+
4
32+
33+
34+
w
35+
36+
37+
EOF
38+
39+
echo Reloading partition table
40+
partprobe "$SDCARD"
41+
42+
if test -e "$SDCARD"p3 ; then
43+
if test -e "$SDCARD"p4 ; then
44+
echo "Ok, all partitions available"
45+
else
46+
echo "ERROR: Data partition is missing."
47+
exit 1
48+
fi
49+
else
50+
echo "ERROR: SWAP missing."
51+
exit 1
52+
fi
53+
54+
mkswap /dev/mmcblk0p3
55+
if [ $? -ne 0 ] ; then
56+
echo "Error formating swap"
57+
exit 1
58+
fi
59+
60+
SWAP_UUID=$( blkid | grep "/dev/mmc*.*TYPE=\"swap\"" | egrep -o " UUID=\"([a-zA-Z0-9-])*\"" | sed 's/ //g' )
61+
62+
if grep -q "${SWAP_UUID}" /etc/fstab ; then
63+
echo "Error: swap is already configured in fstab"
64+
exit 1
65+
fi
66+
67+
echo "Adding swap to fstab"
68+
echo "${SWAP_UUID} none swap defaults 0 0" >> /etc/fstab
69+
70+
echo "Creating data partition"
71+
mkfs.ext4 -F "$SDCARD"p4
72+
if [ $? -ne 0 ] ; then
73+
echo "Error formating data"
74+
exit 1
75+
fi
76+
77+
DATA_UUID=$( blkid | grep "${SDCARD}p4.*TYPE=\"ext4\"" | egrep -o " UUID=\"([a-zA-Z0-9-])*\"" | sed 's/ //g' )
78+
if grep -q "${DATA_UUID}" /etc/fstab ; then
79+
echo "Error: data is already configured in fstab"
80+
exit 1
81+
fi
82+
83+
echo "${DATA_UUID} ${MOUNTPOINT} ext4 defaults,noatime,nodiratime,data=writeback 0 0 ">> /etc/fstab
84+
85+
mkdir -p "${MOUNTPOINT}"
86+
mount "${MOUNTPOINT}"
87+
88+
if [ $? -ne 0 ] ; then
89+
echo "ERROR mounting data partion"
90+
exit 1
91+
fi
92+
93+
echo "## Moving files..."
94+
mv /opt/piratebox/share "${MOUNTPOINT}/share" > /dev/null 2>&1
95+
ln -s "${MOUNTPOINT}/share" /opt/piratebox/share > /dev/null
96+
97+
98+
# Force update diskwirte
99+
touch -t 197001010101 /opt/piratebox/www/diskusage.html
100+
wget http://127.0.0.1/cgi-bin/diskwrite.py -q -O -
101+
102+
exit 0
103+

0 commit comments

Comments
 (0)