]> git.sur5r.net Git - bacula/docs/blob - docs/manual/tapetesting.tex
Updates
[bacula/docs] / docs / manual / tapetesting.tex
1 %%
2 %%
3
4 \chapter{Testing Your Tape Drive With Bacula}
5 \label{TapeTestingChapter}
6 \index[general]{Testing Your Tape Drive With Bacula}
7
8 This chapter is concerned with testing and configuring your tape drive to make
9 sure that it will work properly with Bacula using the {\bf btape} program. 
10 \label{summary}
11
12 \section{Get Your Tape Drive Working}
13
14 In general, you should follow the following steps to get your tape drive to
15 work with Bacula. Start with a tape mounted in your drive. If you have an
16 autochanger, load a tape into the drive. We use {\bf /dev/nst0} as the tape
17 drive name, you will need to adapt it according to your system. 
18
19 Do not proceed to the next item until you have succeeded with the previous
20 one. 
21
22 \begin{enumerate}
23 \item Make sure that Bacula (the Storage daemon) is not running
24   or that you have {\bf unmount}ed the drive you will use 
25   for testing.
26
27 \item Use tar to write to, then read from your drive:  
28
29    \footnotesize
30 \begin{verbatim}
31    mt -f /dev/nst0 rewind
32    tar cvf /dev/nst0 .
33    mt -f /dev/nst0 rewind
34    tar tvf /dev/nst0
35    
36 \end{verbatim}
37 \normalsize
38
39 \item Make sure you have a valid and correct Device resource  corresponding to
40    your drive. For Linux users, generally,  the default one works. For FreeBSD
41    users, there are two  possible Device configurations (see below). 
42
43 \item Run the btape {\bf test} command:  
44
45    \footnotesize
46 \begin{verbatim}
47    ./btape -c bacula-sd.conf /dev/nst0
48    test
49    
50 \end{verbatim}
51 \normalsize
52
53 It isn't necessary to run the autochanger part of the  test at this time,  but
54 do not go past this point until the basic test succeeds. If you do have 
55 an autochanger, please be sure to read the
56 \ilink{Autochanger chapter}{AutochangersChapter} of this manual.
57
58 \item Run the btape {\bf fill} command, preferably with two volumes.  This
59    can take a long time. If you have an autochanger and it  is configured, Bacula
60    will automatically use it. If you do  not have it configured, you can manually
61    issue the appropriate  {\bf mtx} command, or press the autochanger buttons to
62    change  the tape when requested to do so. 
63
64 \item FreeBSD users, if you have a pre-5.0 system run the {\bf tapetest}
65    program, and make sure your system is patched if necessary. The tapetest
66    program can be found in the platform/freebsd directory. The instructions
67    for its use are at the top of the file.
68
69 \item Run Bacula, and backup a reasonably small directory,  say 60 Megabytes.
70    Do three successive backups of this  directory. 
71
72 \item Stop Bacula, then restart it. Do another full backup  of the same
73    directory. Then stop and restart Bacula. 
74
75 \item Do a restore of the directory backed up, by entering the  following
76    restore command, being careful to restore it to  an alternate location:  
77
78 \footnotesize
79 \begin{verbatim}
80    restore select all done
81    yes
82    
83 \end{verbatim}
84 \normalsize
85
86 Do a {\bf diff} on the restored directory to ensure it is identical  to the
87 original directory. If you are going to backup multiple different systems
88 (Linux, Windows, Mac, Solaris, FreeBSD, ...), be sure you test the restore
89 on each system type.
90
91 \item If you have an autochanger, you should now go back to the  btape program
92    and run the autochanger test:  
93
94 \footnotesize
95 \begin{verbatim}
96      ./btape -c bacula-sd.conf /dev/nst0
97      auto
98      
99 \end{verbatim}
100 \normalsize
101
102 Adjust your autochanger as necessary to ensure that it works  correctly. See
103 the Autochanger chapter of this manual  for a complete discussion of testing
104 your autochanger.  
105
106 \item We strongly recommend that you use a dedicated SCSI
107 controller for your tape drives. Scanners are known to induce
108 serious problems with the SCSI bus, causing it to reset. If the
109 SCSI bus is reset while Bacula has the tape drive open, it will
110 most likely be fatal to your tape since the drive will rewind.
111 These kinds of problems show up in the system log. For example,
112 the following was most likely caused by a scanner:
113
114 \footnotesize
115 \begin{verbatim}
116 Feb 14 17:29:55 epohost kernel: (scsi0:A:2:0): No or incomplete CDB sent to device.
117 Feb 14 17:29:55 epohost kernel: scsi0: Issued Channel A Bus Reset. 1 SCBs aborted
118 \end{verbatim}
119 \normalsize
120
121 \end{enumerate}
122
123 If you have reached this point, you stand a good chance of having everything
124 work. If you get into trouble at any point, {\bf carefully} read the
125 documentation given below. If you cannot get past some point, ask the {\bf
126 bacula-users} email list, but specify which of the steps you have successfully
127 completed. In particular, you may want to look at the 
128 \ilink{ Tips for Resolving Problems}{problems1} section below. 
129
130
131 \label{NoTapeInDrive}
132 \subsection{Problems When no Tape in Drive}
133 \index[general]{Problems When no Tape in Drive}
134 When Bacula was first written the Linux 2.4 kernel permitted opening the
135 drive whether or not there was a tape in the drive. Thus the Bacula code is
136 based on the concept that if the drive cannot be opened, there is a serious
137 problem, and the job is failed.
138
139 With version 2.6 of the Linux kernel, if there is no tape in the drive, the
140 OS will wait two minutes (default) and then return a failure, and consequently,
141 Bacula version 1.36 and below will fail the job.  This is important to keep
142 in mind, because if you use an option such as {\bf Offline on Unmount =
143 yes}, there will be a point when there is no tape in the drive, and if
144 another job starts or if Bacula asks the operator to mount a tape, when
145 Bacula attempts to open the drive (about a 20 minute delay), it will fail
146 and Bacula will fail the job.
147
148 In version 1.38.x, the Bacula code partially gets around this problem -- at
149 least in the initial open of the drive.  However, functions like Polling
150 the drive do not work correctly if there is no tape in the drive.
151 Providing you do not use {\bf Offline on Unmount = yes}, you should not
152 experience job failures as mentioned above.  If you do experience such
153 failures, you can also increase the {\bf Maximum Open Wait} time interval,
154 which will give you more time to mount the next tape before the job is
155 failed.
156
157 \subsection{Specifying the Configuration File}
158 \index[general]{File!Specifying the Configuration}
159 \index[general]{Specifying the Configuration File}
160
161 Starting with version 1.27, each of the tape utility programs including the
162 {\bf btape} program requires a valid Storage daemon configuration file
163 (actually, the only part of the configuration file that {\bf btape} needs is
164 the {\bf Device} resource definitions). This permits {\bf btape} to find the
165 configuration parameters for your archive device (generally a tape drive).
166 Without those parameters, the testing and utility programs do not know how to
167 properly read and write your drive. By default, they use {\bf bacula-sd.conf}
168 in the current directory, but you may specify a different configuration file
169 using the {\bf -c} option. 
170
171 \subsection{Specifying a Device Name For a Tape}
172 \index[general]{Tape!Specifying a Device Name For a}
173 \index[general]{Specifying a Device Name For a Tape}
174
175 {\bf btape} {\bf device-name} where the Volume can be found. In the case of a
176 tape, this is the physical device name such as {\bf /dev/nst0} or {\bf
177 /dev/rmt/0ubn} depending on your system that you specify on the Archive Device
178 directive. For the program to work, it must find the identical name in the
179 Device resource of the configuration file. If the name is not found in the
180 list of physical names, the utility program will compare the name you entered
181 to the Device names (rather than the Archive device names). 
182
183 When specifying a tape device, it is preferable that the "non-rewind"
184 variant of the device file name be given.  In addition, on systems such as
185 Sun, which have multiple tape access methods, you must be sure to specify
186 to use Berkeley I/O conventions with the device.  The
187 {\bf b} in the Solaris (Sun) archive specification {\bf /dev/rmt/0mbn} is
188 what is needed in this case.  Bacula does not support SysV tape drive
189 behavior.
190
191 See below for specifying Volume names. 
192
193 \subsection{Specifying a Device Name For a File}
194 \index[general]{File!Specifying a Device Name For a}
195 \index[general]{Specifying a Device Name For a File}
196
197 If you are attempting to read or write an archive file rather than a tape, the
198 {\bf device-name} should be the full path to the archive location including
199 the filename. The filename (last part of the specification) will be stripped
200 and used as the Volume name, and the path (first part before the filename)
201 must have the same entry in the configuration file. So, the path is equivalent
202 to the archive device name, and the filename is equivalent to the volume name.
203
204
205 \section{btape}
206 \label{btape1}
207 \index[general]{Btape}
208
209 This program permits a number of elementary tape operations via a tty command
210 interface. The {\bf test} command, described below, can be very useful for
211 testing tape drive compatibility problems. Aside from initial testing of tape
212 drive compatibility with {\bf Bacula}, {\bf btape} will be mostly used by
213 developers writing new tape drivers. 
214
215 {\bf btape} can be dangerous to use with existing {\bf Bacula} tapes because
216 it will relabel a tape or write on the tape if so requested regardless of
217 whether or not the tape contains valuable data, so please be careful and use
218 it only on blank tapes. 
219
220 To work properly, {\bf btape} needs to read the Storage daemon's configuration
221 file. As a default, it will look for {\bf bacula-sd.conf} in the current
222 directory. If your configuration file is elsewhere, please use the {\bf -c}
223 option to specify where. 
224
225 The physical device name or the Device resource name must be specified on the
226 command line, and this same device name must be present in the Storage
227 daemon's configuration file read by {\bf btape} 
228
229 \footnotesize
230 \begin{verbatim}
231 Usage: btape [options] device_name
232        -b <file>   specify bootstrap file
233        -c <file>   set configuration file to file
234        -d <nn>     set debug level to nn
235        -p          proceed inspite of I/O errors
236        -s          turn off signals
237        -v          be verbose
238        -?          print this message.
239 \end{verbatim}
240 \normalsize
241
242 \subsection{Using btape to Verify your Tape Drive}
243 \index[general]{Using btape to Verify your Tape Drive}
244 \index[general]{Drive!Using btape to Verify your Tape}
245
246 An important reason for this program is to ensure that a Storage daemon
247 configuration file is defined so that Bacula will correctly read and write
248 tapes. 
249
250 It is highly recommended that you run the {\bf test} command before running
251 your first Bacula job to ensure that the parameters you have defined for your
252 storage device (tape drive) will permit {\bf Bacula} to function properly. You
253 only need to mount a blank tape, enter the command, and the output should be
254 reasonably self explanatory. For example: 
255
256 \footnotesize
257 \begin{verbatim}
258 (ensure that Bacula is not running)
259 ./btape -c /usr/bin/bacula/bacula-sd.conf /dev/nst0
260 \end{verbatim}
261 \normalsize
262
263 The output will be: 
264
265 \footnotesize
266 \begin{verbatim}
267 Tape block granularity is 1024 bytes.
268 btape: btape.c:376 Using device: /dev/nst0
269 *
270 \end{verbatim}
271 \normalsize
272
273 Enter the test command: 
274
275 \footnotesize
276 \begin{verbatim}
277 test
278 \end{verbatim}
279 \normalsize
280
281 The output produced should be something similar to the following: I've cut the
282 listing short because it is frequently updated to have new tests. 
283
284 \footnotesize
285 \begin{verbatim}
286 === Append files test ===
287 This test is essential to Bacula.
288 I'm going to write one record  in file 0,
289                    two records in file 1,
290              and three records in file 2
291 btape: btape.c:387 Rewound /dev/nst0
292 btape: btape.c:855 Wrote one record of 64412 bytes.
293 btape: btape.c:857 Wrote block to device.
294 btape: btape.c:410 Wrote EOF to /dev/nst0
295 btape: btape.c:855 Wrote one record of 64412 bytes.
296 btape: btape.c:857 Wrote block to device.
297 btape: btape.c:855 Wrote one record of 64412 bytes.
298 btape: btape.c:857 Wrote block to device.
299 btape: btape.c:410 Wrote EOF to /dev/nst0
300 btape: btape.c:855 Wrote one record of 64412 bytes.
301 btape: btape.c:857 Wrote block to device.
302 btape: btape.c:855 Wrote one record of 64412 bytes.
303 btape: btape.c:857 Wrote block to device.
304 btape: btape.c:855 Wrote one record of 64412 bytes.
305 btape: btape.c:857 Wrote block to device.
306 btape: btape.c:410 Wrote EOF to /dev/nst0
307 btape: btape.c:387 Rewound /dev/nst0
308 btape: btape.c:693 Now moving to end of media.
309 btape: btape.c:427 Moved to end of media
310 We should be in file 3. I am at file 3. This is correct!
311 Now the important part, I am going to attempt to append to the tape.
312 ...
313 === End Append files test ===
314 \end{verbatim}
315 \normalsize
316
317 If you do not successfully complete the above test, please resolve the
318 problem(s) before attempting to use {\bf Bacula}. Depending on your tape
319 drive, the test may recommend that you add certain records to your
320 configuration. We strongly recommend that you do so and then re-run the above
321 test to insure it works the first time. 
322
323 Some of the suggestions it provides for resolving the problems may or may not
324 be useful. If at all possible avoid using fixed blocking. If the test suddenly
325 starts to print a long series of: 
326
327 \footnotesize
328 \begin{verbatim}
329 Got EOF on tape.
330 Got EOF on tape.
331 ...
332 \end{verbatim}
333 \normalsize
334
335 then almost certainly, you are running your drive in fixed block mode rather
336 than variable block mode. See below for more help of resolving fix
337 versus variable block problems.
338
339 It is also possible that you have your drive
340 set in SysV tape drive mode. The drive must use BSD tape conventions.
341 See the section above on setting your {\bf Archive device} correctly.
342
343 For FreeBSD users, please see the notes below for doing further testing of
344 your tape drive. 
345
346 \subsection{Linux SCSI Tricks}
347 \index[general]{Tricks!Linux SCSI}
348 \index[general]{Linux SCSI Tricks}
349
350 You can find out what SCSI devices you have by doing: 
351
352 \footnotesize
353 \begin{verbatim}
354 cat /proc/scsi/scsi
355 \end{verbatim}
356 \normalsize
357
358 For example, I get the following: 
359
360 \footnotesize
361 \begin{verbatim}
362 Attached devices:
363 Host: scsi2 Channel: 00 Id: 01 Lun: 00
364   Vendor: HP       Model: C5713A           Rev: H107
365   Type:   Sequential-Access                ANSI SCSI revision: 02
366 Host: scsi2 Channel: 00 Id: 04 Lun: 00
367   Vendor: SONY     Model: SDT-10000        Rev: 0110
368   Type:   Sequential-Access                ANSI SCSI revision: 02
369 \end{verbatim}
370 \normalsize
371
372 The above represents first an autochanger and second a simple
373 tape drive. The HP changer (the first entry) uses the same SCSI channel
374 for data and for control, so in Bacula, you would use: 
375 \footnotesize
376 \begin{verbatim}
377 Archive Device = /dev/nst0
378 Changer Device = /dev/sg0
379 \end{verbatim}
380 \normalsize
381
382 If you want to remove the SDT-10000 device, you can do so as root with: 
383
384 \footnotesize
385 \begin{verbatim}
386 echo "scsi remove-single-device 2 0 4 0">/proc/scsi/scsi
387 \end{verbatim}
388 \normalsize
389
390 and you can put add it back with: 
391
392 \footnotesize
393 \begin{verbatim}
394 echo "scsi add-single-device 2 0 4 0">/proc/scsi/scsi
395 \end{verbatim}
396 \normalsize
397
398 where the 2 0 4 0 are the Host, Channel, Id, and Lun as seen on the output
399 from {\bf cat /proc/scsi/scsi}. Note, the Channel must be specified as
400 numeric. 
401
402 Below is a slightly more complicated output, which is a single autochanger
403 with two drives, and which operates the changer on a different channel
404 from from the drives:
405
406 \footnotesize
407 \begin{verbatim}
408 Attached devices:
409 Host: scsi0 Channel: 00 Id: 00 Lun: 00
410   Vendor: ATA      Model: WDC WD1600JD-75H Rev: 08.0
411   Type:   Direct-Access                    ANSI SCSI revision: 05
412 Host: scsi2 Channel: 00 Id: 04 Lun: 00
413   Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
414   Type:   Sequential-Access                ANSI SCSI revision: 03
415 Host: scsi2 Channel: 00 Id: 05 Lun: 00
416   Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
417   Type:   Sequential-Access                ANSI SCSI revision: 03
418 Host: scsi2 Channel: 00 Id: 06 Lun: 00
419   Vendor: OVERLAND Model: LXB              Rev: 0106
420   Type:   Medium Changer                   ANSI SCSI revision: 02
421 \end{verbatim}
422 \normalsize
423
424 The above tape drives are accessed on /dev/nst0 and /dev/nst1, while
425 the control channel for those two drives is /dev/sg3.
426
427
428
429 \label{problems1}
430 \section{Tips for Resolving Problems}
431 \index[general]{Problems!Tips for Resolving}
432 \index[general]{Tips for Resolving Problems}
433
434 \label{CannotRestore}
435 \subsection{Bacula Saves But Cannot Restore Files}
436 \index[general]{Files!Bacula Saves But Cannot Restore}
437 \index[general]{Bacula Saves But Cannot Restore Files}
438
439 If you are getting error messages such as: 
440
441 \footnotesize
442 \begin{verbatim}
443 Volume data error at 0:1! Wanted block-id: "BB02", got "". Buffer discarded
444 \end{verbatim}
445 \normalsize
446
447 It is very likely that Bacula has tried to do block positioning and ended up
448 at an invalid block. This can happen if your tape drive is in fixed block mode
449 while Bacula's default is variable blocks. Note that in such cases, Bacula is
450 perfectly able to write to your Volumes (tapes), but cannot position to read
451 them. 
452
453 There are two possible solutions. 
454
455 \begin{enumerate}
456 \item The first and  best is to always ensure that your drive is in  variable
457    block mode. Note, it can switch back to  fixed block mode on a reboot or if
458    another program  uses the drive. So on such systems you  need to modify the
459    Bacula startup files  to explicitly set: 
460
461 \footnotesize
462 \begin{verbatim}
463 mt -f /dev/nst0 defblksize 0
464 \end{verbatim}
465 \normalsize
466
467 or whatever is appropriate on your system. Note, if you are running a Linux
468 system, and the above command does not work, it is most likely because you
469 have not loaded the appropriate {\bf mt} package, which is often called
470 {\bf mt\_st}, but may differ according to your distribution.
471
472 \item The second possibility, especially, if Bacula wrote  while the drive was
473    in fixed block mode, is to turn  off block positioning in Bacula. This is done
474    by  adding: 
475
476 \footnotesize
477 \begin{verbatim}
478 Block Positioning = no
479 \end{verbatim}
480 \normalsize
481
482 to the Device resource. This is not the recommended  procedure because it can
483 enormously slow down  recovery of files, but it may help where all else 
484 fails. This directive is available in version 1.35.5  or later (and not yet
485 tested).  
486 \end{enumerate}
487
488 If you are getting error messages such as:
489 \footnotesize
490 \begin{verbatim}
491 Volume data error at 0:0!
492 Block checksum mismatch in block=0 len=32625 calc=345678 blk=123456
493 \end{verbatim}
494 \normalsize
495
496 You are getting tape read errors, and this is most likely due to 
497 one of the following things:
498 \begin{enumerate}
499 \item An old or bad tape.
500 \item A dirty drive that needs cleaning (particularly for DDS drives).
501 \item A loose SCSI cable.
502 \item Old firmware in your drive. Make sure you have the latest firmware
503       loaded.
504 \item Computer memory errors.
505 \item Over-clocking your CPU.
506 \item A bad SCSI card.
507 \end{enumerate}
508
509
510 \label{opendevice}
511 \subsection{Bacula Cannot Open the Device}
512 \index[general]{Device!Bacula Cannot Open the}
513 \index[general]{Bacula Cannot Open the Device}
514
515 If you get an error message such as: 
516
517 \footnotesize
518 \begin{verbatim}
519 dev open failed: dev.c:265 stored: unable to open
520 device /dev/nst0:> ERR=No such device or address
521 \end{verbatim}
522 \normalsize
523
524 the first time you run a job, it is most likely due to the fact that you
525 specified the incorrect device name on your {\bf Archive Device}. 
526
527 If Bacula works fine with your drive, then all off a sudden you get error
528 messages similar to the one shown above, it is quite possible that your driver
529 module is being removed because the kernel deems it idle. This is done via
530 {\bf crontab} with the use of {\bf rmmod -a}. To fix the problem, you can
531 remove this entry from {\bf crontab}, or you can manually {\bf modprob} your
532 driver module (or add it to the local startup script). Thanks to Alan Brown
533 for this tip. 
534 \label{IncorrectFiles}
535
536 \subsection{Incorrect File Number}
537 \index[general]{Number!Incorrect File}
538 \index[general]{Incorrect File Number}
539
540 When Bacula moves to the end of the medium, it normally uses the {\bf
541 ioctl(MTEOM)} function. Then Bacula uses the {\bf ioctl(MTIOCGET)} function to
542 retrieve the current file position from the {\bf mt\_fileno} field. Some SCSI
543 tape drivers will use a fast means of seeking to the end of the medium and in
544 doing so, they will not know the current file position and hence return a {\bf
545 -1}. As a consequence, if you get {\bf "This is NOT correct!"} in the
546 positioning tests, this may be the cause. You must correct this condition in
547 order for Bacula to work. 
548
549 There are two possible solutions to the above problem of incorrect file
550 number: 
551
552 \begin{itemize}
553 \item Figure out how to configure your SCSI driver to  keep track of the file
554    position during the MTEOM  request. This is the preferred solution.  
555 \item Modify the {\bf Device} resource of your {\bf bacula-sd.conf} file  to
556    include:  
557
558 \footnotesize
559 \begin{verbatim}
560 Hardware End of File = no
561 \end{verbatim}
562 \normalsize
563
564 This will cause Bacula to use the MTFSF request to  seek to the end of the
565 medium, and Bacula will keep  track of the file number itself. 
566 \end{itemize}
567
568 \label{IncorrectBlocks}
569 \subsection{Incorrect Number of Blocks or Positioning Errors}
570 \index[general]{Testing!Incorrect Number of Blocks or Positioning Errors}
571 \index[general]{Incorrect Number of Blocks or Positioning Errors}
572
573 {\bf Bacula's} preferred method of working with tape drives (sequential
574 devices) is to run in variable block mode, and this is what is set by default.
575 You should first ensure that your tape drive is set for variable block mode
576 (see below). 
577
578 If your tape drive is in fixed block mode and you have told Bacula to use
579 different fixed block sizes or variable block sizes (default), you will get
580 errors when Bacula attempts to forward space to the correct block (the kernel
581 driver's idea of tape blocks will not correspond to Bacula's). 
582
583 All modern tape drives support variable tape blocks, but some older drives (in
584 particular the QIC drives) as well as the ATAPI ide-scsi driver run only in
585 fixed block mode. The Travan tape drives also apparently must run in fixed
586 block mode (to be confirmed). 
587
588 Even in variable block mode, with the exception of the first record on the
589 second or subsequent volume of a multi-volume backup, Bacula will write blocks
590 of a fixed size. However, in reading a tape, Bacula will assume that for each
591 read request, exactly one block from the tape will be transferred. This the
592 most common way that tape drives work and is well supported by {\bf Bacula}. 
593
594 Drives that run in fixed block mode can cause serious problems for Bacula if
595 the drive's block size does not correspond exactly to {\bf Bacula's} block
596 size. In fixed block size mode, drivers may transmit a partial block or
597 multiple blocks for a single read request. From {\bf Bacula's} point of view,
598 this destroys the concept of tape blocks. It is much better to run in variable
599 block mode, and almost all modern drives (the OnStream is an exception) run in
600 variable block mode. In order for Bacula to run in fixed block mode, you must
601 include the following records in the Storage daemon's Device resource
602 definition: 
603
604 \footnotesize
605 \begin{verbatim}
606 Minimum Block Size = nnn
607 Maximum Block Size = nnn
608 \end{verbatim}
609 \normalsize
610
611 where {\bf nnn} must be the same for both records and must be identical to the
612 driver's fixed block size. 
613
614 We recommend that you avoid this configuration if at all possible by using
615 variable block sizes. 
616
617 If you must run with fixed size blocks, make sure they are not 512 bytes. This
618 is too small and the overhead that Bacula has with each record will become
619 excessive. If at all possible set any fixed block size to something like
620 64,512 bytes or possibly 32,768 if 64,512 is too large for your drive. See
621 below for the details on checking and setting the default drive block size. 
622
623 To recover files from tapes written in fixed block mode, see below. 
624
625 \label{TapeModes}
626 \subsection{Ensuring that the Tape Modes Are Properly Set -- {\bf Linux
627 Only}}
628 \index[general]{Ensuring that the Tape Modes Are Properly Set -- Linux Only}
629
630 If you have a modern SCSI tape drive and you are having problems with the {\bf
631 test} command as noted above, it may be that some program has set one or more
632 of your SCSI driver's options to non-default values. For example, if your
633 driver is set to work in SysV manner, Bacula will not work correctly because
634 it expects BSD behavior. To reset your tape drive to the default values, you
635 can try the following, but {\bf ONLY} if you have a SCSI tape drive on a {\bf
636 Linux} system: 
637
638 \footnotesize
639 \begin{verbatim}
640 become super user
641 mt -f /dev/nst0 rewind
642 mt -f /dev/nst0 stoptions buffer-writes async-writes read-ahead
643 \end{verbatim}
644 \normalsize
645
646 The above commands will clear all options and then set those specified. None
647 of the specified options are required by Bacula, but a number of other options
648 such as SysV behavior must not be set. Bacula does not support SysV tape
649 behavior. On systems other than Linux, you will need to consult your {\bf mt}
650 man pages or documentation to figure out how to do the same thing. This should
651 not really be necessary though -- for example, on both Linux and Solaris
652 systems, the default tape driver options are compatible with Bacula. 
653 On Solaris systems, you must take care to specify the correct device
654 name on the {\bf Archive device} directive. See above for more details.
655
656 You may also want to ensure that no prior program has set the default block
657 size, as happened to one user, by explicitly turning it off with: 
658
659 \footnotesize
660 \begin{verbatim}
661 mt -f /dev/nst0 defblksize 0
662 \end{verbatim}
663 \normalsize
664
665 If you are running a Linux
666 system, and the above command does not work, it is most likely because you
667 have not loaded the appropriate {\bf mt} package, which is often called
668 {\bf mt\_st}, but may differ according to your distribution.
669
670 If you would like to know what options you have set before making any of the
671 changes noted above, you can now view them on Linux systems, thanks to a tip
672 provided by Willem Riede. Do the following: 
673
674 \footnotesize
675 \begin{verbatim}
676 become super user
677 mt -f /dev/nst0 stsetoptions 0
678 grep st0 /var/log/messages
679 \end{verbatim}
680 \normalsize
681
682 and you will get output that looks something like the following: 
683
684 \footnotesize
685 \begin{verbatim}
686 kernel: st0: Mode 0 options: buffer writes: 1, async writes: 1, read ahead: 1
687 kernel: st0:    can bsr: 0, two FMs: 0, fast mteom: 0, auto lock: 0,
688 kernel: st0:    defs for wr: 0, no block limits: 0, partitions: 0, s2 log: 0
689 kernel: st0:    sysv: 0 nowait: 0
690 \end{verbatim}
691 \normalsize
692
693 Note, I have chopped off the beginning of the line with the date and machine
694 name for presentation purposes. 
695
696 Some people find that the above settings only last until the next reboot, so
697 please check this otherwise you may have unexpected problems. 
698
699 Beginning with Bacula version 1.35.8, if Bacula detects that you are running
700 in variable block mode, it will attempt to set your drive appropriately. All
701 OSes permit setting variable block mode, but some OSes do not permit setting
702 the other modes that Bacula needs to function properly. 
703
704 \label{compression}
705 \subsection{Tape Hardware Compression and Blocking Size}
706 \index[general]{Tape Hardware Compression and Blocking Size}
707 \index[general]{Size!Tape Hardware Compression and Blocking Size}
708
709 As far as I can tell, there is no way with the {\bf mt} program to check if
710 your tape hardware compression is turned on or off. You can, however, turn it
711 on by using (on Linux): 
712
713 \footnotesize
714 \begin{verbatim}
715 become super user
716 mt -f /dev/nst0 defcompression 1
717 \end{verbatim}
718 \normalsize
719
720 and of course, if you use a zero instead of the one at the end, you will turn
721 it off. 
722
723 If you have built the {\bf mtx} program in the {\bf depkgs} package, you can
724 use tapeinfo to get quite a bit of information about your tape drive even if
725 it is not an autochanger. This program is called using the SCSI control
726 device. On Linux for tape drive /dev/nst0, this is usually /dev/sg0, while on
727 FreeBSD for /dev/nsa0, the control device is often /dev/pass2. For example on
728 my DDS-4 drive (/dev/nst0), I get the following: 
729
730 \footnotesize
731 \begin{verbatim}
732 tapeinfo -f /dev/sg0
733 Product Type: Tape Drive
734 Vendor ID: 'HP      '
735 Product ID: 'C5713A          '
736 Revision: 'H107'
737 Attached Changer: No
738 MinBlock:1
739 MaxBlock:16777215
740 SCSI ID: 5
741 SCSI LUN: 0
742 Ready: yes
743 BufferedMode: yes
744 Medium Type: Not Loaded
745 Density Code: 0x26
746 BlockSize: 0             
747 \end{verbatim}
748 \normalsize
749
750 where the {\bf DataCompEnabled: yes} means that tape hardware compression is
751 turned on. You can turn it on and off (yes|no) by using the {\bf mt}
752 commands given above. Also, this output will tell you if the {\bf BlockSize}
753 is non-zero and hence set for a particular block size. Bacula is not likely to
754 work in such a situation because it will normally attempt to write blocks of
755 64,512 bytes, except the last block of the job which will generally be
756 shorter. The first thing to try is setting the default block size to zero
757 using the {\bf mt -f /dev/nst0 defblksize 0} command as shown above.
758 On FreeBSD, this would be something like: {\bf mt -f /dev/nsa0 blocksize 0}. 
759
760 On some operating systems with some tape drives, the amount of data that
761 can be written to the tape and whether or not compression is enabled is
762 determined by the density usually the {\bf mt -f /dev/nst0 setdensity xxx} command.
763 Often  {\bf mt -f /dev/nst0 status} will print out the current
764 density code that is used with the drive.  Most systems, but unfortunately
765 not all, set the density to the maximum by default. On some systems, you
766 can also get a list of all available density codes with:
767 {\bf mt -f /dev/nst0 densities} or a similar {\bf mt} command.
768 Note, for DLT and SDLT devices, no-compression versus compression is very 
769 often controlled by the density code.  On FreeBSD systems, the compression
770 mode is set using {\bf mt -f /dev/nsa0 comp xxx} where xxx is the
771 mode you want.  In general, see {\bf man mt}  for the options available on
772 your system.
773
774 Note, some of the above {\bf mt} commands may not be persistent depending
775 on your system configuration. That is they may be reset if a program  
776 other than Bacula uses the drive or, as is frequently the case, on reboot
777 of your system.
778                    
779 If your tape drive requires fixed block sizes (very unusual), you can use the
780 following records: 
781
782 \footnotesize
783 \begin{verbatim}
784 Minimum Block Size = nnn
785 Maximum Block Size = nnn
786 \end{verbatim}
787 \normalsize
788
789 in your Storage daemon's Device resource to force Bacula to write fixed size
790 blocks (where you sent nnn to be the same for both of the above records). This
791 should be done only if your drive does not support variable block sizes, or
792 you have some other strong reasons for using fixed block sizes. As mentioned
793 above, a small fixed block size of 512 or 1024 bytes will be very inefficient.
794 Try to set any fixed block size to something like 64,512 bytes or larger if
795 your drive will support it. 
796
797 Also, note that the {\bf Medium Type} field of the output of {\bf tapeinfo}
798 reports {\bf Not Loaded}, which is not correct. As a consequence, you should
799 ignore that field as well as the {\bf Attached Changer} field. 
800
801 To recover files from tapes written in fixed block mode, see below. 
802 \label{FreeBSDTapes}
803
804 \subsection{Tape Modes on FreeBSD}
805 \index[general]{FreeBSD!Tape Modes on}
806 \index[general]{Tape Modes on FreeBSD}
807
808 On most FreeBSD systems such as 4.9 and most tape drives, Bacula should run
809 with: 
810
811 \footnotesize
812 \begin{verbatim}
813 mt  -f  /dev/nsa0  seteotmodel  2
814 mt  -f  /dev/nsa0  blocksize   0
815 mt  -f  /dev/nsa0  comp  enable
816 \end{verbatim}
817 \normalsize
818
819 You might want to put those commands in a startup script to make sure your
820 tape driver is properly initialized before running Bacula, because
821 depending on your system configuration, these modes may be reset if a      
822 program other than Bacula uses the drive or when your system is rebooted.
823
824 Then according to what the {\bf btape test} command returns, you will probably
825 need to set the following (see below for an alternative): 
826
827 \footnotesize
828 \begin{verbatim}
829   Hardware End of Medium = no
830   BSF at EOM = yes
831   Backward Space Record = no
832   Backward Space File = no
833   Fast Forward Space File = no
834   TWO EOF = yes
835 \end{verbatim}
836 \normalsize
837
838 Then be sure to run some append tests with Bacula where you start and stop
839 Bacula between appending to the tape, or use {\bf btape} version 1.35.1 or
840 greater, which includes simulation of stopping/restarting Bacula. 
841
842 Please see the file {\bf platforms/freebsd/pthreads-fix.txt} in the main
843 Bacula directory concerning {\bf important} information concerning
844 compatibility of Bacula and your system. A much more optimal Device
845 configuration is shown below, but does not work with all tape drives. Please
846 test carefully before putting either into production. 
847
848 Note, for FreeBSD 4.10-RELEASE, using a Sony TSL11000 L100 DDS4 with an
849 autochanger set to variable block size and DCLZ compression, Brian McDonald
850 reports that to get Bacula to append correctly between Bacula executions,
851 the correct values to use are:
852
853 \footnotesize
854 \begin{verbatim}
855 mt  -f  /dev/nsa0  seteotmodel  1
856 mt  -f  /dev/nsa0  blocksize  0
857 mt  -f /dev/nsa0  comp  enable
858 \end{verbatim}
859 \normalsize
860
861 and 
862
863 \footnotesize
864 \begin{verbatim}
865   Hardware End of Medium = no
866   BSF at EOM = no
867   Backward Space Record = no
868   Backward Space File = no
869   Fast Forward Space File = yes
870   TWO EOF = no
871 \end{verbatim}
872 \normalsize
873
874 This has been confirmed by several other people using different hardware. This
875 configuration is the preferred one because it uses one EOF and no backspacing
876 at the end of the tape, which works much more efficiently and reliably with
877 modern tape drives. 
878
879 Finally, here is a Device configuration that Danny Butroyd reports to work
880 correctly with the Overland Powerloader tape library using LT0-2 and
881 FreeBSD 5.4-Stable:
882
883 \footnotesize
884 \begin{verbatim}
885 # Overland Powerloader LT02 - 17 slots single drive
886 Device {
887   Name = Powerloader
888   Media Type = LT0-2
889   Archive Device = /dev/nsa0
890   AutomaticMount = yes;              
891   AlwaysOpen = yes;
892   RemovableMedia = yes;
893   RandomAccess = no;
894   Changer Command = "/usr/local/sbin/mtx-changer %c %o %S %a %d"
895   Changer Device = /dev/pass2
896   AutoChanger = yes
897   Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
898
899   # FreeBSD Specific Settings
900   Offline On Unmount = no
901   Hardware End of Medium = no
902   BSF at EOM = yes
903   Backward Space Record = no
904   Fast Forward Space File = no
905   TWO EOF = yes
906 }
907
908 The following Device resource works fine with Dell PowerVault 110T and
909 120T devices on both FreeBSD 5.3 and on NetBSD 3.0.  It also works
910 with Sony AIT-2 drives on FreeBSD.
911 \footnotesize
912 \begin{verbatim}
913 Device {
914   ...
915   # FreeBSD/NetBSD Specific Settings
916   Hardware End of Medium = no
917   BSF at EOM = yes
918   Backward Space Record = no
919   Fast Forward Space File = yes
920   TWO EOF = yes
921 }
922 \end{verbatim}
923 \normalsize
924
925 On FreeBSD version 6.0, it is reported that you can even set
926 Backward Space Record = yes.
927
928
929
930 \subsection{Finding your Tape Drives and Autochangers on FreeBSD}
931 \index[general]{FreeBSD!Finding Tape Drives and Autochangers}
932 \index[general]{Finding Tape Drives and Autochangers on FreeBSD}
933
934 On FreeBSD, you can do a {\bf camcontrol devlist} as root to determine what
935 drives and autochangers you have. For example, 
936
937 \footnotesize
938 \begin{verbatim}
939 undef# camcontrol devlist
940     at scbus0 target 2 lun 0 (pass0,sa0)
941     at scbus0 target 4 lun 0 (pass1,sa1)
942     at scbus0 target 4 lun 1 (pass2)
943 \end{verbatim}
944 \normalsize
945
946 from the above, you can determine that there is a tape drive on {\bf /dev/sa0}
947 and another on {\bf /dev/sa1} in addition since there is a second line for the
948 drive on {\bf /dev/sa1}, you know can assume that it is the control device for
949 the autochanger (i.e. {\bf /dev/pass2}). It is also the control device name to
950 use when invoking the tapeinfo program. E.g. 
951
952 \footnotesize
953 \begin{verbatim}
954 tapeinfo -f /dev/pass2
955 \end{verbatim}
956 \normalsize
957
958 \label{onstream}
959
960 \subsection{Using the OnStream driver on Linux Systems}
961 \index[general]{Using the OnStream driver on Linux Systems}
962 \index[general]{Systems!Using the OnStream driver on Linux}
963
964 Bacula version 1.33 (not 1.32x) is now working and ready for testing with the
965 OnStream kernel osst driver version 0.9.14 or above. Osst is available from: 
966 \elink{http://sourceforge.net/projects/osst/}
967 {http://sourceforge.net/projects/osst/}. 
968
969 To make Bacula work you must first load the new driver then, as root, do: 
970
971 \footnotesize
972 \begin{verbatim}
973   mt -f /dev/nosst0 defblksize 32768
974 \end{verbatim}
975 \normalsize
976
977 Also you must add the following to your Device resource in your Storage
978 daemon's conf file: 
979
980 \footnotesize
981 \begin{verbatim}
982  Minimum Block Size = 32768
983  Maximum Block Size = 32768
984 \end{verbatim}
985 \normalsize
986
987 Here is a Device specification provided by Michel Meyers that is known to
988 work: 
989
990 \footnotesize
991 \begin{verbatim}
992 Device {
993   Name = "Onstream DI-30"
994   Media Type = "ADR-30"
995   Archive Device = /dev/nosst0
996   Minimum Block Size = 32768
997   Maximum Block Size = 32768
998   Hardware End of Medium = yes
999   BSF at EOM = no
1000   Backward Space File = yes
1001   Fast Forward Space File = yes
1002   Two EOF = no
1003   AutomaticMount = yes
1004   AlwaysOpen = yes
1005   Removable Media = yes
1006 }
1007 \end{verbatim}
1008 \normalsize
1009
1010 \section{Hardware Compression on EXB-8900}
1011 \index[general]{Hardware Compression on EXB-8900}
1012 \index[general]{EXB-8900!Hardware Compression}
1013
1014 To active, check, or disable the hardware compression feature
1015 on an EXB-8900, use the exabyte MammothTool. You can get it here:
1016 \elink{http://www.exabyte.com/support/online/downloads/index.cfm}
1017 {http://www.exabyte.com/support/online/downloads/index.cfm}.
1018 There is a Solaris version of this tool. With option -C 0 or 1 you
1019 can disable or activate compression. Start this tool without any
1020 options for a small reference.
1021
1022 \label{fill}
1023 \subsection{Using btape to Simulate Filling a Tape}
1024 \index[general]{Using btape to Simulate Filling a Tape}
1025 \index[general]{Tape!Using btape to Simulate Filling}
1026
1027 Because there are often problems with certain tape drives or systems when end
1028 of tape conditions occur, {\bf btape} has a special command {\bf fill} that
1029 causes it to write random data to a tape until the tape fills. It then writes
1030 at least one more Bacula block to a second tape. Finally, it reads back both
1031 tapes to ensure that the data has been written in a way that Bacula can
1032 recover it. Note, there is also a single tape option as noted below, which you
1033 should use rather than the two tape test. See below for more details. 
1034
1035 This can be an extremely time consuming process (here it is about 6 hours) to
1036 fill a full tape. Note, that btape writes random data to the tape when it is
1037 filling it. This has two consequences: 1. it takes a bit longer to generate
1038 the data, especially on slow CPUs. 2. the total amount of data is
1039 approximately the real physical capacity of your tape, regardless of whether
1040 or not the tape drive compression is on or off. This is because random data
1041 does not compress very much. 
1042
1043 To begin this test, you enter the {\bf fill} command and follow the
1044 instructions. There are two options: the simple single tape option and the
1045 multiple tape option. Please use only the simple single tape option because
1046 the multiple tape option still doesn't work totally correctly. If the single
1047 tape option does not succeed, you should correct the problem before using
1048 Bacula. 
1049 \label{RecoveringFiles}
1050
1051 \section{Recovering Files Written With Fixed Block Sizes}
1052 \index[general]{Recovering Files Written With Fixed Block Sizes}
1053
1054 If you have been previously running your tape drive in fixed block mode
1055 (default 512) and Bacula with variable blocks (default), then in version
1056 1.32f-x and 1.34 and above, Bacula will fail to recover files because it does
1057 block spacing, and because the block sizes don't agree between your tape drive
1058 and Bacula it will not work. 
1059
1060 The long term solution is to run your drive in variable block mode as
1061 described above. However, if you have written tapes using fixed block sizes,
1062 this can be a bit of a pain. The solution to the problem is: while you are
1063 doing a restore command using a tape written in fixed block size, ensure that
1064 your drive is set to the fixed block size used while the tape was written.
1065 Then when doing the {\bf restore} command in the Console program, do not
1066 answer the prompt {\bf yes/mod/no}. Instead, edit the bootstrap file (the
1067 location is listed in the prompt) using any ASCII editor. Remove all {\bf
1068 VolBlock} lines in the file. When the file is re-written, answer the question,
1069 and Bacula will run without using block positioning, and it should recover
1070 your files. 
1071
1072 \label{BlockModes}
1073 \section{Tape Blocking Modes}
1074 \index[general]{Modes!Tape Blocking}
1075 \index[general]{Tape Blocking Modes}
1076
1077 SCSI tapes may either be written in {\bf variable} or {\bf fixed} block sizes.
1078 Newer drives support both modes, but some drives such as the QIC devices
1079 always use fixed block sizes. Bacula attempts to fill and write complete
1080 blocks (default 65K), so that in normal mode (variable block size), Bacula
1081 will always write blocks of the same size except the last block of a Job. If
1082 Bacula is configured to write fixed block sizes, it will pad the last block of
1083 the Job to the correct size. Bacula expects variable tape block size drives to
1084 behave as follows: Each write to the drive results in a single record being
1085 written to the tape. Each read returns a single record. If you request less
1086 bytes than are in the record, only those number of bytes will be returned, but
1087 the entire logical record will have been read (the next read will retrieve the
1088 next record). Thus data from a single write is always returned in a single
1089 read, and sequentially written records are returned by sequential reads. 
1090
1091 Bacula expects fixed block size tape drives to behave as follows: If a write
1092 length is greater than the physical block size of the drive, the write will be
1093 written as two blocks each of the fixed physical size. This single write may
1094 become multiple physical records on the tape. (This is not a good situation).
1095 According to the documentation, one may never write an amount of data that is
1096 not the exact multiple of the blocksize (it is not specified if an error
1097 occurs or if the the last record is padded). When reading, it is my
1098 understanding that each read request reads one physical record from the tape.
1099 Due to the complications of fixed block size tape drives, you should avoid
1100 them if possible with Bacula, or you must be ABSOLUTELY certain that you use
1101 fixed block sizes within Bacula that correspond to the physical block size of
1102 the tape drive. This will ensure that Bacula has a one to one correspondence
1103 between what it writes and the physical record on the tape. 
1104
1105 Please note that Bacula will not function correctly if it writes a block and
1106 that block is split into two or more physical records on the tape. Bacula
1107 assumes that each write causes a single record to be written, and that it can
1108 sequentially recover each of the blocks it has written by using the same
1109 number of sequential reads as it had written. 
1110
1111 \section{Details of Tape Modes}
1112 \index[general]{Modes!Details}
1113 \index[general]{Details of Tape Modes}
1114 Rudolf Cejka has provided the following information concerning
1115 certain tape modes and MTEOM.
1116
1117 \begin{description}
1118 \item[Tape level]
1119   It is always possible to position filemarks or blocks, whereas
1120   positioning to the end-of-data is only optional feature, however it is
1121   implemented very often.  SCSI specification also talks about optional
1122   sequential filemarks, setmarks and sequential setmarks, but these are not
1123   implemented so often.  Modern tape drives keep track of file positions in
1124   built-in chip (AIT, LTO) or at the beginning of the tape (SDLT), so there
1125   is not any speed difference, if end-of-data or filemarks is used (I have
1126   heard, that LTO-1 from all 3 manufacturers do not use its chip for file
1127   locations, but a tape as in SDLT case, and I'm not sure about LTO-2 and
1128   LTO-3 case).  However there is a big difference, that end-of-data ignores
1129   file position, whereas filemarks returns the real number of skipped
1130   files, so OS can track current file number just in filemarks case.
1131
1132 \item[OS level]
1133   Solaris does use just SCSI SPACE Filemarks, it does not support SCSI
1134   SPACE End-of-data.  When MTEOM is called, Solaris does use SCSI SPACE
1135   Filemarks with count = 1048576 for fast mode, and combination of SCSI
1136   SPACE Filemarks with count = 1 with SCSI SPACE Blocks with count = 1 for
1137   slow mode, so EOD mark on the tape on some older tape drives is not
1138   skipped.  File number is always tracked for MTEOM.
1139
1140   Linux does support both SCSI SPACE Filemarks and End-of-data: When MTEOM
1141   is called in MT\_ST\_FAST\_MTEOM mode, SCSI SPACE End-of-data is used.
1142   In the other case, SCSI SPACE Filemarks with count =
1143   8388607 is used.  
1144   There is no real slow mode like in Solaris - I just expect, that for
1145   older tape drives Filemarks may be slower than End-of-data, but not so
1146   much as in Solaris slow mode.  File number is tracked for MTEOM just
1147   without MT\_ST\_FAST\_MTEOM - when MT\_ST\_FAST\_MTEOM is used, it is not.
1148
1149   FreeBSD does support both SCSI SPACE Filemarks and End-of-data, but when
1150   MTEOD (MTEOM) is called, SCSI SPACE End-of-data is always used.  FreeBSD
1151   never use SCSI SPACE Filemarks for MTEOD. File number is never tracked
1152   for MTEOD.
1153
1154 \item[Bacula level]
1155   When {\bf Hardware End of Medium = Yes} is used, MTEOM is called, but it
1156   does not mean, that hardware End-of-data must be used.  When Hardware End
1157   of Medium = No, if Fast Forward Space File = Yes, MTFSF with count =
1158   32767 is used, else Block Read with count = 1 with Forward Space File
1159   with count = 1 is used, which is really very slow.
1160
1161 \item [Hardware End of Medium = Yes|No]
1162   The name of this option is misleading and is the source of confusion,
1163   because it is not the hardware EOM, what is really switched here.
1164
1165   If I use Yes, OS must not use SCSI SPACE End-of-data, because Bacula
1166   expects, that there is tracked file number, which is not supported by
1167   SCSI specification.  Instead, the OS have to use SCSI SPACE Filemarks.
1168
1169   If I use No, an action depends on Fast Forward Space File.
1170
1171   When I set {\bf Hardware End of Medium = no}
1172   and {\bf Fast Forward Space File = no}
1173   file positioning was very slow
1174   on my LTO-3 (about ten to 100 minutes), but
1175
1176   with {\bf Hardware End of Medium = no} and
1177 {\bf Fast Forward Space File = yes}, the time is ten to
1178 100 times faster (about one to two minutes).
1179
1180 \end{description}
1181
1182 \section{Autochanger Errors}
1183 \index[general]{Errors!Autochanger}
1184 \index[general]{Autochanger Errors}
1185
1186 If you are getting errors such as:
1187
1188 \footnotesize
1189 \begin{verbatim}
1190 3992 Bad autochanger "load slot 1, drive 1": ERR=Child exited with code 1.
1191 \end{verbatim}
1192 \normalsize
1193
1194 and you are running your Storage daemon as non-root, then most likely
1195 you are having permissions problems with the control channel. Running
1196 as root, set permissions on /dev/sgX so that the userid and group of
1197 your Storage daemon can access the device. You need to ensure that you
1198 all access to the proper control device, and if you don't have any
1199 SCSI disk drives (including SATA drives), you might want to change
1200 the permissions on /dev/sg*.
1201
1202 \section{Syslog Errors}
1203 \index[general]{Errors!Syslog}
1204 \index[general]{Syslog Errors}
1205
1206 If you are getting errors such as:
1207
1208 \footnotesize
1209 \begin{verbatim}
1210 : kernel: st0: MTSETDRVBUFFER only allowed for root
1211 \end{verbatim}
1212 \normalsize
1213
1214 you are most likely running your Storage daemon as non-root, and
1215 Bacula is attempting to set the correct OS buffering to correspond
1216 to your Device resource. Most OSes allow only root to issue this
1217 ioctl command. In general, the message can be ignored providing 
1218 you are sure that your OS parameters are properly configured as
1219 described earlier in this manual.  If you are running your Storage daemon 
1220 as root, you should not be getting these system log messages, and if
1221 you are, something is probably wrong.