cdbackup - Streaming backup to CD-R(W)/DVR-R(W)
cdbackup [-mvwCDRVX] [-d device] [-r scsi-dev] [-s speed]
[-i image] [-p num] [-l size] [-a label]
[-c command] [-- cdrecord-options]
cdbackup is a utility to make streaming backups to CD-R(W)/DVD-R(W)
disks. It’s designed to work with any backup tool which writes the
backup to stdout (like tar/cpio/afio).
NOTE: this program REQUIRES that a recent version of cdrecord(1) (or
cdrecord-ProDVD for DVD support) is present in the PATH.
While you can perfectly append several sessions on CD-R(W) media, I
didn’t manage to make this work on DVD-R(W) media. To allow multiple,
separate backups on these media, the concept of virtual images has been
A virtual image is a plain file on your harddisk. You can append
several backups to an image and after completing your backup session,
the image is dumped to CDR/DVD media in one burning session. You can
dump the same image multiple times too, if you want redundancy on the
Virtual image files are never deleted by cdbackup. After dumping an
image, you have to delete it by your self.
WARNING! When using this program under Linux, be sure not to use dump
on a mounted filesystem. This has a high potential for creating
corrupted backups. As of kernel version 2.4.19, this has not been fixed
and it may not be fixed at all. You can read Linus statement about
The device name which is used for reading things like the TOC
from a (partly written) media.
The scsi device which is passed to cdrecord(1) (via
dev=scsi-device). Must be given as three, comma separated
(default: none or the contents of the environment variable
The writing speed which is passed to cdrecord(1) (via
(default: 4 or the contents of the environment variable
-p num The number of sectors (of 2048 byte) to use for padding (see
-X Enables the use of CDROM XA2 mode in cdrecord(1). By default
CDROM mode 1 is used. The default is possibly causing problems
during restore on certain kernel version/CDROM hardware
combinations at the end of the last session on a media. Sony
drives doesn’t support CDROM XA 2 mode (see cdrecord(1) -multi).
-R Enables DVD writing mode. Cdrecord-ProDVD is used to burn DVD
media, but it’s called through a script called "dvdrecord". You
should set your cdrecord-ProDVD key and call cdrecord-ProDVD
Remember that you cannot write multiple sessions to DVD media.
Either you stick with one backup per media or you have to use
In DVD mode the options -p and -X have no effect.
Enables virtual image mode. The backup stream is written to the
given image file. The file is created if it doesn’t exists. It’s
mandatory to give an explicit media size with -l. Take care that
the created virtual image isn’t larger that the media size you
want to dump it later. You can add up to 96 backups to an
If the backup extends the specified media size and you have
enabled multi-disk mode, additional images files are created
(the filenames are derived from the initial image name by adding
a dot and a decimal number).
-w Dump the virtual image specified with -i to real media. Image
dumps are written as single sessions always. If you have enabled
multi-disk mode and additional images are found, you’re prompted
for media change, so that you can dump all images in turn.
Virtual images (even when dumped to media) are not compatible
with older cdbackup versions.
For normal operation the media size is auto-detected from the
cdrecord ATIP information. If this fails or for virtual image
mode use this option to set the media size. This is used to
calculate how much data can be stored on the media.
By default the given value is taken as megabytes. You can append
a single letter to the number to select: (k)ilobytes,
(m)egabytes, (g)igabytes or (s)ectors (e.g. 170k, 4488m,
-C Disables creation of the datablock CRC checksum. There is no
real reason to use this option, unless you can’t efford the
extra 0,2% media space that is used to store the checksum.
Although the on-disk layout of checksummed backups is different,
they are fully backwards compatible with older version of
cdbackup, but obviously older versions can’t check the backup
A text label to identify the backup set. The first 32 characters
of this string are save with the backup.
(default: "CDBackup Track")
The command which is executed whenever cdbackup needs to request
a new media in multi-disk mode. This command (or script) should
prompt the user and return after the recording device is ready
again. The command receives one argument, which is the device
name passed with -d. This can be used to issue commands to the
device like ejecting the media.
(default: use internal diskchange prompt)
-m Enables multi-disk mode. When the current media is filled, a new
media is requested (see option -c) and the backup is continued.
Backups can only be continued to empty media, this means you
cannot insert a partly filled media for continuation.
-v Enables verbose mode.
-D Enables DEBUG output (probably not useful for normal use).
-V Prints out version information and exits.
Pass following options to cdrecord(1).
To create a tar archive of /home and output it to a 700 MB CD-R(W) on
/dev/scd0 (scsi device 2,0):
tar cvf - /home | cdbackup -d /dev/scd0 -r 2,0 -l 700 -a "Test
To create a tar archive of /usr and output it to a series (multi-disk
mode) of 650 MB CD-R(W) on /dev/sr1 (scsi device 1,4,0) with writing
speed 12 and verbose output:
tar cf - /usr | cdbackup -d /dev/sr1 -r 1,4,0 -s 12 -m -v
To create a backup on a virtual image:
tar cf - /usr | cdbackup -i /tmp/vimage -l 4488m
Add another backup to the same virtual image (with multi-disk mode):
tar cf - /home | cdbackup -i /tmp/vimage -l 4488m
Dump the virtual image to one (or several) DVD media on /dev/cdrom
(scsi-ide device 0,0,0), enabling BURNFREE:
cdbackup -i /tmp/vimage -w -R -d /dev/cdrom -r 0,0,0 -s 4 -m --
Certain combinations of CDROM drivers and kernel versions are causing a
problem when restoring data. The restore process aborts with an read
error close to the end of the session, while the data on the media is
All CDR sessions written in track-at-once mode (which is unavoidable
for multisessions) end in at least two unreadable runout sectors (for
additional information refer to the file README.copy from the cdrecord
package). As the kernel does some readahead on the device, it stumbles
over these unreadable sectors before reaching the actual end of data.
Some drivers are reporting to syslog but doesn’t pass the error to the
application, while others make the application fail. From user
feedback, it seems that pure SCSI setups are mostly working fine, while
ide-scsi setups are likely to fail.
The author isn’t able to provide a full solution, but some hints which
1. Update to a recent kernel.
2. Disable kernel readahead with option -R when restoring.
3. Increase the padsize with option -p. Use values >= 128.
4. Use option -X if your writer supports this (Sony drives doesn’t
supports this mode).
Please contact the author if you can contribute additional information
about the problem.
Stefan Hülswitt <email@example.com>
Copyright (c) 2000-2004 Craig Condit, Stefan Hülswitt.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ‘‘AS IS’’ AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.