case "$file" in
./rom/note) ;; #nothing
./etc/config*|\
- ./usr/lib/ipkg/info/*) cp -af $2/$file $file;;
+ ./usr/lib/opkg/info/*) cp -af $2/$file $file;;
*) ln -sf /rom/${file#./*} $file;;
esac
done
pivot_root $1 $1$2 && {
mount -o move $2/dev /dev
mount -o move $2/tmp /tmp
+ mount -o move $2/sys /sys 2>&-
mount -o move $2/jffs /jffs 2>&-
return 0
}
fopivot() { # <rw_root> <ro_root> <dupe?>
root=$1
{
- mount -t mini_fo -o base=/,sto=$1 $1 /mnt 2>&- && root=/mnt
+ mount -t mini_fo -o base=/,sto=$1 "mini_fo:$1" /mnt 2>&- && root=/mnt
} || {
[ "$3" = "1" ] && {
mount | grep "on $1 type" 2>&- 1>&- || mount -o bind $1 $1
}
[ "$1" = "switch2jffs" ] && {
- mtd erase "$partname"
+ mount "$mtdpart" /rom/jffs -t jffs2 || exit
# try to avoid fs changing while copying
mount -o remount,ro none / 2>&-
# copy ramoverlay to jffs2
- mount "$mtdpart" /rom/jffs -t jffs2
echo -n "copying files ... "
cp -a /tmp/root/* /rom/jffs 2>&-
echo "done"
# this will almost always fail
umount /tmp/root 2>&-
- # fs is clean
- jffs2root --clean
exit 0
}