37 lines
972 B
Plaintext
Raw Normal View History

2017-09-06 19:19:45 +08:00
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
2021-06-15 17:58:07 +08:00
missing_lines() {
local file1 file2 line
file1="$1"
file2="$2"
oIFS="$IFS"
IFS=":"
while read line; do
set -- $line
grep -q "^$1:" "$file2" || echo "$line"
2021-06-15 17:58:07 +08:00
done < "$file1"
IFS="$oIFS"
}
2017-09-06 19:19:45 +08:00
do_mount_root() {
mount_root
boot_run_hook preinit_mount_root
[ ! -f /etc/bench.log ] && touch /etc/bench.log
[ -f /sysupgrade.tgz -o -f /tmp/sysupgrade.tar ] && {
2017-09-06 19:19:45 +08:00
echo "- config restore -"
2021-06-15 17:58:07 +08:00
cp /etc/passwd /etc/group /etc/shadow /tmp
2017-09-06 19:19:45 +08:00
cd /
[ -f /sysupgrade.tgz ] && tar xzf /sysupgrade.tgz
[ -f /tmp/sysupgrade.tar ] && tar xf /tmp/sysupgrade.tar
2021-06-15 17:58:07 +08:00
missing_lines /tmp/passwd /etc/passwd >> /etc/passwd
missing_lines /tmp/group /etc/group >> /etc/group
missing_lines /tmp/shadow /etc/shadow >> /etc/shadow
rm /tmp/passwd /tmp/group /tmp/shadow
2020-07-02 23:30:56 +08:00
# Prevent configuration corruption on a power loss
sync
2017-09-06 19:19:45 +08:00
}
}
[ "$INITRAMFS" = "1" ] || boot_hook_add preinit_main do_mount_root