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