summaryrefslogtreecommitdiff
path: root/target/linux/x86/base-files/lib/preinit/79_move_config
blob: 0bffbab994befdd9ec7b81f24b9a2cdf2e6ec1b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
# Copyright (C) 2012 OpenWrt.org

move_config() {
	local rootfsdev
	local rootfstype
	
	rootfstype="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "rootfstype") { print $2 }' < /proc/cmdline)"
	case "$rootfstype" in
		squashfs|jffs2)
			rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "block2mtd.block2mtd") { print substr($2,1,index($2, ",")-1) }' < /proc/cmdline)";;
		ext4)
			rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "root") { print $2 }' < /proc/cmdline)";;
	esac

	mount -t ext4 -o rw,noatime "${rootfsdev%[0-9]}1" /mnt
	mv -f /mnt/sysupgrade.tgz /
	umount /mnt
}

boot_hook_add preinit_mount_root move_config