Re: How do I completely reset?
Posted by
hans2 on
Feb 29, 2016; 3:56pm
URL: https://itus.accessinnov.com/How-do-I-completely-reset-tp131p217.html
The current factory_reset secript has a major problem:
it DELETES the boot images without any check if the new updated 1.51SP1 actually exists

if [[ `df | grep -c overlay` == "1" ]]; then
umount /overlay
fi
sleep 1
mkdir -p /factory_reset
sleep 1
mount /dev/mmcblk0p1 /factory_reset
sleep 1
cd /factory_reset
sleep 1
rm ItusrouterImage
sleep 5
rm ItusbridgeImage
sleep 5
rm ItusgatewayImage
sleep 5
cp ItusrestoreImage ItusrouterImage
sleep 10
cp ItusrestoreImage ItusgatewayImage
sleep 10
cp ItusrestoreImage ItusbridgeImage
sleep 10
cd /
sleep 1
umount /factory_reset
sleep 1
umount -a
sleep 1
reboot -f
So I made an update:
First of all if /tmp/ItusrestoreImage does not exist, this script will simply exit (stop) to run.
Second if it does exist (checked twice) then it will make a backup of the existing images before any update.
Third I am using hard folder references instead of relative. This prevents issues in case of starting this script outside the root.
# Script asumes that the ItusrestoreImage is located in the /tmp folder
# mounting folder for the boot device
factory_reset_folder='/tmp/factory_reset'
make_Imagebackup () {
#
# function to create a backup of the current boot image to a sub-folder
# does not run in case th
#
if [ -r '$factory_reset_folder/$ImageName']; then
{
echo "Creating backup of the $ImageName"
mv '$factory_reset_folder/$ImageName' '$factory_reset_folder/backup'
}
else
{
echo "Unable to find $ImageName in $factory_reset_folder"
}
sleep 5
}
update_Image () {
#
# Updates boot image ONLY in case the ItusrouterImage exists in /tmp
# ABORTS this script in case ItusrouterImage check fails.
#
if [ -r /tmp/ItusrouterImage ]; then
{
echo "Creating backup of the $ImageName"
cp /tmp/ItusrouterImage '$factory_reset_folder/$ImageName'
}
else
{
echo "Replacement ItusrestoreImage does not exist in /tmp - ABORDING"
exit 1
}
sleep 5
}
# check for the ItusrestoreImage
if [ ! -r '/tmp/ItusrouterImage' ]; then
{
echo "Replacement ItusrestoreImage does not exist in /tmp - ABORDING"
exit 1
}
# Remove old mounts
if [[ `df | grep -c overlay` == "1" ]]; then
umount /overlay
fi
sleep 1
mount /dev/mmcblk0p1 $factory_reset_folder
# Check for the backuip folder in the mounted partition
if [ ! -d '$factory_reset_folder/backup' ]; then
{
mkdir '$factory_reset_folder/backup'
}
sleep 1
cd $factory_reset_folder
sleep 1
# Backup and updates the router image
ImageName='ItusrouterImage'
make_Imagebackup()
update_Image ()
# Backup and updates the bridge image
ImageName='ItusbridgeImage'
make_Imagebackup()
update_Image ()
# Backup and updates the gateway image
ImageName='ItusgatewayImage'
make_Imagebackup()
update_Image ()
# Backup and updates the restore image
ImageName='ItusrestoreImage'
make_Imagebackup()
update_Image ()
sleep 1
umount 'factory_reset_folder'
sleep 1
umount -a
sleep 1
reboot -f
No more: Shield Pro v1, Chaos Calmer, FW 1.51 SP1