aboutsummaryrefslogtreecommitdiffstats
path: root/freedom-maker/bin/copy2dream
blob: 267c2b6e1b9dcdbbb4575617f661a10d97a96aee (plain)
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
#!/bin/sh
#
# this script assumes the current root filesystem is the source, and the
# internal microSD on a DreamPlug is the target .. all existing content on
# the microSD card will be lost.
#

# partition microSD card inside DreamPlug
echo "=> partition internal microSD card"
parted -s /dev/sda mklabel msdos
parted -s /dev/sda mkpart primary fat16 0 128
parted -s /dev/sda mkpart primary ext2 128 100%

# create filesystems on new partitions
echo "=> create filesystems on internal microSD card"
mkdosfs /dev/sda1
mke2fs -j /dev/sda2

echo "=> mount target partitions"
mount /dev/sda2 /media
mkdir -p /media/boot
mount /dev/sda1 /media/boot

echo "=> copy filesystem content from USB stick to target partitions"
(cd / ; tar cpSf - `/bin/ls | grep -v boot | grep -v proc | grep -v sys | grep -v media | grep -v dev`) | (cd /media ; tar xpf -)
# the following intentionally ignores subdirectories 
cp /boot/* /media/boot/

echo "=> touch up target root partition"
mkdir /media/proc /media/sys /media/media /media/dev
mknod /media/dev/console c 5 1
mknod /media/dev/random c 1 8
mknod /media/dev/urandom c 1 9
mknod /media/dev/null c 1 3
mknod /media/dev/ptmx c 5 2

# patch up /etc/fstab entry for /boot
sed -e 's/sdc/sda/g' < /etc/fstab > /media/etc/fstab

# flash the kernel and create the device's keys
chroot /media /etc/init.d/first-run

echo "unmount target partitions"
umount /dev/sda1
umount /dev/sda2

echo "=> installation complete, see docs to boot from internal microSD"