You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux/x86_64/base-files/lib/preinit/79_move_config

46 lines
909 B
Plaintext

#!/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