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}
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.
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}.
30 The fact that Bacula cannot use the OS to write directly
31 to the DVD makes the whole process a bit more error prone than
32 writing to a disk or a tape, but nevertheless, it does work if you
33 use some care to set it up properly. However, at the current time
34 (28 October 2005) we still consider this code to be experimental and of
35 BETA quality. As a consequence, please do careful testing before relying
36 on DVD backups in production.
38 The remainder of this chapter explains the various directives that you can
39 use to control the DVD writing.
43 \subsection*{DVD Specific SD Directives}
44 \index[general]{Directives!DVD}
45 \index[general]{DVD Specific SD Directives }
46 \addcontentsline{toc}{subsection}{DVD Specific SD Directives}
48 The following directives are added to the Storage daemon's
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}.
62 \item [Mount Point = {\it directory}]
63 \index[sd]{Mount Point}
64 Directory where the device can be mounted.
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
74 Most frequently, you will define it as follows:
78 Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
82 \item [Unmount Command = {\it name-string}]
83 \index[sd]{Unmount Command}
84 Command that must be executed to unmount the device. Before the command is
85 executed, \%a is replaced with the Archive Device, and \%m with the Mount
88 Most frequently, you will define it as follows:
92 Unmount Command = "/bin/umount %m"
96 \item [Write Part Command = {\it name-string}]
97 \index[sd]{Write Part Command }
98 Command that must be executed to write a part to the device. Before the
99 command is executed, \%a is replaced with the Archive Device, \%m with the
100 Mount Point, \%e is replaced with 1 if we are writing the first part,
101 and with 0 otherwise, and \%v with the current part filename.
103 For a DVD, you will most frequently specify the Bacula supplied {\bf
104 dvd-handler} script as follows:
108 Write Part Command = "/path/dvd-handler %a write %e %v"
112 Where {\bf /path} is the path to your scripts install directory, and
113 dvd-handler is the Bacula supplied script file.
114 This command will already be present, but commented out,
115 in the default bacula-sd.conf file. To use it, simply remove
116 the comment (\#) symbol.
119 \item [Free Space Command = {\it name-string}]
120 \index[sd]{Free Space Command }
121 Command that must be executed to check how much free space is left on the
122 device. Before the command is executed,\%a is replaced with the Archive
123 Device, \%m with the Mount Point, \%e is replaced with 1 if we are writing
124 the first part, and with 0 otherwise, and \%v with the current part filename.
126 For a DVD, you will most frequently specify the Bacula supplied {\bf
127 dvd-handler} script as follows:
131 Free Space Command = "/path/dvd-handler %a free"
135 Where {\bf /path} is the path to your scripts install directory, and
136 dvd-freespace is the Bacula supplied script file.
137 If you want to specify your own command, please look at the code in
138 dvd-handler to see what output Bacula expects from this command.
139 This command will already be present, but commented out,
140 in the default bacula-sd.conf file. To use it, simply remove
141 the comment (\#) symbol.
143 If you do not set it, Bacula will expect there is always free space on the
148 In addition to the directives specified above, you must also
149 specify the other standard Device resource directives. Please see the
150 sample DVD Device resource in the default bacula-sd.conf file. Be sure
151 to specify the raw device name for {\bf Archive Device}. It should
152 be a name such as {\bf /dev/cdrom} or {\bf /media/cdrecorder} or
153 {\bf /dev/dvd} depending on your system. It will not be a name such
157 \subsection*{DVD Specific Director Directives}
158 \index[general]{Directives!DVD}
159 \index[general]{DVD Specific Director Directives }
160 \addcontentsline{toc}{subsection}{DVD Specific Director Directives}
162 The following directives are added to the Director's Job resource.
164 \label{WritePartAfterJob}
166 \item [Write Part After Job = \lt{}yes|no\gt{}]
167 \index[dir]{Write Part After Job }
168 If this directive is set to {\bf yes} (default {\bf no}), the
169 Volume written to a temporary spool file for the current Job will
170 be written to the DVD as a new part file
171 will be created after the job is finished.
173 It should be set to {\bf yes} when writing to devices that require a mount
174 (for example DVD), so you are sure that the current part, containing
175 this job's data, is written to the device, and that no data is left in
176 the temporary file on the hard disk. However, on some media, like DVD+R
177 and DVD-R, a lot of space (about 10Mb) is lost everytime a part is
178 written. So, if you run several jobs each after another, you could set
179 this directive to {\bf no} for all jobs, except the last one, to avoid
180 wasting too much space, but to ensure that the data is written to the
181 medium when all jobs are finished.
183 This directive is ignored for devices other than DVDs.
189 \subsection*{Other Points}
190 \index[general]{Points!Other }
191 \index[general]{Other Points }
192 \addcontentsline{toc}{subsection}{Other Points}
195 \item Writing and reading of DVD+RW seems to work quite reliably
196 provided you are using the patched dvd+rw-mediainfo programs.
197 On the other hand, we do not have enough information to ensure
198 that DVD-RW or other forms of DVDs work correctly.
199 \item DVD+RW supports only about 1000 overwrites. Every time you
200 mount the filesystem read/write will count as one write. This can
201 add up quickly, so it is best to mount your DVD+RW filesystem read-only.
202 Bacula does not need the DVD to be mounted read-write, since it uses
203 the raw device for writing.
204 \item Reformatting DVD+RW 10-20 times can apparently make the medium
205 unusable. Normally you should not have to format or reformat
206 DVD+RW media. If it is necessary, current versions of growisofs will
208 \item We have had several problems writing to DVD-RWs (this does NOT
209 concern DVD+RW), because these media have two writing-modes: {\bf
210 Incremental Sequential} and {\bf Restricted Overwrite}. Depending on
211 your device and the media you use, one of these modes may not work
212 correctly (e.g. {\bf Incremental Sequential} does not work with my NEC
213 DVD-writer and Verbatim DVD-RW).
215 To retrieve the current mode of a DVD-RW, run:
217 dvd+rw-mediainfo /dev/xxx
219 where you replace xxx with your DVD device name.
221 {\bf Mounted Media} line should give you the information.
223 To set the device to {\bf Restricted Overwrite} mode, run:
225 dvd+rw-format /dev/xxx
227 If you want to set it back to the default {\bf Incremental Sequential} mode, run:
229 dvd+rw-format -blank /dev/xxx
232 \item Bacula only accepts to write to blank DVDs. To quickly blank a DVD+/-RW, run
235 dd if=/dev/zero bs=1024 count=512 | growisofs -Z /dev/xxx=/dev/fd/0
237 Then, try to mount the device, if it cannot be mounted, it will be considered
238 as blank by Bacula, if it can be mounted, try a full blank (see below).
240 \item If you wish to blank completely a DVD+/-RW, use the following:
242 growisofs -Z /dev/xxx=/dev/zero
244 where you replace xxx with your DVD device name. However, note that this
245 blanks the whole DVD, which takes quite a long time (16 minutes on mine).
246 \item DVD+RW and DVD-RW support only about 1000 overwrites (i.e. don't use the
247 same medium for years if you don't want to have problems...).
249 \item For more informations about DVD writing, please look at the
250 \elink{dvd+rw-tools homepage}{http://fy.chalmers.se/~appro/linux/DVD+RW/}.