aboutsummaryrefslogtreecommitdiffstats
path: root/packages/torouter-prep/configs/sbin
diff options
context:
space:
mode:
authorficus <ficus@robocracy.org>2012-09-23 04:22:14 +0200
committerficus <ficus@robocracy.org>2012-09-23 04:22:14 +0200
commitb1aec80110e822d835f6c97a2320b7dfc5fba039 (patch)
tree3f88cf6ec6a8e2836c91705baf2bfc31ab51d0dd /packages/torouter-prep/configs/sbin
parente2973e8ea5c57bfa6ed41293e0250c68d29cfed9 (diff)
downloadtorouter-b1aec80110e822d835f6c97a2320b7dfc5fba039.tar.gz
torouter-b1aec80110e822d835f6c97a2320b7dfc5fba039.zip
possibly functional image builder
Diffstat (limited to 'packages/torouter-prep/configs/sbin')
-rw-r--r--packages/torouter-prep/configs/sbin/copy2dream47
1 files changed, 47 insertions, 0 deletions
diff --git a/packages/torouter-prep/configs/sbin/copy2dream b/packages/torouter-prep/configs/sbin/copy2dream
new file mode 100644
index 0000000..267c2b6
--- /dev/null
+++ b/packages/torouter-prep/configs/sbin/copy2dream
@@ -0,0 +1,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"