AmiSystemRestore

  r1 beta7 (22.08.2013)
  by Christopher Handley

This is a public beta of AmiSystemRestore. But as no stability problems have been reported (despite more than a year of public use), I will probably be making it non-beta within the next few releases. Thank you to everyone who has tested it.


AmiSystemRestore was written using PortablE.

For changes in this release, please read the 13. History chapter.


CONTENTS


1. Introduction

AmiSystemRestore aims to give AmigaOS4 a similar ability to Window's very useful System Restore. What it does is create Restore Points, which act as snapshots of your SYS: partition (where the OS is stored). If anything changes on your SYS: partition, then you can roll it back to the time of the snapshot.

Why would you want to undo changes to your SYS: partition? Well, if you install a new program (or update an existing one), you have no idea if any new libraries (or other changes) will have problems that may break existing programs. A badly written installer might even replace libraries (etc) with older versions!

AmiSystemRestore allows you to undo all recent changes (whether or not they were done by the installer), and return SYS: to an earlier point in time. Knowledgable users can be more selective about which changes are undone, with the warning that they need to know what they are doing!

If you are installing something using the official Installer system or AmiUpdate, then AmiSystemRestore will automatically create Restore Points for you (and Ringhio messages should notify you of this). But if you are manually installing something, or are installing something using an AmigaDOS-script based installer, then you should manually create Restore Points before & after installation.

To avoid creating a copy of the entire SYS: partition for each Restore Point, AmiSystemRestore only stores the changes which happen after a Restore Point is created. This means that AmiSystemRestore must be left running all the time. You can stop it at any time, but it will not know about any changes that happen while it is not running, so this is not advised. It is intended to be light weight, and so in general you should not notice any impact on your system.


Go back to CONTENTS


2. Minimum requirements

Go back to CONTENTS


3. Recommendations

Go back to CONTENTS


4. WARNINGS - Please Read Carefully!

1. AmiSystemRestore is not an alternative to a full backup of your main OS partition, as it will not prevent corruption of the filingsystem, nor prevent formatting of the partition.

2. Since AmiSystemRestore will typically undo all changes made to your main OS partition (also known as SYS:), it is a bad idea to store user data on SYS:. The simplest way to avoid this problem is to not install any programs on SYS:.

If you already have any programs (which store user data, such as emails) on SYS:, then please move them to a different partition (drag'n'drop them, check they work at the new location, and then delete the original on SYS:).


Go back to CONTENTS


5. Legal Disclaimer

AmiSystemRestore is Copyright (c) 2011, 2012 Christopher Steven Handley

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

5.1. Errr, what does that mean?

In Plain English (and only as an aid to understanding) the above is intended to roughly mean: AmiSystemRestore cost you nothing, so don't expect me to take responsibility for any problems that it causes you. If it erases your harddisk, or directs your car into a ditch, that's your problem. Of course, I try to ensure that AmiSystemRestore works well, but I can't guarantee it, so all use is soley at your risk. Backups are a wonderful invention, make use of them.


Go back to CONTENTS


6. Installation

Use the provided installation program. If you run into any problems, then please contact me (see the 12. Last words & contact details chapter).

The first time AmiSystemRestore is run (typically when the installation finishes), you will be required to confirm that you understand & accept the above Legal Disclaimer.

6.1. Manual installation

Manual installation is NOT supported. In fact the whole idea of AmiSystemRestore is that you use automated installers without needing to worry about what they are doing!

But to put your mind at rest, here is roughly what the installer will do with the files inside the files folder:

I also supply the source code of the installer (Install.e), which you can examine... or even compile yourself using PortablE.


Go back to CONTENTS


7. Usage

7.1. An overview

When AmiSystemRestore is started, it opens a window. You can iconify it by clicking on the window's close gadget. You can have it iconised on start-up by changing a Preferences setting.

The first time it is run, it will create a hidden (iconless) AmiSystemRestore folder on SYS:, and automatically create the first Restore Point. (While curious people may look inside this folder, please do not make any changes there.)


The GUI window has a row of buttons at the top:

  Create  Rename  Delete  Restore  Prefs  Quit

Below that is a scrollable list of the Restore Points (most recent at the top). And below that is a "Restore mode" choice gadget. The buttons do the following:


7.2. The Restore button

If you have selected a Restore Point, then this button will be available to click on. Normally it will open a window offering to undo all changes made to SYS: after that Restore Point was created... effectively restoring you back to that point in time.

But if you had changed the "Restore mode" (from Full) to Limited, then it would only offer to undo the changes made between the chosen Restore Point & the one after it. This is useful for advanced users who wish to only undo the changes made by certain installations (see later).

NOTE: Limited mode also allows the selection of multiple restore points, which is useful for both Restoring & Deleting.


After clicking on the Restore button, the main window will be replaced by the Restore window. This contains a list of all files which will be changed or deleted.

Knowledgable users can examine this list, and untick any files that they don't want changed or deleted. Even normal users may wish to prevent their data files (stored on SYS: against my advice!) from being restored. Note that folders are shown in blue, and (un)ticking a folder will (un)tick all files inside it. That is the only purpose of showing folders - a ticked folder does not mean the folder itself will be deleted (or created)!

After you click on the OK button, it will create a new Restore Point (so that you can easily undo the restore), and then it will actually make the changes. As each file is modified, it will be unticked. You can click on the Cancel button at any time to stop it making (further) changes. Once the restore is finished, all files should be unticked - if any are still ticked, then they could not be restored for some reason. You can then click on the OK button to close the Restore window & re-open the main window.


By the way, if you had chosen to perform a Limited Restore of (say) "Before installing X", then only the file changes that happened immediately after it would been ticked. Beware that this is not as easy to use as it sounds, because any changes (after the next restore point) made to other files in those folders will appear unticked (and so will not be restored) unless you manually tick them. For example, if running the installed program created additional files, then those will appear unticked.

7.3. The Prefs button

Clicking on the Prefs button opens a Prefs window. It contains a number of options:

Options for advanced users:

7.4. How to use Restore when you cannot boot your normal OS partition

If you are no-longer able to boot your normal OS partition, and you want to use AmiSystemRestore to Restore it back to an earlier point, then you need to follow these steps:

1. Boot from your OS4 installation CD, or from a backup partition.

2. You are advised to use SYS:Utilities/PartitionWizard to Check your normal OS partition has no filingsystem errors. (Unfortunately this currently crashes on the X1000.)

3. Open a Shell, and enter the following command, where OS4 should be changed to be the name of your normal OS4 partition:

  Assign SYS: OS4:

4. Now run AmiSystemRestore. If it asks you to accept the Legal Disclaimer, then please say No, because you did not assign SYS: correctly (repeat step 3 again).

5. Restore to an earlier point. When it has finished, wait a few seconds for harddisk activity to finish, and then perform a hard reset.

7.5. AmiUpdate

AmiUpdate already has it's own "RollBack" system, and when it works (*) it should be better than AmiSystemRestore. So if your problem came from an AmiUpdate update, then I recommend that you try using it's RollBack feature before AmiSystemRestore. (* = the main reason it might not work is if the update script was not correctly written by the developer of the update.)

This RollBack feature is a bit hidden, so here is how to find it:

1. Start Sys:Prefs/Updates (or from AmiUpdate's menu choose Project/Open preferences...).

2. Click on the "Install and RollBack" tab.

3. Click on the "Run RollBack..." button.

4. In the new window, click on the date of the update, and then click on the update itself.

5. You can now click on the Info button to see what files will be restored, or on the Rollback button to actually undo the update.

NOTE: Before & after performing a RollBack, you may wish to create a restore point in AmiSystemRestore.


Go back to CONTENTS


8. Limitations

AmiSystemRestore has a few small limitations:

Go back to CONTENTS


9. Is my problem caused by AmiSystemRestore?

9.1. Known problems

None!

9.2. If you get a GrimReaper

If you get a GrimReaper, then click on the More button, then click on the Stack Trace tab, then click on the Generate Stack Trace button. If it mentions AmiSystemRestore in the list, especially right at the top of the list, then AmiSystemRestore is a prime suspect.

In that case, please click on the Write Crash Log button, then copy the Crash Log from RAM: to harddisk & wait for harddisk activity to finish, then reboot, then email me the Crash Log, along with a description of the situation it happened in.

When sending me details of your problem, please also send me a copy of the Sys:AmiSystemRestore/debug.log file (if it exists). And don't forget to mention what OS4 machine you are using, and what version of OS4.

9.3. If your whole system just freezes

If you do not get a GrimReaper, but your whole system just freezes, then it is difficult to tell. First you need to work-out how to make the freeze happen, then you need to disable AmiSystemRestore in the WBStartup, then reboot, and then try to cause the freeze. If it does not freeze then AmiSystemRestore is a prime suspect.

In that case, please email me the exact instructions needed to cause the freeze.

When sending me details of your problem, please also send me a copy of the Sys:AmiSystemRestore/debug.log file (if it exists). And don't forget to mention what OS4 machine you are using, and what version of OS4.

9.4. If you get an unexpected error message

If you do not get a GrimReaper, but you get an unexpected error messages while using your Amiga (particularly if they mention AmiSystemRestore), then please send me a copy of the full error message, and a description of the situation it happened in.

When sending me details of your problem, please also send me a copy of the Sys:AmiSystemRestore/debug.log file (if it exists). And don't forget to mention what OS4 machine you are using, and what version of OS4.

9.5. If a program is running very slowly

If you find a program runs very slowly (perhaps when doing something specific), then you need to disable AmiSystemRestore in the WBStartup, then reboot, and then test the program again. If it does not run slowly, then AmiSystemRestore is a prime suspect.

In that case, please email the exact instructions needed to observe the slow speed problem.

When sending me details of your problem, please also send me a copy of the Sys:AmiSystemRestore/debug.log file (if it exists). And don't forget to mention what OS4 machine you are using, and what version of OS4.


Go back to CONTENTS


10. Developers

If you are writing an installer that does not use the official Installer system (nor AmiUpdate), but another way (such as an AmigaDOS script), then no restore points will be automatically created. The good news is that you can make this happen using the provided CreateRestorePoint command. Here is how you would use it in an AmigaDOS script:


  ;# EARLY PART OF SCRIPT (before any changes are made to SYS:)
  
  ;create a restore point before any changes are made
  Which CreateRestorePoint *><>NIL:
  IF NOT WARN
  	CreateRestorePoint "Before DESCRIPTION"
  ENDIF
  
  ;# MIDDLE OF SCRIPT (where changes can be made to SYS:)
  
  ;create a restore point after all changes are made
  Which CreateRestorePoint *><>NIL:
  IF NOT WARN
  	CreateRestorePoint "After DESCRIPTION"
  ENDIF
  
  ;# FINAL PART OF SCRIPT (any house-keeping, such as might be done whether installation finishes or is cancelled)

This code will simply do nothing if AmiSystemRestore is not installed or not running, so it is quite safe.

DESCRIPTION should be replaced by a short description of what is being installed.

The hash comments (;#) show where you would put the relevant parts of your code.

10.1. Notes

The CreateRestorePoint command is normally installed in the C: folder.

If AmiSystemRestore is installed but not running, then CreateRestorePoint will not create a restore point. And it will return with the WARN status (although I can't currently think of a good use for that!).

Because of the above, in principle your installer could use it's own copy of the CreateRestorePoint command (rather than rely on it being installed). But this is not recommended, because an old version of the command might not work with a new version of AmiSystemRestore (although I have done my best to ensure it will).


Go back to CONTENTS


11. The future

While AmiSystemRestore has a nice icon thanks to cha05e90, I would still be open alternative icons.

AmiSystemRestore is now very close to my original vision, so I don't have much planned. Here are a few ideas I am considering:

If you are interested in any of these ideas, or have any suggestions of your own, then feel free to email me! Your input may help me decided what to do next.


Go back to CONTENTS


12. Last words & contact details

If you have any problems with AmiSystemRestore, then please let me know! You can contact me by email, using the address given on this web page:

cshandley.co.uk/email

If for some reason you cannot email me, then I can be found on AmigaWorld.net & www.Amigans.net as "ChrisH". I suggest you PM me on AmigaWorld.net, as I may not notice forum posts (nor PMs on Amigans.net!).


12.1. Thanks to

In chronological order, I would like to give thanks to:

Sorry if I forgot anyone.


Go back to CONTENTS


13. History

r1 beta7 (22.08.2013)

r1 beta6 (28.01.2013)

r1 beta5 (01-12-2012)

r1 beta4 (20-09-2012)

r1 beta3 (09-09-2012)

r1 beta2 (04-09-2012)

r1 beta1 (30-07-2012)

r1 beta (18-01-2012)

r1 beta (06-09-2011)

r1 alpha (29-06-2011)