  Taper FAQ
  Yusuf Nagree

  ____________________________________________________________

  Table of Contents




























































  1. General

     1.1 Why aren't you responding to my e-mail?
     1.2 Why is taper already up to version 6 when a lot of programs that have been around a lot longer are  only up to versions 2,3 etc..
     1.3 Does taper support parallel port drives (eg. IOMEGA, SYQUEST, Backpack)?
     1.4 Does taper support the xxxxx drive?
     1.5 Does taper support tape drives greater than 2 gigabytes?

  2. User interface

     2.1 How do I de-select a file in backup?
     2.2 How do I de-select a file in restore?
     2.3 How do I move between YES and NO in message boxes?
     2.4 How do I exclude a subdirectory or file?
     2.5 Why does the display in verify/backup/full restore appear jerky and misses files?
     2.6 I'm unable to type anything into dialog boxes?

  3. Compiling

     3.1 Where do I get the latest ncurses?
     3.2 I compile and get many errors saying
     3.3 Why do I get a gcc fatal signal 11 message when compiling taper
     3.4 When compiling, the compiler complains that it cannot find
     3.5 I get error messages wattron and wattroff not found when compiling.
     3.6 I am getting errors such as
     3.7 Why do I get an error about not being able to find
     3.8 I get an error :
     3.9 I get the following errors whilst compiling:

  4. Problems in backup and restore

     4.1 I keep on getting the error message
     4.2 I get a
     4.3 Why does taper say
     4.4 Why does taper say

  5. Problems backing up

     5.1 Whenever I try to select a file or directory for backup, I get the error message
     5.2 I am mid-way through backing up in the directory /proc and I get funny messages such as
     5.3 When doing backups that take more than one tape, when it reaches the end of the tape, taper segmentation faults.
     5.4 After doing a backup or mkinfo, taper exists saying
     5.5 Taper works fine in interactive mode, but when I run it from a cron job, I get a
     5.6 Taper says
     5.7 Taper says
     5.8 I notice that zftape has a compressed mode. Should I use taper compression or zftape compression
     5.9 Why does taper seg fault at the end of a backup or while updating the header files.
     5.10 Why is taper not compressing my files even though I have compression turned on?
     5.11 I am using
     5.12 I am running from a cron job and keep on getting mailed errors about not being able to start a backup child. It works fine from the command line.
     5.13 I keep on getting an "alarm clock" error.
     5.14 Every now an then,
     5.15 Taper doesn't backup correctly and the log file has lots of "W:Write Child Segmentation Fault" messages.

  6. Problems restoring

     6.1 After doing a restore, the permissions on the files are correct, but all the files are owned by the user running restore (ie. ownership of files and directories is not correctly set).
     6.2 Restore give me a lot of warnings about unable to set times, and permissions.
     6.3 I backed up using taper-5.1.3 or earlier and when I try and restore, not all my files are being printed on the restore screen, or funny filenames appear in my restore screen.
     6.4 Why does restore print
     6.5 How do I restore my files in the directory from which they were originally backed up?
     6.6 I make a backup and all seems well, but then when I try to restore or verify, taper says `This is not a taper archive' or taper says `This is tape 0. Insert tape 1'
     6.7 I make a backup OK but when I try and restore, taper gives errors in the log file such as `Creating device xxxx' when xxx should be a file.

  7. Problems verifying/restoring info files

     7.1 Why is
     7.2 Why does
     7.3 If I'm verifying and I run out of temporary disk space, then
     7.4 I made a backup under

  8. Specific tape drives

     8.1 The Seagate TR4 SCSI drive
     8.2 Some SCSI drives
     8.3 Adaptec aicxxx

  9. Miscellaneous

     9.1 I am getting errors such as
     9.2 I am getting lots of temporary files in the /tmp directory and taper is dying with
     9.3 I am using a SCSI drive and
     9.4 In version 6.5, taper is not using preferences in my preference file
     9.5 In version 6.5, taper can't find my info files
     9.6 How do I compress my info files which are currently uncompressed?
     9.7 Why does looking for recursive links result in a seg fault?
     9.8 Why are the info files so big?
     9.9 My backup sets are no longer being recognized.


  ______________________________________________________________________

  11..  GGeenneerraall

  11..11..  WWhhyy aarreenn''tt yyoouu rreessppoonnddiinngg ttoo mmyy ee--mmaaiill??

  Like most people, I have to work to make a living. _T_a_p_e_r is done
  totally voluntarily and thus earns me no $$$s. If I haven't responded
  within a week, repost your message. If I still have not respond it
  means that I can't get hold of you, or I'm too busy. Rest assured that
  I do answer all e-mails eventually.


  11..22..  WWhhyy iiss ttaappeerr aallrreeaaddyy uupp ttoo vveerrssiioonn 66 wwhheenn aa lloott ooff pprrooggrraammss tthhaatt
  hhaavvee bbeeeenn aarroouunndd aa lloott lloonnggeerr aarree  oonnllyy uupp ttoo vveerrssiioonnss 22,,33 eettcc....

  The version scheme for taper is version x.y.z


     xx  major version number. Generally, new version archives will not
        be compatible with older versions. Thus, archives created under
        version 2 will not be usable under version 4, and version 4
        archives are not compatible with version 5. There was no public
        release of version 1 or 3.  Version 1 was a private development
        and version 3 was only released to a few alpha testers and then
        ditched because of problems

     yy  minor version number. When new features are added, this number
        is increased. For example, the addition of new options would
        necessitate a minor version number increase

     zz  bug fix. If the new version contains minor changes or bug fixes
        only, then only the bug fix number is increased.  If a new
        feature is added, then the minor version number is increased.

  Taper was originally developed for my own use with no thought to
  public release. It was only after I saw many messages on USENET etc..
  that I realized other people may benefit from taper and that's when I
  went public. Therefore, there has been no structured taper development
  plan. New features are being added as users request them, and as I try
  to respond as quickly as possible, taper versions have been appearing
  quite regularly (in some cases, days apart). Even now, I am not
  formulating a plan, but adding features in (rough) order of frequency
  that they are being requested, and how easily it can be implemented.


  11..33..  DDooeess ttaappeerr ssuuppppoorrtt ppaarraalllleell ppoorrtt ddrriivveess ((eegg.. IIOOMMEEGGAA,, SSYYQQUUEESSTT,,
  BBaacckkppaacckk))??


  Some parallel port drives are supported and full details on how to
  compile & install it can be found at http://www.torque.net/linux-
  pp.html.

  Thanks to Jeff Blaine for this information

  Note that the drive cannot do a fast fsf nor can it do a seek. Make
  sure the appropriate preferences are set correctly.



  11..44..  DDooeess ttaappeerr ssuuppppoorrtt tthhee xxxxxxxxxx ddrriivvee??

  Taper is user level program and not a low level I/O device driver.
  That means, it expects there to be a program that communicates between
  Linux and the tape drive. Examples are _f_t_a_p_e and _z_f_t_a_p_e for tape
  drives that connect to the floppy drive. SCSI tapes and IDE tapes are
  other examples of tape drives. With SCSI tape drives, chances are that
  support is available in the kernel. Similarly, IDE support is built
  into the kernel.

  For other tape drives, you will have to find out if there is a device
  driver available. Try the newsgroups for information. Alternatively,
  now that Linux is mainstream, your tape drive manufacturer may have
  released a driver or know of the whereabouts.


  11..55..  DDooeess ttaappeerr ssuuppppoorrtt ttaappee ddrriivveess ggrreeaatteerr tthhaann 22 ggiiggaabbyytteess??

  Taper will support tape drives up to 4GB in size. This is because
  Linux is a 32 bit system and the size of an integer is 32 bits - ie.
  4GB. It is planned to increase this to 64 bits, however, doing so will
  render the new archives incompatible with the old 32 bit archives.
  Before making archive incompatibilities, I want to have a lot of
  changes I can make at once, to minimize the number of archive changes.
  As time is limited at the moment, it may be a while before this stage
  is reached.



  22..  UUsseerr iinntteerrffaaccee


  22..11..  HHooww ddoo II ddee--sseelleecctt aa ffiillee iinn bbaacckkuupp??

  Use the TAB keys to go to the selected files box, move the cursor
  (using the arrow keys) to the item you wish to de-select and then
  press 'u' or 'U' and after confirmation, the file will be de-selected.
  Alternatively, you can press 'u' or 'U' on the file in the selected
  files box or the directory box.



  22..22..  HHooww ddoo II ddee--sseelleecctt aa ffiillee iinn rreessttoorree??

  The same as above.


  22..33..  HHooww ddoo II mmoovvee bbeettwweeeenn YYEESS aanndd NNOO iinn mmeessssaaggee bbooxxeess??

  You can press 'y', 'Y', 'n', 'N' to select yes or no directly.
  Alternatively, use TAB or spacebar to move the highlight between YES
  and NO. Press ENTER when the highlight is on what you wish.


  22..44..  HHooww ddoo II eexxcclluuddee aa ssuubbddiirreeccttoorryy oorr ffiillee??

  To facilitate incremental backups on an ever changing UN*X directory
  tree, when you select a directory for backup, taper only stores the
  directory name, not its contents of subdirectories. This means that it
  is not possible to select a directory (eg. /usr) and then enter the
  directory and then unselect a subdirectory (eg. /usr/tmp). If you try
  and do this, taper will give you an error message.

  From version 6.8, _t_a_p_e_r provides two mechanisms for excluding a single
  file or subdirectory.


  +o  Under the preference menu, there are two preferences :
     exclude_directories exclude_files. Add the file or subdirectory you
     want to exclude in these preferences

  +o  Use the 'e' option in the backup window, which will put the file or
     subdirectory in the exclude window


  22..55..  WWhhyy ddooeess tthhee ddiissppllaayy iinn vveerriiffyy//bbaacckkuupp//ffuullll rreessttoorree aappppeeaarr jjeerrkkyy
  aanndd mmiisssseess ffiilleess??

  To make taper run faster, the display is updated every second. Since
  taper can transfer small files to/from the tape device quicker than
  this, taper doesn't display them. There is a substantial improvement
  in backup performance using this technique.


  22..66..  II''mm uunnaabbllee ttoo ttyyppee aannyytthhiinngg iinnttoo ddiiaalloogg bbooxxeess??

  This is usually caused by an incorrect ncurses setup. Try to get the
  latest version of ncurses, do a full compile and install. See my home
  page www.e-survey.net.au/taper/ for a precompiled package.



  33..  CCoommppiilliinngg


  33..11..  WWhheerree ddoo II ggeett tthhee llaatteesstt nnccuurrsseess??

  It is available from ftp://ftp.clark.net/pub/dickey/ncurses/.  You
  will need at least ncurses 4.1 to compile taper.  Earlier versions
  will NOT work. Later version will.

  It is also available from sunsite.unc.edu in /pub/Linux/libs. Please
  do not use sunsite if you have a close by mirror since it is very
  heavily loaded.

  Taper also requires the forms library (which comes with ncurses).
  Compile ncurses and then do:






          rm /usr/include/form.h
          rm /usr/lib/libform.a
          rm /usr/lib/libform_g.a
          cp ncurses-xx/form.h /usr/include
          cp ncurses-xx/lib/libform.a /usr/lib
          cp ncurses-xx/lib/libform_g.a /usr/lib




  See my home page www.e-survey.net.au/taper/ for a precompiled package.


  33..22..  II ccoommppiillee aanndd ggeett mmaannyy eerrrroorrss ssaayyiinngg AANNSSII ddooeess nnoott ssuuppppoorrtt lloonngg
  lloonngg ..

  Don't worry about that. This means that you are using early kernels in
  which the header files were not strictly ANSI compliant. This
  shouldn't affect taper.


  33..33..  WWhhyy ddoo II ggeett aa ggcccc ffaattaall ssiiggnnaall 1111 mmeessssaaggee wwhheenn ccoommppiilliinngg ttaappeerr

  I have taken this straight from the GCC-FAQ:


  30) What does the message "Internal compiler error: cc1 got fatal signal 11,4" mean ?

  Ans:    Gcc is probably the biggest memory hog you likely to run on your
          machine and it will surely eat up a lot of your RAM. Usually a fatal
          signal 11 will mean some sort of parity errors in your RAM or other
          hardware faults. I had this once when `cc1' got corrupted due to a
          race condition and bad blocks on my hard disk. There have also been
          reports that overheating chips, (not french fries), can also produce
          such errors. And watch for poor IDE controller/drive combos that
          are being run faster than the standard 8MHz AT bus clock. These
          can give the same errors by causing corruption of the swap space.

          Usually, a signal 11 (segmentation violation) means that a process
          tried to access memory out of its process space, or tried to write
          into a read-only location.  Sometimes, this signal is caused by
          software bugs, not by hardware faults (or your system would hang
          repeatedly, because the same thing happened to the kernel).  With
          gcc 2.3.3, some people could reproduce a lot of "signal 11"'s.

          A "fatal signal 4" has been reported to be generated due to lack of
          memory (happened on a 4MB system).

          Also it can mean a failure in one of the `ld' or `as' stages. Try
          recompiling whatever with a -v flag to gcc and see if it is failing
          in one of the cc1, cpp, as or ld stages possibly.



  I will also add that sometimes it is due to the fact that gcc can't
  find the libraries. Make sure your libraries are in a location
  accessible to gcc (and that they are readable), and if not, change the
  LINK_LIB path in the Makefile.



  33..44..  WWhheenn ccoommppiilliinngg,, tthhee ccoommppiilleerr ccoommppllaaiinnss tthhaatt iitt ccaannnnoott ffiinndd
  ccuurrsseess..hh ..



  Make sure that your curses.h file is in /usr/include. Some older
  versions of ncurses places it in a directory called
  /usr/include/ncurses. If this is the case, you have two options:

  Move all the files in /usr/include/ncurses to /usr/include

  OR

  Change the line



       INCLUDE=




  your Makefile.common to



       INCLUDE = -I/usr/include/ncurses






  33..55..  II ggeett eerrrroorr mmeessssaaggeess wwaattttrroonn aanndd wwaattttrrooffff nnoott ffoouunndd wwhheenn ccoommppiill--
  iinngg..


  You do not have the correct curses.h header file. Make sure that you
  have the latest curses.h file and there are no old ones lying around.


  33..66..  II aamm ggeettttiinngg eerrrroorrss ssuucchh aass ssyynnttaaxx eerrrroorr bbeeffoorree ``iinntt''  wwhhiillee
  ccoommppiilliinngg..


  You are using an old linux kernel. To overcome this, in the
  Makefile.common file, there is a line



          CFLAGS_NOLNK = -ansi




  Change this line to



          CFLAGS_NOLNK =






  33..77..  WWhhyy ddoo II ggeett aann eerrrroorr aabboouutt nnoott bbeeiinngg aabbllee ttoo ffiinndd ffoorrmm..hh  wwhheenn
  ccoommppiilliinngg??

  You need the forms package that comes with ncurses. See above for how
  to get the latest ncurses package.
  Note that you need the ncurses sources - getting the binaries alone
  often does not contain the form.h file that you require.


  33..88..  II ggeett aann eerrrroorr :: ccoommpprreessss//ggzziipp..hh:: ccoonnfflliiccttiinngg ttyyppeess ffoorr ''bbaassee--
  nnaammee''  wwhheenn ccoommppiilliinngg ttaappeerr

  This means that you are using C libraries that are too old. Ideally,
  upgrade your C libraries. Alternatively, you have to edit the file
  gzip.h found in the compress subdirectory of taper.

  Find the line:



               extern char *basename   OF((char *fname));




  and change it so it reads:



               /* extern char *basename OF((char *fname)); */




  and try compiling taper again.



  33..99..  II ggeett tthhee ffoolllloowwiinngg eerrrroorrss wwhhiillsstt ccoommppiilliinngg:: sseelleecctt__bbooxx..hh::112255::
  ppaarrssee eerrrroorr bbeeffoorree ``uummooddee__tt'' ..

  You are using glibc2 (or libc6) libraries. In _M_a_k_e_f_i_l_e_._c_o_m_m_o_n, make
  sure there is a line:



       GLIBC = TRUE







  44..  PPrroobblleemmss iinn bbaacckkuupp aanndd rreessttoorree


  44..11..  II kkeeeepp oonn ggeettttiinngg tthhee eerrrroorr mmeessssaaggee DDeevviiccee oorr rreessoouurrccee bbuussyy
  wwhhiillee ttrryyiinngg ttoo ooppeenn bbaacckkuupp ddeevviiccee ..



  +o  Make sure that another user is not using the tape drive.

  +o  Make sure that no processes that use the tape drive are running in
     the background.

  +o  If you are using a floppy controller, make sure that there are no
     floppy drives mounted.


  +o  This error may also be caused by insufficient unfragmented memory
     below 16MB on PC Linux systems. In this case, the ftape module
     could not allocate a DMA buffer. This also affects the floppy
     module.



  44..22..  II ggeett aa NNoo ssuucchh ddeevviiccee   eerrrroorr wwhheenn ttrryyiinngg ttoo bbaacckkuupp oorr rreessttoorree..

  You have not enabled support for your tape drive. If you have a SCSI
  tape drive, make sure your kernel was compiled with support for CSI
  devices, support for SCSI tape drives, and support for your interface
  card, enabled. Also make sure that you have edited the Makefile and
  removed the '#' in the line '#DEFINES=-DHAVE_SCSI' and then re-compile
  and re-install.

  Also, if you have a SCSI drive, make sure that it is turned on when
  you boot Linux. If it isn't turned on when you boot, Linux won't
  register its presence, and even if you turn it on after, it may still
  not work.

  If you have a floppy tape drive, make sure you have ftape, and you
  have installed it with "insmod ftape.o".



  44..33..  WWhhyy ddooeess ttaappeerr ssaayy RReewwiinnddiinngg ttaappee  ffoorr aa ffllaasshh aanndd tthheenn bbeeffoorree
  iitt ssttaarrttss ttoo rreeaadd,, ttaakkeess aa lloonngg ttiimmee ttoo ssttaarrtt aaccttuuaallllyy rreeaadd..


  This is the way the ftape/zftape driver works. When taper (or anyone)
  does a request for the tape to be rewound or fast forwarded, it
  doesn't actually move the tape at that point - it just remembers that
  the tape needs to be rewound/fast forwarded. When a read/write command
  is given, then the tape is actually moved. So, when taper issues a
  rewind, the driver instantly returns to taper, but then when taper
  issues a read, then the tape is positioned - hence it looks like it is
  taking a long time to read. This is why "Rewinding tape" only stays
  for a second, but before the read can begin, the tape has to be
  physically moved.



  44..44..  WWhhyy ddooeess ttaappeerr ssaayy TTaappee ddrriivvee ttyyppee hhaass nnoott bbeeeenn sseett  wwhheenn
  ssttaarrtteedd

  You must tell taper what type of tape drive you have. There are
  several types taper supports. You start taper like




          taper -T SCSI    (taper -T s) or
          taper -T ftape   (taper -T f) or
          taper -T zftape  (taper -T z) or
          taper -T removable  (taper -T r) or
          taper -T file (taper -T l) or
          taper -T ide  (taper -T i)




  depending on what type of tape drive you have. You can then save this
  to a preference file using the menu option so you don't have to start
  taper like this again. Note that you can use the shortened version
  shown in brackets.
  Alternatively, you can set the environment variable, TAPE_TYPE to
  scsi, zftape, removable, ide, file or ftape.




  55..  PPrroobblleemmss bbaacckkiinngg uupp


  55..11..  WWhheenneevveerr II ttrryy ttoo sseelleecctt aa ffiillee oorr ddiirreeccttoorryy ffoorr bbaacckkuupp,, II ggeett
  tthhee eerrrroorr mmeessssaaggee tttt FFiillee iiss oonn eexxcclluussiioonn lliisstt //..

  You have extraneous spaces in your exclude directory and/or exclude
  files preferences.  There must be no leading or trailing spaces in the
  preferences. Additionally, each file/directory (if any) entry must be
  separated by one space only.


  55..22..  II aamm mmiidd--wwaayy tthhrroouugghh bbaacckkiinngg uupp iinn tthhee ddiirreeccttoorryy //pprroocc aanndd II ggeett
  ffuunnnnyy mmeessssaaggeess ssuucchh aass --77%% ddoonnee  aanndd tthhee pprrooggrraamm sseeeemmss ttoo hhaanngg??

  The /proc directory does not contain files. It contains run-time
  system information, such as the environment of running processes, an
  image of system memory etc.. Therefore, you should not need to backup
  the /proc directory. If you do, you will get spurious results such as
  the above.  See _T_A_P_E_R_._T_X_T for how to automatically exclude the /proc
  system.



  55..33..  WWhheenn ddooiinngg bbaacckkuuppss tthhaatt ttaakkee mmoorree tthhaann oonnee ttaappee,, wwhheenn iitt rreeaacchheess
  tthhee eenndd ooff tthhee ttaappee,, ttaappeerr sseeggmmeennttaattiioonn ffaauullttss..


  Taper can't correctly work out the end of tape on some tape drives. If
  the above occurs with you, your tape drive is one of those. Go to the
  preference menu, and under tape drive preferences, tell taper the size
  of your tape drive. Note that taper needs the UNCOMPRESSED size of the
  tape drive. Subtract about 10% from the manufacturers stated to
  account for formatting etc.. (eg. if your tape drive is 120MB, tell
  taper it is 108MB).




  55..44..  AAfftteerr ddooiinngg aa bbaacckkuupp oorr mmkkiinnffoo,, ttaappeerr eexxiissttss ssaayyiinngg UUnnaabbllee ttoo
  ccrreeaattee iinnffoo ffiillee ..

  Check that taper is able to create the info file directory (the
  default is /$HOME/.taper_info). If it can't, taper generates this
  error. Reasons include no disk space, and you don't have permission
  to. Note that after this error, the backup is still intact. You just
  have to fix the problem and then select mkinfo, not do the whole
  backup again.



  55..55..  TTaappeerr wwoorrkkss ffiinnee iinn iinntteerraaccttiivvee mmooddee,, bbuutt wwhheenn II rruunn iitt ffrroomm aa
  ccrroonn jjoobb,, II ggeett aa CCaann''tt ssttaarrtt bbaacckkuupp cchhiilldd  eerrrroorr mmaaiilleedd ttoo mmee..


  As explained above, taper uses two ancillary program. Note that cron
  uses a different path than the normal one. Generally, it is only /bin,
  /usr/bin and /usr/local/bin.


  Either copy bg_backup and bg_restore to one of those directories, or
  make links in these directories or change the path.


  55..66..  TTaappeerr ssaayyss CCaann''tt ssttaarrtt bbaacckkuupp cchhiilldd ..


  Taper uses two ancillary programs, bg_backup and bg_restore to handle
  background compression. Make sure that you have these two programs,
  and that they are in the directory you started taper in or in a
  directory on your path.


  55..77..  TTaappeerr ssaayyss CCaann''tt ssttaarrtt bbaacckkuupp cchhiilldd  wwhheenn rruunnnniinngg uunnddeerr aa ccrroonn
  jjoobb..

  For some installations, cron does not have /sbin and /usr/sbin in its
  search path.  I don't know why. The solution is to put bg_backup,
  bg_restore and taper in /usr/bin or /usr/sbin.



  55..88..  II nnoottiiccee tthhaatt zzffttaappee hhaass aa ccoommpprreesssseedd mmooddee.. SShhoouulldd II uussee ttaappeerr
  ccoommpprreessssiioonn oorr zzffttaappee ccoommpprreessssiioonn

  If you use zftape compression, you may find your backups will be
  quicker, and they certainly will be easier on system load. However,
  should a segment of tape become corrupted, then it will be virtually
  impossible to reconstruct your backup and retrieve any files beyond
  the corrupted segment.

  If you use taper's compression, however, it may be possible to
  retrieve data beyond the corrupted section, depending on exactly which
  pieces of data were corrupted. This is because taper compresses each
  file individually and hence, the corruption won't affect other files.




  55..99..  WWhhyy ddooeess ttaappeerr sseegg ffaauulltt aatt tthhee eenndd ooff aa bbaacckkuupp oorr wwhhiillee uuppddaatt--
  iinngg tthhee hheeaaddeerr ffiilleess..


  There seems to be a bug in either libc 5.3.12 and/or binutils
  2.6.0.12.  To find out what version of libc you are using, do a



          ls -l /lib/libc.so.5




  and you will see what version of libc you are using.

  To find out what version of binutils you are using, do a



          ld -v




  which will print your version.

  If you are using one or both of the above, then you can do one of the
  following:

  +o  Downgrade your C libraries to 5.2.18

  +o  Upgrade your binutils to 2.6.0.14

  Option 2 is the easier (and more logical choice), however, it may not
  work all the time. Option 1 should always work.



  55..1100..  WWhhyy iiss ttaappeerr nnoott ccoommpprreessssiinngg mmyy ffiilleess eevveenn tthhoouugghh II hhaavvee ccoomm--
  pprreessssiioonn ttuurrnneedd oonn??

  The most common cause is that taper cannot find bg_backup which is the
  program that compresses programs in the background. Make sure that you
  have this program compiled and either in the current directory or on
  your path.


  55..1111..  II aamm uussiinngg ffttaappee  vveerrssiioonn  33 aanndd ggeettttiinngg ssoommee ssppuurriioouuss rreessuullttss..

  _f_t_a_p_e version  3 is actually a combination of the old _f_t_a_p_e and
  _z_f_t_a_p_e. Therefore, if you are using _f_t_a_p_e version  3, you should start
  _t_a_p_e_r with the _z_f_t_a_p_e option (ie. taper -T z).



  55..1122..  II aamm rruunnnniinngg ffrroomm aa ccrroonn jjoobb aanndd kkeeeepp oonn ggeettttiinngg mmaaiilleedd eerrrroorrss
  aabboouutt nnoott bbeeiinngg aabbllee ttoo ssttaarrtt aa bbaacckkuupp cchhiilldd.. IItt wwoorrkkss ffiinnee ffrroomm tthhee
  ccoommmmaanndd lliinnee..

  For some reason, when cron runs a job, it doesn't put /sbin on the
  path, and therefore, _t_a_p_e_r can't find its children which are in /sbin.
  The solution is to move _t_a_p_e_r, _b_g___b_a_c_k_u_p and _b_g___r_e_s_t_o_r_e to /bin or put
  links in /bin to point to the entries in /sbin. Newer versions of
  _t_a_p_e_r will automatically do this with make install.


  55..1133..  II kkeeeepp oonn ggeettttiinngg aann ""aallaarrmm cclloocckk"" eerrrroorr..

  There is an incompatibility with taper and some dyanmic C libraries.
  Compile taper statically, rather than dynamically.


  55..1144..  EEvveerryy nnooww aann tthheenn,, ttaappeerr  jjuusstt ssttooppss wwhhiillsstt bbaacckkiinngg uupp aanndd
  rreeqquuiirreess aa kkeeyypprreessss ttoo ccoonnttiinnuuee..

  Upgrade to ncurses 4.1 or greater.


  55..1155..  TTaappeerr ddooeessnn''tt bbaacckkuupp ccoorrrreeccttllyy aanndd tthhee lloogg ffiillee hhaass lloottss ooff
  ""WW::WWrriittee CChhiilldd SSeeggmmeennttaattiioonn FFaauulltt"" mmeessssaaggeess..

  There is a problem with some C libraries, eg. version 5.4.38, and
  5.4.44. Try upgrading to libc6 or downgrading to an old libc5 library
  (5.4.33 works).


  66..  PPrroobblleemmss rreessttoorriinngg





  66..11..  AAfftteerr ddooiinngg aa rreessttoorree,, tthhee ppeerrmmiissssiioonnss oonn tthhee ffiilleess aarree ccoorrrreecctt,,
  bbuutt aallll tthhee ffiilleess aarree oowwnneedd bbyy tthhee uusseerr rruunnnniinngg rreessttoorree ((iiee.. oowwnneerrsshhiipp
  ooff ffiilleess aanndd ddiirreeccttoorriieess iiss nnoott ccoorrrreeccttllyy sseett))..

  This will happen if a user other than root runs the restore program.
  Under UN*X, only the root can change the ownership of files.
  Therefore, if wish to restore the correct ownerships, run restore as
  root. If you set the --set-ownership preference off, then _t_a_p_e_r will
  not attempt to set the ownership of files after a restore.



  66..22..  RReessttoorree ggiivvee mmee aa lloott ooff wwaarrnniinnggss aabboouutt uunnaabbllee ttoo sseett ttiimmeess,, aanndd
  ppeerrmmiissssiioonnss..


  See above



  66..33..  II bbaacckkeedd uupp uussiinngg ttaappeerr--55..11..33 oorr eeaarrlliieerr aanndd wwhheenn II ttrryy aanndd
  rreessttoorree,, nnoott aallll mmyy ffiilleess aarree bbeeiinngg pprriinntteedd oonn tthhee rreessttoorree ssccrreeeenn,, oorr
  ffuunnnnyy ffiilleennaammeess aappppeeaarr iinn mmyy rreessttoorree ssccrreeeenn..

  There was an obscure bug in taper-5.0 to taper-5.1.3 which caused
  incorrect file counts to be occassionally written to the archive.
  Unfortunately, other than recreating the backup, this can't be
  rectified. However, if you run mkinfo on your archive, taper will
  create a 'fudged' info file that will allow you to use your archive
  normally.




  66..44..  WWhhyy ddooeess rreessttoorree pprriinntt CCaann''tt ggiivvee wwaarrnniinngg && eerrrroorr ccoouunntt ..

  If you do not enable triple buffering, taper assumes that you haven't
  got SYSV_IPC support for shared memory aspects of SYSV_IPC. Taper
  restores in a child process in the background, independently of the
  main taper program and requires shared memory for the child to
  communicate with the main program. If you don't have shared memory,
  then the child can't communicate with the parent, and let the parent
  know how many errors the child encoutnered, hence the error message
  and warning message count will be incorrect.



  66..55..  HHooww ddoo II rreessttoorree mmyy ffiilleess iinn tthhee ddiirreeccttoorryy ffrroomm wwhhiicchh tthheeyy wweerree
  oorriiggiinnaallllyy bbaacckkeedd uupp??

  By default, taper will restore files into the current directory (the
  same as tar). Subdirectories will be created as necessary. For
  example, if you back up the /etc directory and then run taper from
  /home/joe and try and restore this archive, a directory called
  /home/joe/etc will be made and all files will be in this directory.

  To restore files from whence they came, start taper with the -r option
  like:



               taper -r / [rest of your options]




  Alternatively, you can use the restore preferences menu. Simply set
  the restore path preference to /



  66..66..  II mmaakkee aa bbaacckkuupp aanndd aallll sseeeemmss wweellll,, bbuutt tthheenn wwhheenn II ttrryy ttoo
  rreessttoorree oorr vveerriiffyy,, ttaappeerr ssaayyss ``TThhiiss iiss nnoott aa ttaappeerr aarrcchhiivvee'' oorr ttaappeerr
  ssaayyss ``TThhiiss iiss ttaappee 00.. IInnsseerrtt ttaappee 11''


  The most likely explanation is that you have not set up your rewinding
  & non-rewinding devices correctly.  Look at the table below and check
  that your preference file has the correct devices set under tape drive
  preferences.


                    rewinding               non-rewinding
      ====================================================
      ftape         /dev/ftape              /dev/nftape
      zftape        /dev/qft0               /dev/nqft0
      scsi          /dev/st0                /dev/nst0
      floppy a      /dev/fd0                /dev/fd0
      floppy b      /dev/fd1                /dev/fd1



  These device names may be different if you have configured your system
  differently.

  See the section in the docs about tape devices for further
  information.



  66..77..  II mmaakkee aa bbaacckkuupp OOKK bbuutt wwhheenn II ttrryy aanndd rreessttoorree,, ttaappeerr ggiivveess
  eerrrroorrss iinn tthhee lloogg ffiillee ssuucchh aass ``CCrreeaattiinngg ddeevviiccee xxxxxxxx'' wwhheenn xxxxxx sshhoouulldd
  bbee aa ffiillee..


  You have set your preference `can seek' (under tape drive preferences)
  to TRUE when your tape drive cannot seek properly. Run the utility
  `test can seek'.  If this utility says that your tape drive cannot
  seek, change the preference via a command line option, preference file
  or manually.

  If the utility says your tape drive can seek, but you are getting
  these sorts of errors, please contact me with details.



  77..  PPrroobblleemmss vveerriiffyyiinngg//rreessttoorriinngg iinnffoo ffiilleess



  77..11..  WWhhyy iiss ttaappeerr  sslluuggggiisshh wwhheenn sseelleeccttiinngg ffiilleess ttoo rreessttoorree??

  When doing a restore, _t_a_p_e_r automatically tries to find the most
  recent file in the archive - ie. you may have several copies of
  /home/misc/test in different volumes. _T_a_p_e_r will find the most recent
  and select that one for restore. This does take time.

  If you do not want this feature, disable it from the preferences menu
  and _t_a_p_e_r won't be so sluggish.



  77..22..  WWhhyy ddooeess ttaappeerr  ttrryy ttoo aaddvvaannccee ttoo aa nnoonn--eexxiisstteenntt vvoolluummee aanndd tthheenn
  pprriinntt aann eerrrroorr mmeessssaaggee??

  When doing a verify or restore info files, _t_a_p_e_r doesn't know how many
  volumes are on the archive (since that information is in the info
  files). Thus, the only way _t_a_p_e_r knows that the end of the archive has
  been reached is when error messages are returned. Some tape drives
  return error messages gracefully, and hence _t_a_p_e_r exits gracefully.
  Others do not, and thus _t_a_p_e_r prints error messages.

  Do not worry about the error messages - you verify/restore etc.. will
  have worked correctly.


  77..33..  IIff II''mm vveerriiffyyiinngg aanndd II rruunn oouutt ooff tteemmppoorraarryy ddiisskk ssppaaccee,, tthheenn
  ttaappeerr  ssaayyss ssoommee ooff mmyy ffiilleess aarreenn''tt tthhee ssaammee aass oonn tthhee ddiisskk wwhheenn II
  kknnooww tthheeyy aarree

  If _t_a_p_e_r runs out of disk space while verifying (or restoring), it may
  not be able to read in the whole file from the tape and thus thinks
  that the file on the disk and tape are different.

  If you run out of temporary disk space, ignore all errors and redo the
  verify.


  77..44..  II mmaaddee aa bbaacckkuupp uunnddeerr ffttaappee  vveerrssiioonn  33 aanndd aamm ttrryyiinngg ttoo rreessttoorree
  uunnddeerr zzffttaappee  aanndd iitt wwoonn''tt rreessttoorree mmyy ffiilleess..

  You cannot restore backups made with _f_t_a_p_e version  3 with the older
  _z_f_t_a_p_e. _z_f_t_a_p_e backups must be restored with _z_f_t_a_p_e and _f_t_a_p_e  3 must
  be restored with _f_t_a_p_e  3.


  88..  SSppeecciiffiicc ttaappee ddrriivveess



  88..11..  TThhee SSeeaaggaattee TTRR44 SSCCSSII ddrriivvee

  You must prepare a tape as follows before use with _t_a_p_e_r:



       mt-st -f /dev/st0 setblk 32768
       dd if=/dev/zero ibs=32k of=/dev/st0 obs=32k




  In _t_a_p_e_r, set the set block size preference ON and set the blocksize
  to 32768. You can use other block sizes other than 32K - make sure you
  change the appropriate values.

  Set the preference "use eom" ON.


  88..22..  SSoommee SSCCSSII ddrriivveess

  Some SCSI drives require the scsi2logical parameter set. There are two
  ways of doing this.

  +o  Change the following line in your _s_t_._c file in the SCSI driver:



  tpnt->scsi2_logical = 0;

  to

  tpnt->scsi2_logical = 1;




  +o  Use the following command before starting _t_a_p_e_r:


       mt -f /dev/st0 scsi2logical






  88..33..  AAddaapptteecc aaiiccxxxxxx

  From Ringo.DeSmet@advalvas.be:

  When I started backing up, I had quite some problems, but these were
  related to the adaptec aic7xxx low-level scsi driver. I am now running
  kernel 2.0.30 with aic7xxx driver version 2.1.26 (Jun 1). If other
  people with similar config asks you, I have the following options
  enabled in the source code of the driver (aic7xxx.c):

  7^


       #define TAGGED_QUEUEING_BY_DEVICE




  and a few lines beneath it, you can set the SCB queue depth for each
  device. People must check with the scsiconfig utility which devices
  support Tagged Queueing. There are 16 values that can be filled in:
  scsi id 0 to 15. The adapter supports it, as well as my first
  harddisk. All other devices have tagged queueing disabled. The line in
  the driver for me looks as follows:



       { 4, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1}




  which means that I tell the scsi driver that my HD (/dev/sda) can
  accept 4 SCBs and my adapter can accept 8. "-1" means disabled...



  99..  MMiisscceellllaanneeoouuss



  99..11..  TThhiiss iinnddiiccaatteess tthhaatt yyoouurr ttaappee ddrriivvee rreeqquuiirreess tthhee ssccssii22llooggiiccaall
  ppaarraammaatteerr sseett.. SSeeee aabboovvee..  II aamm ggeettttiinngg eerrrroorrss ssuucchh aass  sstt00:: EErrrroorr
  wwiitthh sseennssee ddaattaa:: eexxttrraa ddaattaa nnoott vvaalliidd CCuurrrreenntt eerrrroorr sstt0099::0000  aanndd sseennssee
  kkeeyy MMeeddiiuumm EErrrroorr  aanndd AAddddiittiioonnaall sseennssee iinnddiiccaatteess IIdd ccrrcc oorr eecccc eerrrroorr ..


  99..22..  II aamm ggeettttiinngg lloottss ooff tteemmppoorraarryy ffiilleess iinn tthhee //ttmmpp ddiirreeccttoorryy aanndd
  ttaappeerr iiss ddyyiinngg wwiitthh FFIIFFOO eerrrroorrss  iinn tthhee lloogg ffiillee..

  If you are using libc5, try upgrading to glibc. If that is not
  possible, uncomment the "-DFIFO_PROBLEMS" define in Makefile.common.



  99..33..  II aamm uussiinngg aa SSCCSSII ddrriivvee aanndd ttaappeerr  ssaayyss mmyy ddrriivvee ccaannnnoott sseeeekk,,
  wwhheenn II kknnooww iitt ccaann..

  Some SCSI drives require the block size set. If you are having the
  above problem, try setting the set blocksize preference ON.


  99..44..  IInn vveerrssiioonn 66..55,, ttaappeerr iiss nnoott uussiinngg pprreeffeerreenncceess iinn mmyy pprreeffeerreennccee
  ffiillee


  From 6.5, the names of the preference file, log files and info
  directories have been changed. Rename the following files/directories:


       .taper_log   ---> taper_log
       .taper_prefs ---> taper_prefs
       .taper_info  ---> taper_info





  99..55..  IInn vveerrssiioonn 66..55,, ttaappeerr ccaann''tt ffiinndd mmyy iinnffoo ffiilleess

  See above



  99..66..  HHooww ddoo II ccoommpprreessss mmyy iinnffoo ffiilleess wwhhiicchh aarree ccuurrrreennttllyy uunnccoomm--
  pprreesssseedd??

  Just recreate the info files from the main menu



  99..77..  WWhhyy ddooeess llooookkiinngg ffoorr rreeccuurrssiivvee lliinnkkss rreessuulltt iinn aa sseegg ffaauulltt??

  The recursive link utility goes through your filesystem looking for
  links that are recursive (ie. end up pointing to themselves so that
  there is an infinite loop). This utility tries to find such recursive
  links. It finds them in one of two ways :


  +o  It finds & tells you about the offending link

  +o  It seg faults at the offending link

  This way you can find & correct the offending link.  Note recursive
  links are only a problem if you are backing up with hard links set to
  ON (ie. the file and not the link is backed up).


  99..88..  WWhhyy aarree tthhee iinnffoo ffiilleess ssoo bbiigg??

  The new info file format from 6.8 is a sparse m-tree index. This is a
  very fast index file. However, because file names are 256 bytes under
  Linux, each file takes approximately 300 bytes of information and
  thus, the info files can grow quite big.

  However, they do compress very well, so make sure that the compress
  info preference is ON. Also, if disk space is a problem, you can
  delete the files ending in `.1' and `.2' and reindex the files (from
  the utilities menu) when required.


  99..99..  MMyy bbaacckkuupp sseettss aarree nnoo lloonnggeerr bbeeiinngg rreeccooggnniizzeedd..

  From 6.8.0a11, the format of the backup sets changed to accommodate
  the exclude option. To convert your old backup sets, simply insert
  line with the letter 'I' before each filename. For example, if your
  backup set looked like:



       /home/yusuf/dir1

       /usr/docs

       /usr/local




  the new backup set should look like:



       I
       /home/yusuf/dir1

       I
       /usr/docs

       I
       /usr/local




























