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