blob: 0b9b49fee3235e53143e29cd5c212c9988f9cb76 (
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
|
#!/bin/sh
# Copyright (C) 2012-2014 OpenWrt.org
move_config() {
local cmdline uuid disk dev
if read cmdline < /proc/cmdline; then
case "$cmdline" in
*block2mtd=*)
disk="${cmdline##*block2mtd=}"
disk="${disk%%,*}"
;;
*root=*)
disk="${cmdline##*root=}"
disk="${disk%% *}"
;;
esac
case "$disk" in
PARTUUID=[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-02)
uuid="${cmdline#PARTUUID=}"
uuid="${uuid%-02}"
for disk in /dev/[hsv]d[a-z]; do
set -- $(dd if=$disk bs=1 skip=440 count=4 2>/dev/null | hexdump -v -e '4/1 "%02x "')
if [ "$4$3$2$1" = "$uuid" ]; then
dev="${disk}1"
break
fi
done
;;
/dev/*)
dev="${disk%[0-9]}1"
;;
esac
fi
if [ -n "$dev" ]; then
mount -t ext4 -o rw,noatime "$dev" /mnt
mv -f /mnt/sysupgrade.tgz /
umount /mnt
fi
}
boot_hook_add preinit_mount_root move_config
|