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 ANSI does not support long long. 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 curses.h. 3.5 I get error messages wattron and wattroff not found when compiling. 3.6 I am getting errors such as syntax error before `int' while compiling. 3.7 Why do I get an error about not being able to find form.h when compiling? 3.8 I get an error : compress/gzip.h: conflicting types for 'basename' when compiling taper 3.9 I get the following errors whilst compiling: select_box.h:125: parse error before `umode_t'. 4. Problems in backup and restore 4.1 I keep on getting the error message Device or resource busy while trying to open backup device. 4.2 I get a No such device error when trying to backup or restore. 4.3 Why does taper say Rewinding tape for a flash and then before it starts to read, takes a long time to start actually read. 4.4 Why does taper say Tape drive type has not been set when started 5. Problems backing up 5.1 Whenever I try to select a file or directory for backup, I get the error message tt File is on exclusion list/. 5.2 I am mid-way through backing up in the directory /proc and I get funny messages such as -7% done and the program seems to hang? 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 Unable to create info file. 5.5 Taper works fine in interactive mode, but when I run it from a cron job, I get a Can't start backup child error mailed to me. 5.6 Taper says Can't start backup child. 5.7 Taper says Can't start backup child when running under a cron job. 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 ftape version 3 and getting some spurious results. 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, taper just stops whilst backing up and requires a keypress to continue. 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 Can't give warning & error count. 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 taper sluggish when selecting files to restore? 7.2 Why does taper try to advance to a non-existent volume and then print an error message? 7.3 If I'm verifying and I run out of temporary disk space, then taper says some of my files aren't the same as on the disk when I know they are 7.4 I made a backup under ftape version 3 and am trying to restore under zftape and it won't restore my files. 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 st0: Error with sense data: extra data not valid Current error st09:00 and sense key Medium Error and Additional sense indicates Id crc or ecc error. This indicates that your tape drive requires the scsi2logical paramater set. See above. 9.2 I am getting lots of temporary files in the /tmp directory and taper is dying with FIFO errors in the log file. 9.3 I am using a SCSI drive and taper says my drive cannot seek, when I know it can. 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. ______________________________________________________________________ 11.. GGeenneerraall 11..11.. WWhhyy aarreenn''tt yyoouu rreessppoonnddiinngg ttoo mmyy ee--mmaaiill?? 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. 11..22.. WWhhyy iiss ttaappeerr aallrreeaaddyy uupp ttoo vveerrssiioonn 66 wwhheenn aa lloott ooff pprrooggrraammss tthhaatt hhaavvee bbeeeenn aarroouunndd aa lloott lloonnggeerr aarree oonnllyy uupp ttoo vveerrssiioonnss 22,,33 eettcc.... The version scheme for taper is version x.y.z xx 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 yy 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 zz 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. 11..33.. DDooeess ttaappeerr ssuuppppoorrtt ppaarraalllleell ppoorrtt ddrriivveess ((eegg.. IIOOMMEEGGAA,, SSYYQQUUEESSTT,, BBaacckkppaacckk))?? 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. 11..44.. DDooeess ttaappeerr ssuuppppoorrtt tthhee xxxxxxxxxx ddrriivvee?? 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. 11..55.. DDooeess ttaappeerr ssuuppppoorrtt ttaappee ddrriivveess ggrreeaatteerr tthhaann 22 ggiiggaabbyytteess?? 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. 22.. UUsseerr iinntteerrffaaccee 22..11.. HHooww ddoo II ddee--sseelleecctt aa ffiillee iinn bbaacckkuupp?? 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. 22..22.. HHooww ddoo II ddee--sseelleecctt aa ffiillee iinn rreessttoorree?? The same as above. 22..33.. HHooww ddoo II mmoovvee bbeettwweeeenn YYEESS aanndd NNOO iinn mmeessssaaggee bbooxxeess?? 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. 22..44.. HHooww ddoo II eexxcclluuddee aa ssuubbddiirreeccttoorryy oorr ffiillee?? 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 22..55.. WWhhyy ddooeess tthhee ddiissppllaayy iinn vveerriiffyy//bbaacckkuupp//ffuullll rreessttoorree aappppeeaarr jjeerrkkyy aanndd mmiisssseess ffiilleess?? 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. 22..66.. II''mm uunnaabbllee ttoo ttyyppee aannyytthhiinngg iinnttoo ddiiaalloogg bbooxxeess?? 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 NEED_WEB_ADDRESS/ for a precompiled package. 33.. CCoommppiilliinngg 33..11.. WWhheerree ddoo II ggeett tthhee llaatteesstt nnccuurrsseess?? 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 NEED_WEB_ADDRESS for a precompiled package. 33..22.. II ccoommppiillee aanndd ggeett mmaannyy eerrrroorrss ssaayyiinngg AANNSSII ddooeess nnoott ssuuppppoorrtt lloonngg lloonngg .. 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. 33..33.. WWhhyy ddoo II ggeett aa ggcccc ffaattaall ssiiggnnaall 1111 mmeessssaaggee wwhheenn ccoommppiilliinngg ttaappeerr 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. 33..44.. WWhheenn ccoommppiilliinngg,, tthhee ccoommppiilleerr ccoommppllaaiinnss tthhaatt iitt ccaannnnoott ffiinndd ccuurrsseess..hh .. 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 33..55.. II ggeett eerrrroorr mmeessssaaggeess wwaattttrroonn aanndd wwaattttrrooffff nnoott ffoouunndd wwhheenn ccoommppiill-- iinngg.. 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. 33..66.. II aamm ggeettttiinngg eerrrroorrss ssuucchh aass ssyynnttaaxx eerrrroorr bbeeffoorree ``iinntt'' wwhhiillee ccoommppiilliinngg.. 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 = 33..77.. WWhhyy ddoo II ggeett aann eerrrroorr aabboouutt nnoott bbeeiinngg aabbllee ttoo ffiinndd ffoorrmm..hh wwhheenn ccoommppiilliinngg?? 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. 33..88.. II ggeett aann eerrrroorr :: ccoommpprreessss//ggzziipp..hh:: ccoonnfflliiccttiinngg ttyyppeess ffoorr ''bbaassee-- nnaammee'' wwhheenn ccoommppiilliinngg ttaappeerr 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. 33..99.. II ggeett tthhee ffoolllloowwiinngg eerrrroorrss wwhhiillsstt ccoommppiilliinngg:: sseelleecctt__bbooxx..hh::112255:: ppaarrssee eerrrroorr bbeeffoorree ``uummooddee__tt'' .. 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 44.. PPrroobblleemmss iinn bbaacckkuupp aanndd rreessttoorree 44..11.. II kkeeeepp oonn ggeettttiinngg tthhee eerrrroorr mmeessssaaggee DDeevviiccee oorr rreessoouurrccee bbuussyy wwhhiillee ttrryyiinngg ttoo ooppeenn bbaacckkuupp ddeevviiccee .. +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. 44..22.. II ggeett aa NNoo ssuucchh ddeevviiccee eerrrroorr wwhheenn ttrryyiinngg ttoo bbaacckkuupp oorr rreessttoorree.. 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". 44..33.. WWhhyy ddooeess ttaappeerr ssaayy RReewwiinnddiinngg ttaappee ffoorr aa ffllaasshh aanndd tthheenn bbeeffoorree iitt ssttaarrttss ttoo rreeaadd,, ttaakkeess aa lloonngg ttiimmee ttoo ssttaarrtt aaccttuuaallllyy rreeaadd.. 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. 44..44.. WWhhyy ddooeess ttaappeerr ssaayy TTaappee ddrriivvee ttyyppee hhaass nnoott bbeeeenn sseett wwhheenn ssttaarrtteedd 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. 55.. PPrroobblleemmss bbaacckkiinngg uupp 55..11.. WWhheenneevveerr II ttrryy ttoo sseelleecctt aa ffiillee oorr ddiirreeccttoorryy ffoorr bbaacckkuupp,, II ggeett tthhee eerrrroorr mmeessssaaggee tttt FFiillee iiss oonn eexxcclluussiioonn lliisstt //.. 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. 55..22.. II aamm mmiidd--wwaayy tthhrroouugghh bbaacckkiinngg uupp iinn tthhee ddiirreeccttoorryy //pprroocc aanndd II ggeett ffuunnnnyy mmeessssaaggeess ssuucchh aass --77%% ddoonnee aanndd tthhee pprrooggrraamm sseeeemmss ttoo hhaanngg?? 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. 55..33.. WWhheenn ddooiinngg bbaacckkuuppss tthhaatt ttaakkee mmoorree tthhaann oonnee ttaappee,, wwhheenn iitt rreeaacchheess tthhee eenndd ooff tthhee ttaappee,, ttaappeerr sseeggmmeennttaattiioonn ffaauullttss.. 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). 55..44.. AAfftteerr ddooiinngg aa bbaacckkuupp oorr mmkkiinnffoo,, ttaappeerr eexxiissttss ssaayyiinngg UUnnaabbllee ttoo ccrreeaattee iinnffoo ffiillee .. 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. 55..55.. TTaappeerr wwoorrkkss ffiinnee iinn iinntteerraaccttiivvee mmooddee,, bbuutt wwhheenn II rruunn iitt ffrroomm aa ccrroonn jjoobb,, II ggeett aa CCaann''tt ssttaarrtt bbaacckkuupp cchhiilldd eerrrroorr mmaaiilleedd ttoo mmee.. 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. 55..66.. TTaappeerr ssaayyss CCaann''tt ssttaarrtt bbaacckkuupp cchhiilldd .. 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. 55..77.. TTaappeerr ssaayyss CCaann''tt ssttaarrtt bbaacckkuupp cchhiilldd wwhheenn rruunnnniinngg uunnddeerr aa ccrroonn jjoobb.. 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. 55..88.. II nnoottiiccee tthhaatt zzffttaappee hhaass aa ccoommpprreesssseedd mmooddee.. SShhoouulldd II uussee ttaappeerr ccoommpprreessssiioonn oorr zzffttaappee ccoommpprreessssiioonn 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. 55..99.. WWhhyy ddooeess ttaappeerr sseegg ffaauulltt aatt tthhee eenndd ooff aa bbaacckkuupp oorr wwhhiillee uuppddaatt-- iinngg tthhee hheeaaddeerr ffiilleess.. 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. 55..1100.. WWhhyy iiss ttaappeerr nnoott ccoommpprreessssiinngg mmyy ffiilleess eevveenn tthhoouugghh II hhaavvee ccoomm-- pprreessssiioonn ttuurrnneedd oonn?? 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. 55..1111.. II aamm uussiinngg ffttaappee vveerrssiioonn 33 aanndd ggeettttiinngg ssoommee ssppuurriioouuss rreessuullttss.. _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). 55..1122.. II aamm rruunnnniinngg ffrroomm aa ccrroonn jjoobb aanndd kkeeeepp oonn ggeettttiinngg mmaaiilleedd eerrrroorrss aabboouutt nnoott bbeeiinngg aabbllee ttoo ssttaarrtt aa bbaacckkuupp cchhiilldd.. IItt wwoorrkkss ffiinnee ffrroomm tthhee ccoommmmaanndd lliinnee.. 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. 55..1133.. II kkeeeepp oonn ggeettttiinngg aann ""aallaarrmm cclloocckk"" eerrrroorr.. There is an incompatibility with taper and some dyanmic C libraries. Compile taper statically, rather than dynamically. 55..1144.. EEvveerryy nnooww aann tthheenn,, ttaappeerr jjuusstt ssttooppss wwhhiillsstt bbaacckkiinngg uupp aanndd rreeqquuiirreess aa kkeeyypprreessss ttoo ccoonnttiinnuuee.. Upgrade to ncurses 4.1 or greater. 55..1155.. TTaappeerr ddooeessnn''tt bbaacckkuupp ccoorrrreeccttllyy aanndd tthhee lloogg ffiillee hhaass lloottss ooff ""WW::WWrriittee CChhiilldd SSeeggmmeennttaattiioonn FFaauulltt"" mmeessssaaggeess.. 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). 66.. PPrroobblleemmss rreessttoorriinngg 66..11.. AAfftteerr ddooiinngg aa rreessttoorree,, tthhee ppeerrmmiissssiioonnss oonn tthhee ffiilleess aarree ccoorrrreecctt,, bbuutt aallll tthhee ffiilleess aarree oowwnneedd bbyy tthhee uusseerr rruunnnniinngg rreessttoorree ((iiee.. oowwnneerrsshhiipp ooff ffiilleess aanndd ddiirreeccttoorriieess iiss nnoott ccoorrrreeccttllyy sseett)).. 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. 66..22.. RReessttoorree ggiivvee mmee aa lloott ooff wwaarrnniinnggss aabboouutt uunnaabbllee ttoo sseett ttiimmeess,, aanndd ppeerrmmiissssiioonnss.. See above 66..33.. II bbaacckkeedd uupp uussiinngg ttaappeerr--55..11..33 oorr eeaarrlliieerr aanndd wwhheenn II ttrryy aanndd rreessttoorree,, nnoott aallll mmyy ffiilleess aarree bbeeiinngg pprriinntteedd oonn tthhee rreessttoorree ssccrreeeenn,, oorr ffuunnnnyy ffiilleennaammeess aappppeeaarr iinn mmyy rreessttoorree ssccrreeeenn.. 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. 66..44.. WWhhyy ddooeess rreessttoorree pprriinntt CCaann''tt ggiivvee wwaarrnniinngg && eerrrroorr ccoouunntt .. 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. 66..55.. HHooww ddoo II rreessttoorree mmyy ffiilleess iinn tthhee ddiirreeccttoorryy ffrroomm wwhhiicchh tthheeyy wweerree oorriiggiinnaallllyy bbaacckkeedd uupp?? 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 / 66..66.. II mmaakkee aa bbaacckkuupp aanndd aallll sseeeemmss wweellll,, bbuutt tthheenn wwhheenn II ttrryy ttoo rreessttoorree oorr vveerriiffyy,, ttaappeerr ssaayyss ``TThhiiss iiss nnoott aa ttaappeerr aarrcchhiivvee'' oorr ttaappeerr ssaayyss ``TThhiiss iiss ttaappee 00.. IInnsseerrtt ttaappee 11'' 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. 66..77.. II mmaakkee aa bbaacckkuupp OOKK bbuutt wwhheenn II ttrryy aanndd rreessttoorree,, ttaappeerr ggiivveess eerrrroorrss iinn tthhee lloogg ffiillee ssuucchh aass ``CCrreeaattiinngg ddeevviiccee xxxxxxxx'' wwhheenn xxxxxx sshhoouulldd bbee aa ffiillee.. 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. 77.. PPrroobblleemmss vveerriiffyyiinngg//rreessttoorriinngg iinnffoo ffiilleess 77..11.. WWhhyy iiss ttaappeerr sslluuggggiisshh wwhheenn sseelleeccttiinngg ffiilleess ttoo rreessttoorree?? 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. 77..22.. WWhhyy ddooeess ttaappeerr ttrryy ttoo aaddvvaannccee ttoo aa nnoonn--eexxiisstteenntt vvoolluummee aanndd tthheenn pprriinntt aann eerrrroorr mmeessssaaggee?? 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. 77..33.. IIff II''mm vveerriiffyyiinngg aanndd II rruunn oouutt ooff tteemmppoorraarryy ddiisskk ssppaaccee,, tthheenn ttaappeerr ssaayyss ssoommee ooff mmyy ffiilleess aarreenn''tt tthhee ssaammee aass oonn tthhee ddiisskk wwhheenn II kknnooww tthheeyy aarree 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. 77..44.. II mmaaddee aa bbaacckkuupp uunnddeerr ffttaappee vveerrssiioonn 33 aanndd aamm ttrryyiinngg ttoo rreessttoorree uunnddeerr zzffttaappee aanndd iitt wwoonn''tt rreessttoorree mmyy ffiilleess.. 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. 88.. SSppeecciiffiicc ttaappee ddrriivveess 88..11.. TThhee SSeeaaggaattee TTRR44 SSCCSSII ddrriivvee 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. 88..22.. SSoommee SSCCSSII ddrriivveess 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 stsetoption scsi2logical 88..33.. AAddaapptteecc aaiiccxxxxxx 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... 99.. MMiisscceellllaanneeoouuss 99..11.. II aamm ggeettttiinngg eerrrroorrss ssuucchh aass sstt00:: EErrrroorr wwiitthh sseennssee ddaattaa:: eexxttrraa ddaattaa nnoott vvaalliidd CCuurrrreenntt eerrrroorr sstt0099::0000 aanndd sseennssee kkeeyy MMeeddiiuumm EErrrroorr aanndd AAddddiittiioonnaall sseennssee iinnddiiccaatteess IIdd ccrrcc oorr eecccc eerrrroorr .. TThhiiss iinnddiiccaatteess tthhaatt yyoouurr ttaappee ddrriivvee rreeqquuiirreess tthhee ssccssii22llooggiiccaall ppaarraammaatteerr sseett.. SSeeee aabboovvee.. 99..22.. II aamm ggeettttiinngg lloottss ooff tteemmppoorraarryy ffiilleess iinn tthhee //ttmmpp ddiirreeccttoorryy aanndd ttaappeerr iiss ddyyiinngg wwiitthh FFIIFFOO eerrrroorrss iinn tthhee lloogg ffiillee.. If you are using libc5, try upgrading to glibc. If that is not possible, uncomment the "-DFIFO_PROBLEMS" define in Makefile.common. 99..33.. II aamm uussiinngg aa SSCCSSII ddrriivvee aanndd ttaappeerr ssaayyss mmyy ddrriivvee ccaannnnoott sseeeekk,, wwhheenn II kknnooww iitt ccaann.. Some SCSI drives require the block size set. If you are having the above problem, try setting the set blocksize preference ON. 99..44.. IInn vveerrssiioonn 66..55,, ttaappeerr iiss nnoott uussiinngg pprreeffeerreenncceess iinn mmyy pprreeffeerreennccee ffiillee 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 99..55.. IInn vveerrssiioonn 66..55,, ttaappeerr ccaann''tt ffiinndd mmyy iinnffoo ffiilleess See above 99..66.. HHooww ddoo II ccoommpprreessss mmyy iinnffoo ffiilleess wwhhiicchh aarree ccuurrrreennttllyy uunnccoomm-- pprreesssseedd?? Just recreate the info files from the main menu 99..77.. WWhhyy ddooeess llooookkiinngg ffoorr rreeccuurrssiivvee lliinnkkss rreessuulltt iinn aa sseegg ffaauulltt?? 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). 99..88.. WWhhyy aarree tthhee iinnffoo ffiilleess ssoo bbiigg?? 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. 99..99.. MMyy bbaacckkuupp sseettss aarree nnoo lloonnggeerr bbeeiinngg rreeccooggnniizzeedd.. 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