]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manual-fr/tapetesting.tex
'Spool Data = Yes' sets 'Spool Attributes = Yes'
[bacula/docs] / docs / manual-fr / tapetesting.tex
index 8d5e964595f39a24fae27afa979ab5a896624163..875ace8f6d3ef960c1c2d9ee8defd3ee3632792d 100644 (file)
@@ -3,7 +3,7 @@
 
 \section*{Testing Your Tape Drive With Bacula}
 \label{_ChapterStart27}
-\index[general]{Testing Your Tape Drive With Bacula }
+\index[general]{Testing Your Tape Drive With Bacula}
 \addcontentsline{toc}{section}{Testing Your Tape Drive With Bacula}
 
 This chapter is concerned with testing and configuring your tape drive to make
@@ -11,8 +11,8 @@ sure that it will work properly with Bacula using the {\bf btape} program.
 \label{summary}
 
 \subsection*{Summary of Steps to Take to Get Your Tape Drive Working}
-\index[general]{Working!Summary of Steps to Take to Get Your Tape Drive }
-\index[general]{Summary of Steps to Take to Get Your Tape Drive Working }
+\index[general]{Working!Summary of Steps to Take to Get Your Tape Drive}
+\index[general]{Summary of Steps to Take to Get Your Tape Drive Working}
 \addcontentsline{toc}{subsection}{Summary of Steps to Take to Get Your Tape
 Drive Working}
 
@@ -51,12 +51,15 @@ one.
 \normalsize
 
 It isn't necessary to run the autochanger part of the  test at this time,  but
-do not go past this point until the basic test succeeds. 
-\item Run the btape {\bf fill} command, preferrably with two volumes.  This
+do not go past this point until the basic test succeeds. If you do have 
+an autochanger, please be sure to read the
+\ilink{Autochanger chapter}{_ChapterStart18} of this manual.
+
+\item Run the btape {\bf fill} command, preferably with two volumes.  This
    can take a long time. If you have an autochanger and it  is configured, Bacula
-   will automatically use it. If you do  not have it configured, you can manual
-issue the appopriate  {\bf mtx} command, or press the autochanger buttons to
-change  the tape when requested to do so. 
+   will automatically use it. If you do  not have it configured, you can manually
+   issue the appopriate  {\bf mtx} command, or press the autochanger buttons to
+   change  the tape when requested to do so. 
 \item FreeBSD users, run the {\bf tapetest} program, and make  sure your
    system is patched if necessary. See below for more  details. 
 \item Run Bacula, and backup a reasonably small directory,  say 60 Megabytes.
@@ -99,9 +102,38 @@ bacula-users} email list, but specify which of the steps you have successfully
 completed. In particular, you may want to look at the 
 \ilink{ Tips for Resolving Problems}{problems1} section below. 
 
+\label{NoTapeInDrive}
+\subsubsection*{Problems When no Tape in Drive}
+\index[general]{Problems When no Tape in Drive}
+\addcontentsline{toc}{subsubsection}{Problems When no Tape in Drive}
+When Bacula was first written the Linux 2.4 kernel permitted opening the
+drive whether or not there was a tape in the drive. Thus the Bacula code is
+based on the concept that if the drive cannot be opened, there is a serious
+problem, and the job is failed.
+
+With version 2.6 of the Linux kernel, if there is no tape in the drive, the
+OS will wait 2 minutes (default) then return a failure, and consequently,
+Bacula version 1.36 and below will fail the job.  This is important to keep
+in mind, because if you use and option such as {\bf Offline on Unmount =
+yes}, there will be a point when there is no tape in the drive, and if
+another job starts or if Bacula asks the operator to mount a tape, when
+Bacula attempts to open the drive (about a 20 minute delay), it will fail
+and Bacula will fail the job.
+
+In version 1.38.x, the Bacula code partially gets around this problem -- at
+least in the initial open of the drive.  However, functions like Polling
+the drive do not work correctly if there is no tape in the drive.
+Providing you do not use {\bf Offline on Unmount = yes}, you should not
+experience job failures as mentioned above.  If you do experience such
+failures, you can also increase the {\bf Maximum Open Wait} time interval,
+which will give you more time to mount the next tape before the job is
+failed.
+
+
+
 \subsubsection*{Specifying the Configuration File}
-\index[general]{File!Specifying the Configuration }
-\index[general]{Specifying the Configuration File }
+\index[general]{File!Specifying the Configuration}
+\index[general]{Specifying the Configuration File}
 \addcontentsline{toc}{subsubsection}{Specifying the Configuration File}
 
 Starting with version 1.27, each of the tape utility programs including the
@@ -109,14 +141,14 @@ Starting with version 1.27, each of the tape utility programs including the
 (actually, the only part of the configuration file that {\bf btape} needs is
 the {\bf Device} resource definitions). This permits {\bf btape} to find the
 configuration parameters for your archive device (generally a tape drive).
-Without those parameters, the testing and utility programs do not no how to
+Without those parameters, the testing and utility programs do not know how to
 properly read and write your drive. By default, they use {\bf bacula-sd.conf}
 in the current directory, but you may specify a different configuration file
 using the {\bf -c} option. 
 
 \subsubsection*{Specifying a Device Name For a Tape}
-\index[general]{Tape!Specifying a Device Name For a }
-\index[general]{Specifying a Device Name For a Tape }
+\index[general]{Tape!Specifying a Device Name For a}
+\index[general]{Specifying a Device Name For a Tape}
 \addcontentsline{toc}{subsubsection}{Specifying a Device Name For a Tape}
 
 {\bf btape} {\bf device-name} where the Volume can be found. In the case of a
@@ -129,8 +161,8 @@ to the Device names (rather than the Archive device names). See below for
 specifying Volume names. 
 
 \subsubsection*{Specifying a Device Name For a File}
-\index[general]{File!Specifying a Device Name For a }
-\index[general]{Specifying a Device Name For a File }
+\index[general]{File!Specifying a Device Name For a}
+\index[general]{Specifying a Device Name For a File}
 \addcontentsline{toc}{subsubsection}{Specifying a Device Name For a File}
 
 If you are attempting to read or write an archive file rather than a tape, the
@@ -143,7 +175,7 @@ to the archive device name, and the filename is equivalent to the volume name.
 
 \subsection*{btape}
 \label{btape1}
-\index[general]{Btape }
+\index[general]{Btape}
 \addcontentsline{toc}{subsection}{btape}
 
 This program permits a number of elementary tape operations via a tty command
@@ -163,7 +195,7 @@ directory. If your configuration file is elsewhere, please use the {\bf -c}
 option to specify where. 
 
 The physical device name or the Device resource name must be specified on the
-command line, and that this same device name must be present in the Storage
+command line, and this same device name must be present in the Storage
 daemon's configuration file read by {\bf btape} 
 
 \footnotesize
@@ -172,6 +204,7 @@ Usage: btape [options] device_name
        -b <file>   specify bootstrap file
        -c <file>   set configuration file to file
        -d <nn>     set debug level to nn
+       -p          proceed inspite of I/O errors
        -s          turn off signals
        -v          be verbose
        -?          print this message.
@@ -179,8 +212,8 @@ Usage: btape [options] device_name
 \normalsize
 
 \subsubsection*{Using btape to Verify your Tape Drive}
-\index[general]{Using btape to Verify your Tape Drive }
-\index[general]{Drive!Using btape to Verify your Tape }
+\index[general]{Using btape to Verify your Tape Drive}
+\index[general]{Drive!Using btape to Verify your Tape}
 \addcontentsline{toc}{subsubsection}{Using btape to Verify your Tape Drive}
 
 An important reason for this program is to ensure that a Storage daemon
@@ -279,8 +312,8 @@ For FreeBSD users, please see the notes below for doing further testing of
 your tape drive. 
 
 \subsubsection*{Linux SCSI Tricks}
-\index[general]{Tricks!Linux SCSI }
-\index[general]{Linux SCSI Tricks }
+\index[general]{Tricks!Linux SCSI}
+\index[general]{Linux SCSI Tricks}
 \addcontentsline{toc}{subsubsection}{Linux SCSI Tricks}
 
 You can find out what SCSI devices you have by doing: 
@@ -305,6 +338,16 @@ Host: scsi2 Channel: 00 Id: 04 Lun: 00
 \end{verbatim}
 \normalsize
 
+The above represents first an autochanger and second a simple
+tape drive. The HP changer (the first entry) uses the same SCSI channel
+for data and for control, so in Bacula, you would use: 
+\footnotesize
+\begin{verbatim}
+Archive Device = /dev/nst0
+Changer Device = /dev/sg0
+\end{verbatim}
+\normalsize
+
 If you want to remove the SDT-10000 device, you can do so as root with: 
 
 \footnotesize
@@ -324,18 +367,44 @@ echo "scsi add-single-device 2 0 4 0">/proc/scsi/scsi
 where the 2 0 4 0 are the Host, Channel, Id, and Lun as seen on the output
 from {\bf cat /proc/scsi/scsi}. Note, the Channel must be specified as
 numeric. 
-\label{problems1}
 
+Below is a slightly more complicated output, which is a single autochanger
+with two drives, and which operates the changer on a different channel
+from from the drives:
+
+\footnotesize
+\begin{verbatim}
+Attached devices:
+Host: scsi0 Channel: 00 Id: 00 Lun: 00
+  Vendor: ATA      Model: WDC WD1600JD-75H Rev: 08.0
+  Type:   Direct-Access                    ANSI SCSI revision: 05
+Host: scsi2 Channel: 00 Id: 04 Lun: 00
+  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 05 Lun: 00
+  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 06 Lun: 00
+  Vendor: OVERLAND Model: LXB              Rev: 0106
+  Type:   Medium Changer                   ANSI SCSI revision: 02
+\end{verbatim}
+\normalsize
+
+The above tape drives are accessed on /dev/nst0 and /dev/nst1, while
+the control channel for those two drives is /dev/sg3.
+
+
+
+\label{problems1}
 \subsection*{Tips for Resolving Problems}
-\index[general]{Problems!Tips for Resolving }
-\index[general]{Tips for Resolving Problems }
+\index[general]{Problems!Tips for Resolving}
+\index[general]{Tips for Resolving Problems}
 \addcontentsline{toc}{subsection}{Tips for Resolving Problems}
 
 \label{CannotRestore}
-
 \subsubsection*{Bacula Saves But Cannot Restore Files}
-\index[general]{Files!Bacula Saves But Cannot Restore }
-\index[general]{Bacula Saves But Cannot Restore Files }
+\index[general]{Files!Bacula Saves But Cannot Restore}
+\index[general]{Bacula Saves But Cannot Restore Files}
 \addcontentsline{toc}{subsubsection}{Bacula Saves But Cannot Restore Files}
 
 If you are getting error messages such as: 
@@ -383,11 +452,32 @@ fails. This directive is available in version 1.35.5  or later (and not yet
 tested).  
 \end{enumerate}
 
-\label{opendevice}
+If you are getting error messages such as:
+\footnotesize
+\begin{verbatim}
+Volume data error at 0:0!
+Block checksum mismatch in block=0 len=32625 calc=345678 blk=123456
+\end{verbatim}
+\normalsize
+
+You are getting tape read errors, and this is most likely due to 
+one of the following things:
+\begin{enumerate}
+\item An old or bad tape.
+\item A dirty drive that needs cleaning (particularly for DDS drives).
+\item A loose SCSI cable.
+\item Old firmware in your drive. Make sure you have the latest firmware
+      loaded.
+\item Computer memory errors.
+\item Over-clocking your CPU.
+\item A bad SCSI card.
+\end{enumerate}
+
 
+\label{opendevice}
 \subsubsection*{Bacula Cannot Open the Device}
-\index[general]{Device!Bacula Cannot Open the }
-\index[general]{Bacula Cannot Open the Device }
+\index[general]{Device!Bacula Cannot Open the}
+\index[general]{Bacula Cannot Open the Device}
 \addcontentsline{toc}{subsubsection}{Bacula Cannot Open the Device}
 
 If you get an error message such as: 
@@ -412,8 +502,8 @@ for this tip.
 \label{IncorrectFiles}
 
 \subsubsection*{Incorrect File Number}
-\index[general]{Number!Incorrect File }
-\index[general]{Incorrect File Number }
+\index[general]{Number!Incorrect File}
+\index[general]{Incorrect File Number}
 \addcontentsline{toc}{subsubsection}{Incorrect File Number}
 
 When Bacula moves to the end of the medium, it normally uses the {\bf
@@ -421,7 +511,7 @@ ioctl(MTEOM)} function. Then Bacula uses the {\bf ioctl(MTIOCGET)} function to
 retrieve the current file position from the {\bf mt\_fileno} field. Some SCSI
 tape drivers will use a fast means of seeking to the end of the medium and in
 doing so, they will not know the current file position and hence return a {\bf
--1}. As a consequence, if you get {\bf ``This is NOT correct!''} in the
+-1}. As a consequence, if you get {\bf "This is NOT correct!"} in the
 positioning tests, this may be the cause. You must correct this condition in
 order for Bacula to work. 
 
@@ -449,9 +539,9 @@ medium, and Bacula will keep  track of the file number itself.
 \subsubsection*{Incorrect Number of Blocks or Positioning Errors during btape
 Testing}
 \index[general]{Testing!Incorrect Number of Blocks or Positioning Errors
-during btape }
+during btape}
 \index[general]{Incorrect Number of Blocks or Positioning Errors during btape
-Testing }
+Testing}
 \addcontentsline{toc}{subsubsection}{Incorrect Number of Blocks or Positioning
 Errors during btape Testing}
 
@@ -506,18 +596,18 @@ excessive. If at all possible set any fixed block size to something like
 below for the details on checking and setting the default drive block size. 
 
 To recover files from tapes written in fixed block mode, see below. 
-\label{TapeModes}
 
+\label{TapeModes}
 \subsubsection*{Ensuring that the Tape Modes Are Properly Set -- {\bf Linux
 Only}}
-\index[general]{Ensuring that the Tape Modes Are Properly Set -- Linux Only }
-\index[general]{Only!Ensuring that the Tape Modes Are Properly Set -- Linux }
+\index[general]{Ensuring that the Tape Modes Are Properly Set -- Linux Only}
+\index[general]{Only!Ensuring that the Tape Modes Are Properly Set -- Linux}
 \addcontentsline{toc}{subsubsection}{Ensuring that the Tape Modes Are Properly
 Set -- Linux Only}
 
 If you have a modern SCSI tape drive and you are having problems with the {\bf
 test} command as noted above, it may be that some program has set one or more
-of the your SCSI driver's options to non-default values. For example, if your
+of your SCSI driver's options to non-default values. For example, if your
 driver is set to work in SysV manner, Bacula will not work correctly because
 it expects BSD behavior. To reset your tape drive to the default values, you
 can try the following, but {\bf ONLY} if you have a SCSI tape drive on a {\bf
@@ -548,7 +638,7 @@ mt -f /dev/nst0 defblksize 0
 \end{verbatim}
 \normalsize
 
-If you would like to know what stoptions you have set before making any of the
+If you would like to know what options you have set before making any of the
 changes noted above, you can now view them on Linux systems, thanks to a tip
 provided by Willem Riede. Do the following: 
 
@@ -581,14 +671,14 @@ Beginning with Bacula version 1.35.8, if Bacula detects that you are running
 in variable block mode, it will attempt to set your drive appropriately. All
 OSes permit setting variable block mode, but some OSes do not permit setting
 the other modes that Bacula needs to function properly. 
-\label{compression}
 
+\label{compression}
 \subsubsection*{Checking and Setting Tape Hardware Compression and Blocking
 Size}
 \index[general]{Checking and Setting Tape Hardware Compression and Blocking
-Size }
+Size}
 \index[general]{Size!Checking and Setting Tape Hardware Compression and
-Blocking }
+Blocking}
 \addcontentsline{toc}{subsubsection}{Checking and Setting Tape Hardware
 Compression and Blocking Size}
 
@@ -606,15 +696,6 @@ mt -f /dev/nst0 defcompression 1
 and of course, if you use a zero instead of the one at the end, you will turn
 it off. 
 
-You may also want to ensure that no prior program has set the default block
-size, as happened to one user, by explicitly turning it off with: 
-
-\footnotesize
-\begin{verbatim}
-mt -f /dev/nst0 defblksize 0
-\end{verbatim}
-\normalsize
-
 If you have built the {\bf mtx} program in the {\bf depkgs} package, you can
 use tapeinfo to get quite a bit of information about your tape drive even if
 it is not an autochanger. This program is called using the SCSI control
@@ -643,7 +724,7 @@ BlockSize: 0
 \normalsize
 
 where the {\bf DataCompEnabled: yes} means that tape hardware compression is
-turned on. You can see it turn on and off (yes|no) by using the {\bf mt}
+turned on. You can turn it on and off (yes|no) by using the {\bf mt}
 commands given above. Also, this output will tell you if the {\bf BlockSize}
 is non-zero and hence set for a particular block size. Bacula is not likely to
 work in such a situation because it will normally attempt to write blocks of
@@ -653,6 +734,21 @@ using the {\bf mt \ -f \ /dev/nst0 \ defblksize \ 0} command as shown above.
 On FreeBSD, this would be something like: {\bf mt \ -f \ /dev/nsa0 \ blocksize
 \ 0}. 
 
+On some operating systems with some tape drives, the amount of data that
+can be written to the tape and whether or not compression is enabled is
+determined by the density usually the {\bf mt \ -f \ /dev/nst0 setdensity xxx} command.
+Often  {\bf mt \ -f \ /dev/nst0 \ status} will print out the current
+density code that is used with the drive.  Most systems, but unfortunately
+not all, set the density to the maximum by default. On some systems, you
+can also get a list of all available density codes with:
+{\bf mt \ -f \ /dev/nst0 \  densities} or a similar {\bf mt} command.
+Note, for DLT and SDLT devices, no-compression versus compression is very 
+often controlled by the density code.  On FreeBSD systems, the compression
+mode is set using {\bf mt \ -f \ /dev/nsa0 \ comp xxx} where xxx is the
+mode you want.  In general, see {\bf man mt}  for the options available on
+your system.
+
+
 If your tape drive requires fixed block sizes (very unusual), you can use the
 following records: 
 
@@ -679,8 +775,8 @@ To recover files from tapes written in fixed block mode, see below.
 \label{FreeBSDTapes}
 
 \subsubsection*{Tape Modes on FreeBSD}
-\index[general]{FreeBSD!Tape Modes on }
-\index[general]{Tape Modes on FreeBSD }
+\index[general]{FreeBSD!Tape Modes on}
+\index[general]{Tape Modes on FreeBSD}
 \addcontentsline{toc}{subsubsection}{Tape Modes on FreeBSD}
 
 On most FreeBSD systems such as 4.9 and most tape drives, Bacula should run
@@ -721,10 +817,10 @@ compatibility of Bacula and your system. A much more optimal Device
 configuration is shown below, but does not work with all tape drives. Please
 test carefully before putting either into production. 
 
-Note, for FreeBSD 4.10-RELEASE, using a Sony TSL11000 L100 DDS4 w/Autochanger
-set to variable block size and DCLZ compression, Brian McDonald reports that
-to get Bacula to append correctly between Bacula executions, the correct
-values to use are: 
+Note, for FreeBSD 4.10-RELEASE, using a Sony TSL11000 L100 DDS4 with an
+autochanger set to variable block size and DCLZ compression, Brian McDonald
+reports that to get Bacula to append correctly between Bacula executions,
+the correct values to use are:
 
 \footnotesize
 \begin{verbatim}
@@ -752,12 +848,44 @@ configuration is the preferred one because it uses one EOF and no backspacing
 at the end of the tape, which works much more efficiently and reliably with
 modern tape drives. 
 
+Finally, here is a Device configuration that Danny Butroyd reports to work
+correctly with the Overland Powerloader tape library using LT0-2 and
+FreeBSD 5.4-Stable:
+
+\footnotesize
+\begin{verbatim}
+# Overland Powerloader LT02 - 17 slots single drive
+Device {
+  Name = Powerloader
+  Media Type = LT0-2
+  Archive Device = /dev/nsa0
+  AutomaticMount = yes;              
+  AlwaysOpen = yes;
+  RemovableMedia = yes;
+  RandomAccess = no;
+  Changer Command = "/usr/local/sbin/mtx-changer %c %o %S %a %d"
+  Changer Device = /dev/pass2
+  AutoChanger = yes
+  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
+
+  # FreeBSD Specific Settings
+  Offline On Unmount = no
+  Hardware End of Medium = no
+  BSF at EOM = yes
+  Backward Space Record = no
+  Fast Forward Space File = no
+  TWO EOF = yes
+}
+\end{verbatim}
+\normalsize
+
+
 \subsubsection*{Determining What Tape Drives and Autochangers You Have on
 FreeBSD}
 \index[general]{FreeBSD!Determining What Tape Drives and Autochangers You Have
-on }
+}
 \index[general]{Determining What Tape Drives and Autochangers You Have on
-FreeBSD }
+FreeBSD}
 \addcontentsline{toc}{subsubsection}{Determining What Tape Drives and
 Autochangers You Have on FreeBSD}
 
@@ -788,15 +916,15 @@ tapeinfo -f /dev/pass2
 \label{onstream}
 
 \subsubsection*{Using the OnStream driver on Linux Systems}
-\index[general]{Using the OnStream driver on Linux Systems }
-\index[general]{Systems!Using the OnStream driver on Linux }
+\index[general]{Using the OnStream driver on Linux Systems}
+\index[general]{Systems!Using the OnStream driver on Linux}
 \addcontentsline{toc}{subsubsection}{Using the OnStream driver on Linux
 Systems}
 
 Bacula version 1.33 (not 1.32x) is now working and ready for testing with the
 OnStream kernel osst driver version 0.9.14 or above. Osst is available from: 
-\elink{http://sourceforge.net/projects/osst/}{http://sourceforge.net/projects/%
-osst/}. 
+\elink{http://sourceforge.net/projects/osst/}
+{http://sourceforge.net/projects/osst/}. 
 
 To make Bacula work you must first load the new driver then, as root, do: 
 
@@ -839,12 +967,23 @@ Device {
 \end{verbatim}
 \normalsize
 
-\label{fill}
+\subsection*{Hardware Compresson on EXB-8900}
+\index[general]{Hardware Compression on EXB-8900}
+\index[general]{EXB-8900!Hardware Compression}
+\addcontentsline{to}{subsection}{Hardware Compression on EXB-8900}
+To active, check, or disable the hardware compression feature
+on an EXB-8900, use the exabyte MammothTool. You can get it here:
+\elink{http://www.exabyte.com/support/online/downloads/index.cfm}
+{http://www.exabyte.com/support/online/downloads/index.cfm}.
+There is a solaris version of this tool. With option -C 0 or 1 you
+can disable or activate compression. Start this tool without any
+options for a small reference.
 
-\subsubsection*{Using btape to Simulate Bacula Filling a Tape}
-\index[general]{Using btape to Simulate Bacula Filling a Tape }
-\index[general]{Tape!Using btape to Simulate Bacula Filling a }
-\addcontentsline{toc}{subsubsection}{Using btape to Simulate Bacula Filling a
+\label{fill}
+\subsubsection*{Using btape to Simulate Filling a Tape}
+\index[general]{Using btape to Simulate Filling a Tape}
+\index[general]{Tape!Using btape to Simulate Filling a}
+\addcontentsline{toc}{subsubsection}{Using btape to Simulate Filling a
 Tape}
 
 Because there are often problems with certain tape drives or systems when end
@@ -855,7 +994,7 @@ tapes to ensure that the data has been written in a way that Bacula can
 recover it. Note, there is also a single tape option as noted below, which you
 should use rather than the two tape test. See below for more details. 
 
-This can be an extremely time consuming process (here is is about 6 hours) to
+This can be an extremely time consuming process (here it is about 6 hours) to
 fill a full tape. Note, that btape writes random data to the tape when it is
 filling it. This has two consequences: 1. it takes a bit longer to generate
 the data, especially on slow CPUs. 2. the total amount of data is
@@ -872,8 +1011,8 @@ Bacula.
 \label{RecoveringFiles}
 
 \subsection*{Recovering Files Written to Tape With Fixed Block Sizes}
-\index[general]{Recovering Files Written to Tape With Fixed Block Sizes }
-\index[general]{Sizes!Recovering Files Written to Tape With Fixed Block }
+\index[general]{Recovering Files Written to Tape With Fixed Block Sizes}
+\index[general]{Sizes!Recovering Files Written to Tape With Fixed Block}
 \addcontentsline{toc}{subsection}{Recovering Files Written to Tape With Fixed
 Block Sizes}
 
@@ -894,11 +1033,11 @@ location is listed in the prompt) using any ASCII editor. Remove all {\bf
 VolBlock} lines in the file. When the file is re-written, answer the question,
 and Bacula will run without using block positioning, and it should recover
 your files. 
-\label{BlockModes}
 
+\label{BlockModes}
 \subsection*{Tape Blocking Modes}
-\index[general]{Modes!Tape Blocking }
-\index[general]{Tape Blocking Modes }
+\index[general]{Modes!Tape Blocking}
+\index[general]{Tape Blocking Modes}
 \addcontentsline{toc}{subsection}{Tape Blocking Modes}
 
 SCSI tapes may either be written in {\bf variable} or {\bf fixed} block sizes.
@@ -910,14 +1049,14 @@ Bacula is configured to write fixed block sizes, it will pad the last block of
 the Job to the correct size. Bacula expects variable tape block size drives to
 behave as follows: Each write to the drive results in a single record being
 written to the tape. Each read returns a single record. If you request less
-byte than are in the record, only those number of bytes will be returned, but
+bytes than are in the record, only those number of bytes will be returned, but
 the entire logical record will have been read (the next read will retrieve the
 next record). Thus data from a single write is always returned in a single
 read, and sequentially written records are returned by sequential reads. 
 
 Bacula expects fixed block size tape drives to behave as follows: If a write
 length is greater than the physical block size of the drive, the write will be
-written as two blocks each of the fixed physical size. This single write may
+written as two blocks each of the fixed physical size. This single write may
 become multiple physical records on the tape. (This is not a good situation).
 According to the documentation, one may never write an amount of data that is
 not the exact multiple of the blocksize (it is not specified if an error
@@ -934,3 +1073,101 @@ that block is split into two or more physical records on the tape. Bacula
 assumes that each write causes a single record to be written, and that it can
 sequentially recover each of the blocks it has written by using the same
 number of sequential reads as it had written. 
+
+\subsection*{Details of Tape Modes}
+\index[general]{Modes!Details}
+\index[general]{Details of Tape Modes}
+\addcontentsline{toc}{subsection}{Details of Tape Modes}
+Rudolf Cejka has provided the following information concerning
+certain tape modes and MTEOM.
+
+\begin{description}
+\item[Tape level]
+  It is always possible to position filemarks or blocks, whereas
+  positioning to the end-of-data is only optional feature, however it is
+  implemented very often.  SCSI specification also talks about optional
+  sequential filemarks, setmarks and sequential setmarks, but these are not
+  implemented so often.  Modern tape drives keep track of file positions in
+  built-in chip (AIT, LTO) or at the beginning of the tape (SDLT), so there
+  is not any speed difference, if end-of-data or filemarks is used (I have
+  heard, that LTO-1 from all 3 manufacturers do not use its chip for file
+  locations, but a tape as in SDLT case, and I'm not sure about LTO-2 and
+  LTO-3 case).  However there is a big difference, that end-of-data ignores
+  file position, whereas filemarks returns the real number of skipped
+  files, so OS can track current file number just in filemarks case.
+
+\item[OS level]
+  Solaris does use just SCSI SPACE Filemarks, it does not support SCSI
+  SPACE End-of-data.  When MTEOM is called, Solaris does use SCSI SPACE
+  Filemarks with count = 1048576 for fast mode, and combination of SCSI
+  SPACE Filemarks with count = 1 with SCSI SPACE Blocks with count = 1 for
+  slow mode, so EOD mark on the tape on some older tape drives is not
+  skipped.  File number is always tracked for MTEOM.
+
+  Linux does support both SCSI SPACE Filemarks and End-of-data: When MTEOM
+  is called in MT_ST_FAST_MTEOM mode, SCSI SPACE Filemarks with count =
+  8388607 is used.  In the other case, SCSI SPACE End-of-data is used.
+  There is no real slow mode like in Solaris - I just expect, that for
+  older tape drives Filemarks may be slower than End-of-data, but not so
+  much as in Solaris slow mode.  File number is tracked for MTEOM just
+  without MT_ST_FAST_MTEOM - when MT_ST_FAST_MTEOM is used, it is not.
+
+  FreeBSD does support both SCSI SPACE Filemarks and End-of-data, but when
+  MTEOD (MTEOM) is called, SCSI SPACE End-of-data is always used.  FreeBSD
+  never use SCSI SPACE Filemarks for MTEOD. File number is never tracked
+  for MTOED.
+
+\item[Bacula level]
+  When {\bf Hardware End of Medium = Yes} is used, MTEOM is called, but it
+  does not mean, that hardware End-of-data must be used.  When Hardware End
+  of Medium = No, if Fast Forward Space File = Yes, MTFSF with count =
+  32767 is used, else Block Read with count = 1 with Forward Space File
+  with count = 1 is used, which is really very slow.
+
+\item [Hardware End of Medium = Yes|No]
+  The name of this option is misleading and is the source of confusion,
+  because it is not the hardware EOM, what is really switched here.
+
+  If I use Yes, OS must not use SCSI SPACE End-of-data, because Bacula
+  expects, that there is tracked file number, which is not supported by
+  SCSI specification.  Instead, the OS have to use SCSI SPACE Filemarks.
+
+  If I use No, an action depends on Fast Forward Space File.
+
+  Considering {\bf Hardware End of Medium = no}
+  and {\bf Fast Forward Space File = no}
+  When I set the two to no, file positioning was very slow
+  on my LTO-3:
+\begin{verbatim}
+  HEOM = no, FFSF = no:  ~ 10 - 100 minutes
+\end{verbatime}
+
+while even with {\bf Hardware End of Medium = no} but
+{\bf Fast Forward Space File = yes}, the time is 10 to
+100 times faster.
+\begin{verbatim}
+  HEOM = no, FFSF = yes: ~ 1 minute
+\end{verbatim}
+
+\end{description}
+
+\subsection*{Autochanger Errors}
+\index[general]{Errors!Autochanger}
+\index[general]{Autochanger Errors}
+\addcontentsline{toc}{subsection}{Autochanger Errors}
+
+If you are getting errors such as:
+
+\footnotesize
+\begin{verbatim}
+3992 Bad autochanger "load slot 1, drive 1": ERR=Child exited with code 1.
+\end{verbatim}
+\normalsize
+
+and you are running your Storage daemon as non-root, then most likely
+you are having permissions problems with the control channel. Running
+as root, set permissions on /dev/sgX so that the userid and group of
+your Storage daemon can access the device. You need to ensure that you
+all access to the proper control device, and if you don't have any
+SCSI disk drives (including SATA drives), you might want to change
+the permissions on /dev/sg*.