]> git.sur5r.net Git - bacula/docs/blob - docs/manuals/en/misc/dvd.tex
Put depreciation notice in manual DVD chapter
[bacula/docs] / docs / manuals / en / misc / dvd.tex
1 %%
2 %%
3
4 \chapter{DVD Volumes}
5 \label{_DVDChapterStart}
6 \index[general]{DVD Volumes}
7 \index[general]{Writing DVDs}
8 \index[general]{DVD Writing}
9 \index[general]{Volumes!DVD}
10
11 Please note that the DVD code is depreciated, that is
12 we no longer support it, and in a future version it will
13 be removed.  The code is very likely not to work.
14
15 The reason we have depreciated it is that writing to DVD
16 devices is not very reliable, and more modern devices
17 such as USB sticks or USB drives are much more reliable.
18
19 Just the same if you want to write Bacula Volumes to DVDs,
20 or CDs, you can do so by limiting the size of the Bacula
21 volume to be slightly smaller than the device, then when
22 you are ready, you simply write the volume to the DVD by
23 using any standard DVD burning program.
24
25 Bacula allows you to specify that you want to write to DVD. However,
26 this feature is implemented only in version 1.37 or later.
27 You may in fact write to DVD+RW, DVD+R, DVD-R, or DVD-RW 
28 media. The actual process used by Bacula is to first write
29 the image to a spool directory, then when the Volume reaches
30 a certain size or,  at your option, at the end of a Job, Bacula
31 will transfer the image from the spool directory to the
32 DVD.  The actual work of transferring the image is done
33 by a script {\bf dvd-handler}, and the heart of that
34 script is a program called {\bf growisofs} which allows
35 creating or adding to a DVD ISO filesystem.
36
37 You must have {\bf dvd+rw-tools} loaded on your system for DVD writing to
38 work.  Please note that the original {\bf dvd+rw-tools} package does {\bf
39 NOT} work with Bacula.  You must apply a patch which can be found in the
40 {\bf patches} directory of Bacula sources with the name
41 {\bf dvd+rw-tools-5.21.4.10.8.bacula.patch} for version 5.21 of the tools,
42 or patch {bf dvd+rw-tools-6.1.bacula.patch} if you have version 6.1       
43 on your system. Unfortunately, this requires you to build the dvd\_rw-tools
44 from source.
45
46 Note, some Linux distros such as Debian dvd+rw-tools-7.0-4 package already
47 have the patch applied, so please check.
48
49 The fact that Bacula cannot use the OS to write directly
50 to the DVD makes the whole process a bit more error prone than
51 writing to a disk or a tape, but nevertheless, it does work if you
52 use some care to set it up properly. However, at the current time
53 (version 1.39.30 -- 12 December 2006) we still consider this code to be
54 BETA quality.  As a consequence, please do careful testing before relying
55 on DVD backups in production.
56
57 The remainder of this chapter explains the various directives that you can
58 use to control the DVD writing.
59
60 \label{DVDdirectives}
61 \section{DVD Specific SD Directives} 
62 \index[general]{Directives!DVD}
63 \index[general]{DVD Specific SD Directives }
64
65 The following directives are added to the Storage daemon's
66 Device resource.
67
68 \begin{description}
69
70 \item [Requires Mount = {\it Yes|No}]
71    \index[general]{Requires Mount  }
72    You must set this directive to {\bf yes} for DVD-writers,  and to {\bf no} for
73    all other devices (tapes/files).  This directive indicates if the device
74    requires to be mounted using the {\bf Mount Command}.
75    To be able to write a DVD, the following directives must also be
76    defined: {\bf Mount Point},  {\bf Mount Command}, {\bf Unmount Command} and
77    {\bf Write Part Command}.
78
79 \item [Mount Point = {\it directory}]
80    \index[general]{Mount Point}
81    Directory where the device can be mounted. 
82
83 \item [Mount Command = {\it name-string}]
84    \index[general]{Mount Command}
85    Command that must be executed to mount the device. Although the
86    device is written directly, the mount command is necessary in
87    order to determine the free space left on the DVD. Before the command is 
88    executed, \%a is replaced with the Archive Device, and \%m with the Mount 
89    Point.
90
91    Most frequently, you will define it as follows:  
92
93 \footnotesize
94 \begin{verbatim}
95   Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
96 \end{verbatim}
97 \normalsize
98
99 However, if you have defined a mount point in /etc/fstab, you might be
100 able to use a mount command such as:
101
102 \footnotesize
103 \begin{verbatim}
104   Mount Command = "/bin/mount /media/dvd"
105 \end{verbatim}
106 \normalsize
107
108
109 \item [Unmount Command = {\it name-string}]
110    \index[general]{Unmount Command}
111    Command that must be executed to unmount the device. Before the command  is
112    executed, \%a is replaced with the Archive Device, and \%m with the  Mount
113    Point.
114
115    Most frequently, you will define it as follows:  
116
117 \footnotesize
118 \begin{verbatim}
119   Unmount Command = "/bin/umount %m"
120 \end{verbatim}
121 \normalsize
122
123 \item [Write Part Command = {\it name-string}]
124    \index[general]{Write Part Command  }
125    Command that must be executed to write a part to the device. Before the 
126    command is executed, \%a is replaced with the Archive Device, \%m with the 
127    Mount Point, \%e is replaced with 1 if we are writing the first part,
128    and with 0 otherwise, and \%v with the current part filename.
129
130    For a DVD, you will most frequently specify the Bacula supplied  {\bf
131    dvd-handler} script as follows:  
132
133 \footnotesize
134 \begin{verbatim}
135   Write Part Command = "/path/dvd-handler %a write %e %v"
136 \end{verbatim}
137 \normalsize
138
139   Where {\bf /path} is the path to your scripts install directory, and
140   dvd-handler is the Bacula supplied script file.  
141   This command will already be present, but commented out,
142   in the default bacula-sd.conf file. To use it, simply remove
143   the comment (\#) symbol.
144
145
146 \item [Free Space Command = {\it name-string}]
147    \index[general]{Free Space Command  }
148    Command that must be executed to check how much free space is left on the 
149    device. Before the command is executed,\%a is replaced with the Archive
150    Device.
151
152    For a DVD, you will most frequently specify the Bacula supplied  {\bf
153    dvd-handler} script as follows:  
154
155 \footnotesize
156 \begin{verbatim}
157   Free Space Command = "/path/dvd-handler %a free"
158 \end{verbatim}
159 \normalsize
160
161   Where {\bf /path} is the path to your scripts install directory, and
162   dvd-handler is the Bacula supplied script file.
163   If you want to specify your own command, please look at the code in
164   dvd-handler to see what output Bacula expects from this command.
165   This command will already be present, but commented out,
166   in the default bacula-sd.conf file. To use it, simply remove
167   the comment (\#) symbol.
168
169   If you do not set it, Bacula will expect there is always free space on the
170   device. 
171
172 \end{description}
173
174 In addition to the directives specified above, you must also
175 specify the other standard Device resource directives. Please see the
176 sample DVD Device resource in the default bacula-sd.conf file. Be sure
177 to specify the raw device name for {\bf Archive Device}. It should 
178 be a name such as {\bf /dev/cdrom} or {\bf /media/cdrecorder} or
179 {\bf /dev/dvd} depending on your system.  It will not be a name such
180 as {\bf /mnt/cdrom}.
181
182 Finally, for {\bf growisofs} to work, it must be able to lock
183 a certain amount of memory in RAM.  If you have restrictions on
184 this function, you may have failures.  Under {\bf bash}, you can
185 set this with the following command:
186
187 \footnotesize  
188 \begin{verbatim}
189 ulimit -l unlimited
190 \end{verbatim}
191 \normalsize
192
193 \section{Edit Codes for DVD Directives} 
194 \index[general]{Directives!DVD Edit Codes}
195 \index[general]{Edit Codes for DVD Directives }
196
197 Before submitting the {\bf Mount Command}, {\bf Unmount Command}, 
198 {\bf Write Part Command}, or {\bf Free Space Command} directives 
199 to the operating system, Bacula performs character substitution of the
200 following characters:
201
202 \footnotesize
203 \begin{verbatim}
204     %% = %
205     %a = Archive device name
206     %e = erase (set if cannot mount and first part)
207     %n = part number
208     %m = mount point
209     %v = last part name (i.e. filename)
210 \end{verbatim}
211 \normalsize
212
213
214
215 \section{DVD Specific Director Directives} 
216 \index[general]{Directives!DVD}
217 \index[general]{DVD Specific Director Directives }
218
219 The following directives are added to the Director's Job resource.
220     
221 \label{WritePartAfterJob}
222 \begin{description}
223 \item [Write Part After Job = \lt{}yes|no\gt{}]
224    \index[general]{Write Part After Job }
225    If this directive is set to {\bf yes} (default {\bf no}), the
226    Volume written to a temporary spool file for the current Job will
227    be written to the DVD as a new part file
228    will be created after the job is finished.  
229
230    It should be set to {\bf yes} when writing to devices that require a mount
231    (for example DVD), so you are sure that the current part, containing
232    this job's data, is written to the device, and that no data is left in
233    the temporary file on the hard disk.  However, on some media, like DVD+R
234    and DVD-R, a lot of space (about 10Mb) is lost everytime a part is
235    written.  So, if you run several jobs each after another, you could set
236    this directive to {\bf no} for all jobs, except the last one, to avoid
237    wasting too much space, but to ensure that the data is written to the
238    medium when all jobs are finished.
239
240    This directive is ignored for devices other than DVDs.
241 \end{description}
242
243
244
245 \label{DVDpoints}
246 \section{Other Points}
247 \index[general]{Points!Other }
248 \index[general]{Other Points }
249
250 \begin{itemize}
251 \item Please be sure that you have any automatic DVD mounting
252    disabled before running Bacula -- this includes auto mounting
253    in /etc/fstab, hotplug, ...  If the DVD is automatically
254    mounted by the OS, it will cause problems when Bacula tries
255    to mount/unmount the DVD.
256 \item Please be sure that you the directive {\bf Write Part After Job}
257    set to {\bf yes}, otherwise the last part of the data to be
258    written will be left in the DVD spool file and not written to
259    the DVD. The DVD will then be unreadable until this last part
260    is written.  If you have a series of jobs that are run one at
261    a time, you can turn this off until the last job is run.
262 \item The current code is not designed to have multiple simultaneous
263    jobs writing to the DVD.  As a consequence, please ensure that
264    only one DVD backup job runs at any time.
265 \item Writing and reading of DVD+RW seems to work quite reliably
266    provided you are using the patched dvd+rw-mediainfo programs.
267    On the other hand, we do not have enough information to ensure
268    that DVD-RW or other forms of DVDs work correctly.
269 \item DVD+RW supports only about 1000 overwrites. Every time you
270    mount the filesystem read/write will count as one write. This can
271    add up quickly, so it is best to mount your DVD+RW filesystem read-only.
272    Bacula does not need the DVD to be mounted read-write, since it uses
273    the raw device for writing.
274 \item Reformatting DVD+RW 10-20 times can apparently make the medium 
275    unusable. Normally you should not have to format or reformat
276    DVD+RW media. If it is necessary, current versions of growisofs will
277    do so automatically.
278 \item We have had several problems writing to DVD-RWs (this does NOT
279   concern DVD+RW), because these media have two writing-modes: {\bf
280   Incremental Sequential} and {\bf Restricted Overwrite}.  Depending on
281   your device and the media you use, one of these modes may not work
282   correctly (e.g.  {\bf Incremental Sequential} does not work with my NEC
283   DVD-writer and Verbatim DVD-RW).
284
285   To retrieve the current mode of a DVD-RW, run:
286 \begin{verbatim}
287   dvd+rw-mediainfo /dev/xxx
288 \end{verbatim}
289   where you replace xxx with your DVD device name.
290
291   {\bf Mounted Media} line should give you the information.
292
293   To set the device to {\bf Restricted Overwrite} mode, run:
294 \begin{verbatim}
295   dvd+rw-format /dev/xxx
296 \end{verbatim}
297   If you want to set it back to the default {\bf Incremental Sequential} mode, run:
298 \begin{verbatim}
299   dvd+rw-format -blank /dev/xxx
300 \end{verbatim}
301
302 \item Bacula only accepts to write to blank DVDs. To quickly blank a DVD+/-RW, run
303   this command:
304 \begin{verbatim}
305   dd if=/dev/zero bs=1024 count=512 | growisofs -Z /dev/xxx=/dev/fd/0
306 \end{verbatim}
307   Then, try to mount the device, if it cannot be mounted, it will be considered
308   as blank by Bacula, if it can be mounted, try a full blank (see below).
309
310 \item If you wish to blank completely a DVD+/-RW, use the following:
311 \begin{verbatim}
312   growisofs -Z /dev/xxx=/dev/zero
313 \end{verbatim}
314   where you replace xxx with your DVD device name. However, note that this
315   blanks the whole DVD, which takes quite a long time (16 minutes on mine).
316 \item DVD+RW and DVD-RW support only about 1000 overwrites (i.e. don't use the
317 same medium for years if you don't want to have problems...).
318
319 To write to the DVD the first time use:
320 \begin{verbatim}
321   growisofs -Z /dev/xxx filename
322 \end{verbatim}
323
324 To add additional files (more parts use):
325
326 \begin{verbatim}
327   growisofs -M /dev/xxx filename
328 \end{verbatim}
329
330 The option {\bf -use-the-force-luke=4gms} was added in growisofs 5.20 to
331 override growisofs' behavior of always checking for the 4GB limit.
332 Normally, this option is recommended for all Linux 2.6.8 kernels or
333 greater, since these newer kernels can handle writing more than 4GB.
334 See below for more details on this subject.
335
336 \item For more information about DVD writing, please look at the
337 \elink{dvd+rw-tools homepage}{http://fy.chalmers.se/~appro/linux/DVD+RW/}.
338
339 \item According to bug \#912, bscan cannot read multi-volume DVDs.  This is
340 on our TODO list, but unless someone submits a patch it is not likely to be
341 done any time in the near future. (9 Sept 2007).
342
343 \end{itemize}