-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild_fat.sh
executable file
·74 lines (60 loc) · 1.54 KB
/
build_fat.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/bash
if [ `whoami` != root ] ; then
echo "This script must be run with root privileges."
exit 1
fi
MY_IMAGE_FILE="fat_image.img"
MY_SD_FAT_MNT="$(mktemp --tmpdir=. --directory TMP_SD_FAT_MNT.XXXX)"
dd if=/dev/zero of=${MY_IMAGE_FILE} bs=1M count=50
fdisk ${MY_IMAGE_FILE} <<EOF > /dev/null 2>&1
n
p
1
t
1
0b
w
EOF
MY_LOOP_DEV=$(losetup --show -f ${MY_IMAGE_FILE}) || {
echo "ERROR"
rm -Rf ${MY_IMAGE_FILE} ${MY_SD_FAT_MNT}
exit 1
}
partprobe "${MY_LOOP_DEV}" || {
echo "ERROR"
losetup -d ${MY_LOOP_DEV}
rm -Rf ${MY_IMAGE_FILE} ${MY_SD_FAT_MNT}
exit 1
}
echo "Verify loop partition 1 exists."
[ -b "${MY_LOOP_DEV}p1" ] || {
echo "ERROR"
losetup -d ${MY_LOOP_DEV}
rm -Rf ${MY_IMAGE_FILE} ${MY_SD_FAT_MNT}
exit 1
}
echo "Initializing FAT volume in partition 1 of SD card image file."
mkfs -t vfat -F 32 ${MY_LOOP_DEV}p1 > /dev/null || {
echo "ERROR"
losetup -d ${MY_LOOP_DEV}
rm -Rf ${MY_IMAGE_FILE} ${MY_SD_FAT_MNT}
exit 1
}
echo "Mounting FAT partition of SD card image file."
mount ${MY_LOOP_DEV}p1 ${MY_SD_FAT_MNT} || {
echo "ERROR"
losetup -d ${MY_LOOP_DEV}
rm -Rf ${MY_SD_FAT_MNT} ${MY_TMP_TAR}
exit 1
}
cp autorun.inf ${MY_SD_FAT_MNT}/
cp -a Docs ${MY_SD_FAT_MNT}/
cp -a Drivers ${MY_SD_FAT_MNT}/
cp LICENSE.txt ${MY_SD_FAT_MNT}/
cp -a start_files ${MY_SD_FAT_MNT}/
cp start.htm ${MY_SD_FAT_MNT}/
sync
umount ${MY_SD_FAT_MNT}
losetup -d ${MY_LOOP_DEV}
tar -czvf ${MY_IMAGE_FILE}.tgz ${MY_IMAGE_FILE}
rm -Rf ${MY_SD_FAT_MNT}