home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / sysutils / robosave / robosave.doc < prev    next >
Encoding:
Text File  |  1993-11-09  |  39.1 KB  |  855 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.      ROBOSAVE Version 3.04
  11.  
  12.  
  13.      A Utility for Saving the OS/2 2.X Desktop
  14.  
  15.      User's Guide
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.      R. R. Kurtz
  31.  
  32.      J. G. Knauth
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.      (c) Copyright International Business Machines Corporation 1994.
  41.      All rights Reserved.
  42.  
  43.  
  44.      9 Nov 1993  3:04  --  Employee Written Software Edition
  45.  
  46.      9 Nov 1993  3:04  --  Employee Written Software Edition
  47.  
  48.  
  49.      CONTENTS
  50.  
  51.  
  52.      1.0  ROBOSAVE User's Guide   . . . . . . . . . . . . . . . . . . .   1
  53.      1.1  What ROBOSAVE Does  . . . . . . . . . . . . . . . . . . . . .   1
  54.      1.2  Overview  . . . . . . . . . . . . . . . . . . . . . . . . . .   1
  55.      1.3  What ROBOSAVE Does Not Do   . . . . . . . . . . . . . . . . .   2
  56.      1.4  Prerequisites   . . . . . . . . . . . . . . . . . . . . . . .   3
  57.      1.5  Installation  . . . . . . . . . . . . . . . . . . . . . . . .   3
  58.      1.6  ROBOSAVE Profile  . . . . . . . . . . . . . . . . . . . . . .   3
  59.      1.7  ROBOSAVE Command  . . . . . . . . . . . . . . . . . . . . . .   6
  60.      1.8  Doing a Save  . . . . . . . . . . . . . . . . . . . . . . . .   6
  61.      1.9  Doing a Restore   . . . . . . . . . . . . . . . . . . . . . .   8
  62.      1.10  Recovery of Individual Files   . . . . . . . . . . . . . . .  10
  63.      1.11  Choosing a Save Directory  . . . . . . . . . . . . . . . . .  11
  64.      1.12  Contents of the Save Directory   . . . . . . . . . . . . . .  12
  65.      1.13  ROBOSVUT Utility   . . . . . . . . . . . . . . . . . . . . .  13
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.                                                                Contents  ii
  100.  
  101.      9 Nov 1993  3:04  --  Employee Written Software Edition
  102.  
  103.  
  104.      1.0  ROBOSAVE USER'S GUIDE
  105.  
  106.  
  107.      This edition of the User's Guide is for the Employee Written Software
  108.      release of ROBOSAVE.
  109.  
  110.  
  111.      1.1  WHAT ROBOSAVE DOES
  112.  
  113.      ROBOSAVE is a tool which allows you to quickly and easily back up the
  114.      OS/2 2.x Desktop.  In addition you can save a limited number of user-
  115.      specified files.  If problems occur later, you can easily restore the
  116.      saved information.  Because it is so easy to do a ROBOSAVE, you will
  117.      find that doing frequent backups is quite painless.
  118.  
  119.      The OS/2 2.x Desktop consists of control information for such things
  120.      as folders, program objects, printer objects, and shadows.  It also
  121.      contains data about the tailoring you have done for colors, fonts,
  122.      titles, window positions, associations, and much more.  You may have
  123.      invested a significant amount of time in adjusting the Desktop to your
  124.      preferences.  ROBOSAVE provides a good way to protect that investment.
  125.  
  126.  
  127.      1.2  OVERVIEW
  128.  
  129.      Using ROBOSAVE is very simple.  Here is a summary.  Details are in
  130.      following sections, together with suggestions for how you might plan
  131.      ROBOSAVE backups for your system.
  132.  
  133.      -   Installation
  134.  
  135.          -   Download and unzip ROBOSAVE's zip file into a directory of
  136.              your choice
  137.          -   Set up a ROBOSAVE profile; you can use ROBOSAVE.SMP as a model
  138.  
  139.      -   Doing a save
  140.  
  141.          -   Stabilize the Desktop by doing a shutdown and IPL
  142.          -   Invoke ROBOSAVE, using the profile you created above
  143.  
  144.      -   Doing a restore
  145.  
  146.          -   Bring up an OS/2 environment suitable for doing ROBOREST
  147.          -   Switch to the save drive and directory
  148.          -   Invoke ROBOREST
  149.          -   ReIPL
  150.  
  151.  
  152.  
  153.  
  154.                                                    ROBOSAVE User's Guide  1
  155.  
  156.      9 Nov 1993  3:04  --  Employee Written Software Edition
  157.  
  158.  
  159.      1.3  WHAT ROBOSAVE DOES NOT DO
  160.  
  161.      ROBOSAVE does not do a full backup of all the data on your system.
  162.      Instead it saves only certain key information.  Part of this informa-
  163.      tion is saved automatically.  Part you must specify thru a profile.  A
  164.      sample ROBOSAVE profile is provided; however, there may be other crit-
  165.      ical files for your applications that you should specify in your own
  166.      profile.  Restoring this information is often sufficient to get your
  167.      system working again very quickly.  Of course doing a full backup pro-
  168.      vides a better guarantee of a full recovery.  However, doing a full
  169.      backup requires much more time and more space on your backup medium.
  170.  
  171.      From ROBOSAVE's point of view the Desktop consists of the Desktop
  172.      directory and all the files and directories under it.  This is the
  173.      information ROBOSAVE will save automatically.  You must be careful
  174.      about what information you either remove from or add to that directory
  175.      tree.
  176.  
  177.      If you move an object from the Desktop to some location that is not in
  178.      the Desktop, ROBOSAVE will NOT save that object.  For example, suppose
  179.      your Desktop directory is C:\DESKTOP.  The standard OS/2 install will
  180.      create a Productivity folder in the OS/2 System folder.  Suppose you
  181.      use the Workplace Shell Drives facility to drag the Productivity
  182.      folder to some location not in the Desktop, let's say into a C:\MISC
  183.      directory.  From a (FAT) file system point of view, you just moved the
  184.      C:\DESKTOP\OS!2_SYS\PRODUCTI directory to C:\MISC\PRODUCTI.  It is no
  185.      longer under C:\DESKTOP and will not be automatically saved by
  186.      ROBOSAVE.  Even if you create a shadow on the Desktop of the moved
  187.      Productivity folder, the moved folder will not be saved because it is
  188.      no longer in the Desktop.  However, if all you do is move the object
  189.      to another place in the Desktop, e.g., suppose you move it from the
  190.      OS/2 System folder to the Information folder (assuming this folder
  191.      itself is still in the Desktop), then the object is still in the
  192.      Desktop structure and will be automatically saved by ROBOSAVE.
  193.  
  194.      This works both ways.  If you create directories or files in the
  195.      Desktop directory tree, ROBOSAVE will consider all that information as
  196.      part of the Desktop and will save it automatically.  Thus you should
  197.      be careful not to put a bunch of "extraneous" things in the Desktop
  198.      unless you really do want all that information saved every time you do
  199.      a ROBOSAVE.
  200.  
  201.      ROBOSAVE is not intended to migrate a Desktop from one release (or CSD
  202.      level) of OS/2 to another.  The control information that ROBOSAVE
  203.      saves from one release of OS/2 may very well not be compatible with
  204.      another OS/2 release.  Similarly, if after you do a ROBOSAVE you then
  205.      change any fundamental system characteristics (e.g., file system type,
  206.      display type, or boot drive), restoring the old system's data to the
  207.  
  208.  
  209.                                                    ROBOSAVE User's Guide  2
  210.  
  211.      9 Nov 1993  3:04  --  Employee Written Software Edition
  212.  
  213.  
  214.      new system will not work.  ROBOSAVE is intended to backup a system and
  215.      then restore the data to exactly that same system.
  216.  
  217.      ROBOSAVE does not save the information used to automatically restart
  218.      currently running programs.  This is done to prevent restarting
  219.      ROBOSAVE itself when the restored system is first IPLed.  The impli-
  220.      cation of this is that after your system has been restored, you must
  221.      restart your normally running programs yourself for the initial IPL.
  222.      For subsequent IPLs, those programs will be restarted (or not) as
  223.      usual, depending on the way you have chosen to tailor OS/2 for this
  224.      restart function.
  225.  
  226.  
  227.      1.4  PREREQUISITES
  228.  
  229.      Your operating system must be either OS/2 2.0 or 2.1.  ROBOSAVE does
  230.      not support earlier releases, e.g., OS/2 1.3.
  231.  
  232.      REXX is required in order to use ROBOSAVE.  REXX is installed in OS/2
  233.      by default.  You can use OS/2 Selective Install to add REXX if it is
  234.      not already present on your system.
  235.  
  236.  
  237.      1.5  INSTALLATION
  238.  
  239.      Download ROBOSAVE's zip file in binary and unzip it into a directory
  240.      of your choice.  Either this directory must be in your PATH, or it
  241.      should be the current directory when ROBOSAVE is invoked.
  242.  
  243.  
  244.      1.6  ROBOSAVE PROFILE
  245.  
  246.      A profile is required to run ROBOSAVE.  See ROBOSAVE.SMP for an
  247.      example.  The profile is an ASCII text file which specifies parameters
  248.      for operating ROBOSAVE.  Usually you will name your profile
  249.      ROBOSAVE.PRO, although you can give it a different name and then
  250.      specify that name in the ROBOSAVE command.
  251.  
  252.      The profile controls what files will be saved.  If you don't specify
  253.      the right files for saving, they won't be available for restoring --
  254.      not good.  Please invest the time to set up your profile appropriately
  255.      to begin with, and keep it up to date as your application environment
  256.      changes.
  257.  
  258.      If an "*" is found in column 1 of a line in the profile, that line is
  259.      treated as a comment and is ignored.  You should not have any blank
  260.      lines in the profile; a blank line will terminate profile processing.
  261.      One of the following verbs must start each of the non-comment lines of
  262.  
  263.  
  264.                                                    ROBOSAVE User's Guide  3
  265.  
  266.      9 Nov 1993  3:04  --  Employee Written Software Edition
  267.  
  268.  
  269.      the profile.  The verbs can be in any order and can be in upper or
  270.      lower case.
  271.  
  272.      SAVE=directory
  273.           where "directory" specifies the directory in which ROBOSAVE will
  274.           save the files to be backed up, together with certain control
  275.           information.  This directory will be created for you if it does
  276.           not exist.  This is a required verb; there is no default.
  277.           Examples: "save=A:\SAVEDATA" and "save=E:\SV930922".  Later
  278.           sections of the User's Guide provide guidance about choosing a
  279.           save directory and give details about what is put into it.
  280.  
  281.      SAVENUM=number
  282.           where "number" specifies the number of generations of data that
  283.           can be saved in this directory.  A new generation is created each
  284.           time you successfully complete ROBOSAVE.  When "number" is
  285.           exceeded, the oldest generation is erased and is replaced by the
  286.           new generation, the data saved by the current execution of
  287.           ROBOSAVE.  If you reduce "number", all the older generations are
  288.           erased up to the point where "number" will not be exceeded by the
  289.           new generation.  Valid values are 1 thru 9.  This is a required
  290.           verb; there is no default.
  291.  
  292.      CLEANUP=B|E
  293.           specifies when old generations should be erased if the "SAVENUM="
  294.           number is exceeded, as described above.  "CLEANUP=B" means erase
  295.           the data at the beginning of the ROBOSAVE operation, i.e., before
  296.           the new generation is created.  "CLEANUP=E" means erase the old
  297.           data at the end, i.e., after the new generation has been created.
  298.           The default is "CLEANUP=E".  Erasing at the end is safer, in that
  299.           the old data will not be erased unless the new generation has
  300.           been successfully saved.  However, erasing at the beginning might
  301.           be necessary if the save directory is on a drive with little
  302.           available space; you might need to erase the old generation first
  303.           to make room for the new generation.
  304.  
  305.      LOG=P|T
  306.           specifies the location of the ROBOSAVE.LOG file.  This log
  307.           records all ROBOSAVE activity for the save directory specified by
  308.           the "SAVE" verb.  "LOG=P" means put the log in the same directory
  309.           as the ROBOSAVE profile.  "LOG=T" means put the log in the save
  310.           directory.  The default is "LOG=P".
  311.  
  312.      ROBO=fileid [fileid ...]
  313.           where each "fileid" specifies one or more files to be saved in
  314.           the save directory.  Normally the complete fileid (drive, path,
  315.           and file) should be specified, e.g., robo=e:\somedir\myfile.xyz.
  316.           Multiple fileids can be specified on each ROBO= line.  Wildcards,
  317.  
  318.  
  319.                                                    ROBOSAVE User's Guide  4
  320.  
  321.      9 Nov 1993  3:04  --  Employee Written Software Edition
  322.  
  323.  
  324.           both "*" and "?", can be used in the same way they are used in
  325.           the OS/2 COPY command.  If there are any blanks in the fileid,
  326.           enclose the entire fileid in double quotes.  In addition, by
  327.           enclosing the fileid in brackets, you indicate that directories
  328.           below the one specified in the fileid should also be searched.
  329.           Bracketed fileids can be intermixed with normal fileids on the
  330.           same line.  In the following examples, notice the use of double
  331.           quotes and brackets; the quotes must be outside the brackets when
  332.           both are used.
  333.  
  334.                    Profile line                        Files saved
  335.             --------------------------   ---------------------------------------
  336.             robo=d:\os2\*.ini            D:\OS2\OS2.INI, D:\OS2\OS2SYS.INI, etc.
  337.             robo="d:\my dir\my  data"    D:\MY DIR\MY  DATA
  338.             robo=[e:\*.ini]              All .INI files on the E: drive
  339.             robo=[g:\my*.*]              All files on the G: drive whose names
  340.                                            start with MY with any extension
  341.             robo="[g:\Down\U ar*.*]"     All files in the G:\DOWN directory (and
  342.                                            all its subdirectories) whose names
  343.                                            start with "U AR" and any extension
  344.             robo=c:\x.y  d:\dir\ccc.y    C:\X.Y and D:\DIR\CCC.Y
  345.  
  346.           Examine ROBOSAVE.SMP for a list of additional files you may want
  347.           to save if you installed OS/2 Windows support, Communications
  348.           Manager, or LAN Services.
  349.  
  350.           You should not attempt to save ". SF" files, e.g., "EA DATA. SF".
  351.  
  352.           WARNING: You should be careful with using wildcard characters
  353.           and/or brackets.  It is very easy to unintentionally specify many
  354.           files you don't really want to backup.  This is especially sig-
  355.           nificant if your save directory is on a diskette, which has less
  356.           space and operates more slowly than a hard disk.  It is also easy
  357.           to unintentionally save a file multiple times; ROBOSAVE will make
  358.           a separate copy for each specification, whether it was an
  359.           explicit specification or by wildcards or brackets.  Thus, speci-
  360.           fying both "robo=e:\abc.ini" and "robo=e:\*.ini" would copy
  361.           ABC.INI twice.  It is a good idea after doing a ROBOSAVE to
  362.           examine ROBOSAVE.LOG and see exactly which files were copied;
  363.           then adjust your profile if necessary.  Needless to say, having
  364.           something like "robo=c:\*.*" would attempt to save far more than
  365.           you really intended; in fact it would likely fail as the process
  366.           stumbled over certain files that cannot be copied normally.
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.                                                    ROBOSAVE User's Guide  5
  375.  
  376.      9 Nov 1993  3:04  --  Employee Written Software Edition
  377.  
  378.  
  379.      1.7  ROBOSAVE COMMAND
  380.  
  381.      Here is the syntax of the ROBOSAVE command.  If the "/P" parameter is
  382.      used, it must be the last parameter specified.
  383.  
  384.        ROBOSAVE  [[fileid]...]  [/P=profile]
  385.  
  386.      fileid
  387.           has the same syntax and meaning as when used in a "ROBO=" line in
  388.           a ROBOSAVE profile.  Specifying a fileid as a ROBOSAVE command
  389.           parameter has the same effect as specifying it in the profile.
  390.           Fileids specified in the command are logically merged with those
  391.           from the "ROBO=" lines of the profile.  If no fileid parameter is
  392.           specified in the ROBOSAVE command, only the fileids from the
  393.           "ROBO=" lines will be used.
  394.  
  395.      /P=profile
  396.           specifies the profile used by ROBOSAVE.  This can be either a
  397.           complete fileid (drive, path, file) or it can be just the drive
  398.           and path; in the latter case the file is considered to be named
  399.           ROBOSAVE.PRO and it must reside in the drive-path directory.  If
  400.           this parameter is not specified, the first occurrence of
  401.           ROBOSAVE.PRO found in the current directory or PATH is used.
  402.  
  403.      Here are some examples:
  404.  
  405.        robosave
  406.        robosave  /p=d:\os2tools
  407.        robosave  e:\myapps\myapp.dat   g:\temp\some.stf
  408.        robosave  "e:\my dir\my file.dat"   "g:\main  dir\sub dir"
  409.        robosave  e:\os!2_apps\*.ini   /p=d:\my2tool\myprof.xyz
  410.        robosave  [e:\*.ini]   "[g:\Down\This\Road\one way.*]"
  411.  
  412.  
  413.      1.8  DOING A SAVE
  414.  
  415.      After you have installed ROBOSAVE and have built your profile, you can
  416.      invoke it to save your data.  In fact, this is the part of ROBOSAVE
  417.      you will be using most often; it is very easy to do.  Before doing the
  418.      save, however, you should ensure your Desktop has stabilized.  In par-
  419.      ticular, if you have made Desktop changes since you last IPLed,
  420.      including moving objects around on the Desktop, and you want to be
  421.      sure all this information is captured, you should shut down your
  422.      system cleanly and reIPL.  Then you can do the save.  This is neces-
  423.      sary because for some control information, OS/2 will not write the
  424.      data to disk (where it can be copied by ROBOSAVE) until shutdown is
  425.      done.  Other control information is written to disk only occasionally,
  426.      in a lazy-write fashion.  Doing a shutdown will force that information
  427.  
  428.  
  429.                                                    ROBOSAVE User's Guide  6
  430.  
  431.      9 Nov 1993  3:04  --  Employee Written Software Edition
  432.  
  433.  
  434.      to disk, too.  Of course after you reIPL, don't start making more
  435.      Desktop changes before doing the ROBOSAVE.  It is preferable to have
  436.      as little as possible going on while ROBOSAVE is running to lessen the
  437.      chance that any data will be changing while it is being saved.  If
  438.      that happens, the saved data might be inconsistent and any subsequent
  439.      restore from it might not produce what you want.  ROBOSAVE runs
  440.      quickly.  Be patient and let it operate without interference.
  441.  
  442.      Now to do the save.  Normally you just enter "ROBOSAVE" at an OS/2
  443.      command prompt, either full screen or windowed.  If necessary, you can
  444.      specify ROBOSAVE command parameters, as described in the preceding
  445.      section.  However most people will specify all fileids via "ROBO="
  446.      lines in their profile and will put their profile in a directory in
  447.      their PATH; if you do this, no command parameters are necessary -- you
  448.      can just say "ROBOSAVE".
  449.  
  450.      If you want to be fancier about ROBOSAVE invocation, you can build an
  451.      OS/2 program object and then doubleclick on its icon to do a ROBOSAVE.
  452.      To build such an object, drag a program object from the Templates
  453.      folder.  Then fill in the blanks as follows:
  454.  
  455.      -   On the Program page:
  456.  
  457.          -   Set "Path and file name" to "x:\path\ROBOSAVE.CMD".  Replace
  458.              "x:\path" with the drive and directory where you put ROBOSAVE.
  459.          -   Set "Parameters" with whatever parameters you need (usually
  460.              leave this blank).
  461.          -   Set "Working directory" with ROBOSAVE's directory, i.e., with
  462.              your values for the "x:\path" mentioned in the first item.
  463.  
  464.      -   On the Session page:
  465.  
  466.          -   Uncheck "Close window on exit".  This is necessary to allow
  467.              you to see any error messages before the window is closed.
  468.              When you are finished with ROBOSAVE, just close the window as
  469.              you normally would, e.g., by doubleclicking on the system icon
  470.              in the upper left corner of the window.
  471.  
  472.      -   On the General page:
  473.  
  474.          -   Change "Title" to whatever you want to show up under the pro-
  475.              gram's icon.  If you have done all the preceding steps, the
  476.              icon shipped with ROBOSAVE should already be displayed.
  477.  
  478.      WARNING: Needless to say, if you wait to do a backup until AFTER you
  479.      have had a problem, then any restore with that backup data will just
  480.      put you right back in the problem state again.  Thus you need to do
  481.      backups BEFORE you have a problem.  Generally, you should do a backup
  482.  
  483.  
  484.                                                    ROBOSAVE User's Guide  7
  485.  
  486.      9 Nov 1993  3:04  --  Employee Written Software Edition
  487.  
  488.  
  489.      after any major change if you are satisfied with the results of that
  490.      change.  This will give you a checkpoint of a system that you are now
  491.      satisfied with, but before you or some outside force messes it up.  Of
  492.      course this assumes you have been following this procedure all along
  493.      and thus already have a good backup of the system BEFORE making the
  494.      major change.  If you don't have such a BEFORE-the-change backup
  495.      already, then make one first.  Because ROBOSAVE is so easy to use and
  496.      takes only a few minutes at most, it is very easy to do all this.
  497.      Just be sure to label your backups so you'll know what you've got.  We
  498.      recommend doing major backups to diskettes (freshly formatted and
  499.      still empty) -- one backup per diskette.
  500.  
  501.  
  502.      1.9  DOING A RESTORE
  503.  
  504.      Suppose disaster has just struck.  Maybe you accidentally powered off
  505.      your system without doing a shutdown first, or possibly a power outage
  506.      occurred.  Both of these can result in a corrupted Desktop.  Or maybe
  507.      you got overenthusiatic while you were tidying up your Desktop and
  508.      dropped the wrong thing on the shredder.  Or maybe you encountered a
  509.      programming bug.  Or maybe your hardware hiccupped.  Or ... you get
  510.      the idea.  If you have been faithfully doing ROBOSAVEs and have been
  511.      saving the right data, you can probably recover your system completely
  512.      and quickly.  It is important to realize that the system will be
  513.      restored back to the point it was at when you did the ROBOSAVE for
  514.      that data.  If you made any changes after that ROBOSAVE, those changes
  515.      may be lost.  This points out the desirability of doing frequent
  516.      ROBOSAVEs and keeping your profile up to date.
  517.  
  518.      Part of the data created by ROBOSAVE in your save directory is a
  519.      ROBOREST.CMD.  Executing that command will restore the data saved by
  520.      the ROBOSAVE you issued most recently to that save directory.  If you
  521.      have saved multiple generations in the same save directory, there will
  522.      be a ROBOREST.CM1, a ROBOREST.CM2, etc.  These represent the next
  523.      older generation, and the next older beyond that, etc., with the
  524.      oldest having the highest .CMn number.  If you want to recover a pre-
  525.      vious generation instead of the most recent, just rename ROBOREST.CMD
  526.      to some other name, e.g., ROBOREST.CUR, and then rename the desired
  527.      ROBOREST.CMn to ROBOREST.CMD.  You can examine ROBOSAVE.LOG to see
  528.      when each save was done and what files were associated with each.  You
  529.      can doublecheck the chosen command file to ensure it is the desired
  530.      one.
  531.  
  532.      Before invoking ROBOREST, you must first set up the proper OS/2 envi-
  533.      ronment.  You cannot simply issue ROBOREST from an OS/2 command prompt
  534.      in your normal system since some of the files ROBOREST will try to
  535.      replace are in use by the normal system.  You must establish an envi-
  536.      ronment independent of your normal system and issue ROBOREST from
  537.  
  538.  
  539.                                                    ROBOSAVE User's Guide  8
  540.  
  541.      9 Nov 1993  3:04  --  Employee Written Software Edition
  542.  
  543.  
  544.      there.  Fortunately that is easy to do.  Below are three different
  545.      techniques you can use.  They produce equivalent results.  Use the one
  546.      that is most convenient for you.
  547.  
  548.      ROBOREST will attempt to verify that you have established a proper
  549.      environment.  If it detects something is wrong, it will display an
  550.      error message and stop the procedure without making any changes to
  551.      your system.  Part of the recovery procedure involves erasing the old
  552.      (possibly corrupted) Desktop before restoring the saved Desktop.  You
  553.      will be prompted for final authorization before this is done.  If you
  554.      answer anything other than "YES", the ROBOREST procedure will stop and
  555.      no changes will be made to your system.
  556.  
  557.      You should make sure you don't have a directory in the Desktop tree as
  558.      the current directory for its drive.  For example, if C:\DESKTOP is
  559.      your OS/2 Desktop directory, make sure you haven't done a CHANGEDIR on
  560.      C: to \DESKTOP or to any of the directories under it.  Having any of
  561.      those directories as the current directory would interfere with the
  562.      deletion of the Desktop tree.  ROBOREST (ROBOSVUT) will fail if you
  563.      make this mistake and will issue an error message.  If this happens,
  564.      just do a "CD \" and reissue ROBOREST.
  565.  
  566.      Except for the OS2.INI and OS2SYS.INI files, ROBOREST will restore the
  567.      same Readonly, System, and Hidden attributes for each file that
  568.      existed when you saved the file with ROBOSAVE.
  569.  
  570.      Restoring the Desktop - Method 1
  571.  
  572.      This method requires you to have the Install and DISK 1 diskettes for
  573.      the version of OS/2 you booted when you did the save.  It is required
  574.      that the OS/2 level of the diskettes must match exactly the level of
  575.      the system being restored, including the CSD level.  (In fact you may
  576.      be able to get away with a different level sometimes, but other times
  577.      you can't.  Since failure can result in a corrupted system, we require
  578.      the levels to be the same.)  Instead of using the actual installation
  579.      diskettes, you might use something equivalent, e.g., a diskette you
  580.      have created with the BOOTOS2 tool (also known as BOOT2X); the
  581.      diskette must be at the correct OS/2 level, of course.  Or you might
  582.      boot from another partition (at the correct OS/2 level, of course).
  583.  
  584.        - Boot from the OS/2 2.x Install and DISK 1 diskettes.
  585.        - ESC to the OS/2 prompt when allowed.
  586.        - Place your "save" diskette in A: if restoring from diskette.
  587.        - Change to the "save" drive you will restore from.
  588.        - Change to the "save" directory containing ROBOREST.CMD.
  589.        - Invoke ROBOREST; there are no parameters.
  590.        - Respond YES when prompted to delete the Desktop.
  591.        - Re-boot when the restore is complete.
  592.  
  593.  
  594.                                                    ROBOSAVE User's Guide  9
  595.  
  596.      9 Nov 1993  3:04  --  Employee Written Software Edition
  597.  
  598.  
  599.      Restoring the Desktop - Method 2
  600.  
  601.      This method requires that the SHFTRN package be installed on your
  602.      system.  It must be on your hard drive and your CONFIG.SYS must have
  603.      been edited to place the call to SHIFTRUN in it.  This method is
  604.      faster than Method 1 and does not require the two OS/2 installation
  605.      diskettes.
  606.  
  607.        - Get the SHFTRN package from the same place you got ROBOSAVE.
  608.        - Download and install it as directed.
  609.        - Re-boot.
  610.        - Press Left-Shift when the SHIFTRUN timer appears, then release it.
  611.        - Place your "save" diskette in A: if restoring from diskette.
  612.        - Change to the "save" drive you will restore from.
  613.        - Change to the "save" directory containing ROBOREST.CMD.
  614.        - Invoke ROBOREST; there are no parameters.
  615.        - Respond YES when prompted to delete the Desktop.
  616.        - Re-boot when the restore is complete.
  617.  
  618.      Restoring the Desktop - Method 3
  619.  
  620.      This method is similar to using SHFTRN, but does not require the
  621.      SHFTRN tool.  It is quick and straightforward.  The tradeoff is that
  622.      you must edit CONFIG.SYS before using ROBOREST.  You could make this
  623.      your standard CONFIG.SYS, but then you would need to do an EXIT at the
  624.      command prompt for every IPL.  SHFTRN doesn't require that.
  625.  
  626.        - Edit CONFIG.SYS to put this line at the end,
  627.          where "x:" is your boot drive:
  628.             CALL=x:\OS2\CMD.EXE /K
  629.        - IPL; eventually you will get a command prompt.
  630.        - Place your "save" diskette in A: if restoring from diskette.
  631.        - Change to the "save" drive you will restore from.
  632.        - Change to the "save" directory containing ROBOREST.CMD.
  633.        - Invoke ROBOREST; there are no parameters.
  634.        - Respond YES when prompted to delete the Desktop.
  635.        - Re-boot when the restore is complete.
  636.  
  637.  
  638.      1.10  RECOVERY OF INDIVIDUAL FILES
  639.  
  640.      ROBOSAVE can also be useful if you have lost one or a few of your
  641.      saved files instead of losing the whole Desktop.  For example, if you
  642.      have accidentally erased your CONFIG.SYS, you can look at ROBOSAVE.LOG
  643.      to see the name under which it was copied to your save directory.
  644.      Then just copy it back to your boot drive and rename it to CONFIG.SYS.
  645.  
  646.  
  647.  
  648.  
  649.                                                   ROBOSAVE User's Guide  10
  650.  
  651.      9 Nov 1993  3:04  --  Employee Written Software Edition
  652.  
  653.  
  654.      1.11  CHOOSING A SAVE DIRECTORY
  655.  
  656.      There are some decisions you need to make when choosing a save direc-
  657.      tory.  You can place the directory either on a diskette or on a hard
  658.      drive.  Placing the data on a diskette isolates it from the system and
  659.      gives you some additional reliability.  For example, if the system
  660.      hard drive itself fails, you can reinstall OS/2 and your applications
  661.      on a repaired drive and then use ROBOSAVE to reapply all your tai-
  662.      loring.
  663.  
  664.      You can easily and inexpensively keep multiple generations of backups
  665.      on separate diskettes with one generation per diskette.  Then just
  666.      rotate thru the set of diskettes; when you are ready to do the next
  667.      ROBOSAVE, format the diskette that holds the oldest generation and use
  668.      it for the new save.  Then even if your most recent backup is lost
  669.      because for some reason the diskette holding it is no longer readable
  670.      (it happens more often than you would like to think), you can go back
  671.      to the next most recent backup on a separate diskette.
  672.  
  673.      On the other hand, saving to a diskette is much slower than saving to
  674.      a hard drive.  Also, if the amount of data to be saved is large, you
  675.      may exceed a single diskette's capacity; ROBOSAVE does not support
  676.      diskette spanning.  For a typical system the diskette space constraint
  677.      will not be a problem, particularly if you dedicate each diskette to a
  678.      single generation of saved data.  Normally the amount of data that
  679.      should be saved is well under a megabyte.  However, you might have a
  680.      special case and have a large amount of data to save.
  681.  
  682.      A good technique is to combine the two media approaches by making fre-
  683.      quent (quick) saves to a hard drive, but making occasional saves to
  684.      the next available diskette, e.g., after you have made some partic-
  685.      ularly important change to your system.  Also, if your saved data is
  686.      too large for a diskette, you can save it to a hard drive and then
  687.      later use a data compression program, such as PKZIP, to produce a file
  688.      small enough to store offline on a diskette.  Note there was a problem
  689.      in OS/2 2.0 in which the OS2.INI and OS2SYS.INI files tended to grow
  690.      very large; that problem seems to have been much alleviated in OS/2
  691.      2.1.
  692.  
  693.      Another consideration with choosing a save directory is whether to use
  694.      the root directory as the save directory, even on a dedicated
  695.      diskette.  Generally that is not a good idea since for the FAT file
  696.      system (which is the system used for diskettes) there is a limit to
  697.      how many files can be stored in the root directory.  The limit depends
  698.      on the size of the hard disk or diskette involved, but is typically
  699.      not much greater than several hundred files.  On the other hand, a
  700.      subdirectory does not have such a limit.  Thus it is a good idea to
  701.  
  702.  
  703.  
  704.                                                   ROBOSAVE User's Guide  11
  705.  
  706.      9 Nov 1993  3:04  --  Employee Written Software Edition
  707.  
  708.  
  709.      specify something like "SAVE=A:\SAVEDIR" rather than "SAVE=A:\" in
  710.      your profile.
  711.  
  712.  
  713.      1.12  CONTENTS OF THE SAVE DIRECTORY
  714.  
  715.      In your ROBOSAVE profile you designate a save directory thru the
  716.      "SAVE=" verb.  When you invoke ROBOSAVE, Desktop data and the files
  717.      you specified are saved there, together with some ROBOSAVE control
  718.      information.  Here are the types of files you may see in the save
  719.      directory.  Each "n" represents a decimal digit.
  720.  
  721.        nnnnnnnn.FIL - A "robo=" file or a file from a Desktop directory
  722.        nnnnnnnn.EAS - Extended Attributes from a file or Desktop directory
  723.        ROBOREST.CMD - Restore command created by the most recent ROBOSAVE
  724.        ROBOREST.CMn - Restore command created by a previous ROBOSAVE
  725.        ROBOSVUT.EXE - Module to check the OS/2 state and erase the Desktop
  726.        ROBOSAVE.LOG - Records all ROBOSAVE activity for this save directory
  727.        ROBOSAVE.MRK - File containing last used nnnnnnnn value
  728.  
  729.      All saved files and all files holding split extended attributes are
  730.      named with a numeric filename (nnnnnnnn) when put into the save direc-
  731.      tory.  The numeric value is incremented as each file is created.  A
  732.      check is made to ensure that the next value to be used is not already
  733.      in use in this save directory; if it is in use, the value is incre-
  734.      mented until a free value is found.  Using a numeric name instead of
  735.      the real name solves several problems.  It avoids ambiguity when two
  736.      files with the same name are saved from different directories, or when
  737.      the same file is saved multiple times in multiple generations.  It
  738.      also allows files with long HPFS names to be easily saved in a FAT
  739.      save directory, e.g., on a diskette.  The original name is restored by
  740.      the ROBOREST.CMD when it is executed.  You can see the correspondence
  741.      between the nnnnnnnn names and the real names by looking at
  742.      ROBOSAVE.LOG or the appropriate ROBOREST command.
  743.  
  744.      The "SAVENUM=" verb in the ROBOSAVE profile controls how many gener-
  745.      ations of data will be kept in the save directory.  ROBOREST.CMD is
  746.      associated with the most recent ROBOSAVE.  Each ROBOREST.CMn file is a
  747.      renamed ROBOREST.CMD that is associated with a preceding generation.
  748.      When the number of generations exceeds the "SAVENUM=" value, the
  749.      oldest ROBOREST.CMn file and all the files it points to will be
  750.      deleted from the save directory.  For example, if you have SAVENUM=3,
  751.      the following ROBOREST.CMn files would be kept in the "SAVE=" direc-
  752.      tory.
  753.  
  754.                  ROBOREST.CMD --> most recent
  755.                  ROBOREST.CM1 --> 2nd most recent
  756.                  ROBOREST.CM2 --> 3rd most recent
  757.  
  758.  
  759.                                                   ROBOSAVE User's Guide  12
  760.  
  761.      9 Nov 1993  3:04  --  Employee Written Software Edition
  762.  
  763.  
  764.      If you run ROBOSAVE again, ROBOREST.CM2 and all the files it points to
  765.      will be deleted.  ROBOREST.CM1 will be renamed to ROBOREST.CM2 and
  766.      ROBOREST.CMD will be renamed to ROBOREST.CM1.  A new ROBOREST.CMD will
  767.      be written containing commands to restore the data saved by the
  768.      current run.
  769.  
  770.  
  771.      1.13  ROBOSVUT UTILITY
  772.  
  773.      ROBOSVUT.EXE is a utility module which is used by both ROBOSAVE.CMD
  774.      and ROBOREST.CMD.  It accesses some low-level OS/2 services that are
  775.      not directly available thru OS/2 commands or REXX functions.
  776.  
  777.      ROBOSAVE.CMD uses ROBOSVUT to copy files which for some reason cannot
  778.      be copied by the OS/2 COPY command.  For example, this can happen if a
  779.      file has already been opened by some other process at the time
  780.      ROBOSAVE tries to COPY it.  In that case you will see a message from
  781.      ROBOSAVE.CMD that the COPY failed and that now ROBOSVUT will be tried.
  782.      ROBOSVUT will usually succeed in this situation.  ROBOSAVE.CMD will
  783.      also use ROBOSVUT to copy files that have been marked with the Hidden
  784.      or System attribute; OS/2 COPY cannot find such files.  A consider-
  785.      ation with using ROBOSVUT to copy a file is that it will not save the
  786.      file's extended attributes.  For the files ROBOSVUT is typically used
  787.      to save, that is not important because they do not have extended
  788.      attributes.
  789.  
  790.      ROBOREST.CMD uses ROBOSVUT to verify the OS/2 environment before pro-
  791.      ceeding.  ROBOSVUT will check that the right level of OS/2 has been
  792.      IPLed to do the ROBOREST; it must be the level that was used to do the
  793.      ROBOSAVE.  This check will detect most errors, but it will not detect
  794.      if there is a CSD mismatch.  ROBOSVUT will also verify that the OS/2
  795.      Workplace Shell is not active for the Desktop being restored; if it
  796.      were active, the restore would very likely be unsuccessful, or at
  797.      least the results would be unpredictable.  (Note that the Workplace
  798.      Shell CAN be active for a different Desktop; thus it is valid to IPL
  799.      from a different partition with its own Desktop to do the ROBOREST of
  800.      the inactive partition you want to recover.)  Finally, if all the
  801.      tests are passed, the user will be prompted for authorization to erase
  802.      the Desktop to prepare a clean slate for the restoration of the saved
  803.      Desktop.  If the user answers "YES", ROBOSVUT will erase the Desktop
  804.      directory tree and then return to ROBOREST, which will then do the
  805.      actual restore.
  806.  
  807.      Here are the return codes from ROBOSVUT.EXE.  If an OS/2 function
  808.      returns an error code to ROBOSVUT, both the OS/2 function name and the
  809.      returned error code are displayed in addition to ROBOSVUT's own return
  810.      code from the following list.
  811.  
  812.  
  813.  
  814.                                                   ROBOSAVE User's Guide  13
  815.  
  816.      9 Nov 1993  3:04  --  Employee Written Software Edition
  817.  
  818.  
  819.          1 - Error.  Opening source file for reading.
  820.          2 - Error.  Opening target file for writing.
  821.          6 - Error.  Unable to clear attributes on target.
  822.         11 - Error.  DosAllocMem failed.
  823.         12 - Error.  DosQuery failed for source.
  824.         13 - Error.  DosQuery failed for target.
  825.         14 - Error.  Open (READONLY) failed for target.
  826.         15 - Error.  Read failed for source.
  827.         16 - Error.  Write failed for target.  Target disk full?
  828.         17 - Error.  Close failed for target.
  829.         20 - Error.  Unable to update attributes/timestamp for target.
  830.         21 - Error.  VERIFY_COPY failed.
  831.        100 - Copy was successful.
  832.        199 - Desktop deleted successfully for ERASE_DESKTOP.
  833.        200 - User answered "NO" to prompt for ERASE_DESKTOP.
  834.        201 - Error.  DosFindFirst failed for directory.
  835.        202 - Error.  DosFindFirst found other than "." entry.
  836.        203 - Error.  DosDelete failed.
  837.        204 - Error.  DosFindNext failed.
  838.        205 - Error.  DosFindClose failed.
  839.        206 - Error.  DosDeleteDir failed.
  840.        207 - Error.  Maximum number of DosFindFirst/DosFindNexts exceeded.
  841.        251 - Error.  DosQuerySysInfo failed.
  842.        252 - Error.  DosOpen failed for test file.
  843.        253 - Error.  DosClose failed for test file.
  844.        254 - Error.  DosSetCurrentDir failed.
  845.        300 - Error.  DosOpen of test file detected Workplace Shell open.
  846.        301 - Error.  OS/2 version mismatch between ROBOSAVE and ROBOREST.
  847.  
  848.        Note:  If Ctrl-Break is pressed while ROBOSVUT is working or if the user
  849.               selects "End the program" for an OS/2 disk error prompt, a 99
  850.               can be returned by the system to the invoker of ROBOSVUT.
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.                                                   ROBOSAVE User's Guide  14
  870. @@@@@@