growisofs
combined genisoimage frontend/DVD recording program.
Synopsis
growisofs
[-dry-run]
[-dvd-compat] [-overburn]
[-speed=1] -[Z|M] /dev/dvd
<genisoimage-options>
add an example, a script, a trick and tips
examples
Actual device names vary from one operating system to another. We
use /dev/dvd as a collective name or as symbolic link to
the actual device if you wish. Under Linux it will most likely be
an ide-scsi device such as "/dev/scd0." Under NetBSD/OpenBSD it
has to be a character SCSI CD-ROM device such as
"/dev/rcd0c." Under Solaris it also has to be a character
SCSI/ATAPI CD-ROM device, e.g. "/dev/rdsk/c0t1d0s2" or
"/vol/dev/aliases/cdrom0." And likewise in HP-UX, IRIX and Mac OS
X...
To master and burn an ISO9660 volume with Joliet and Rock-Ridge
extensions on a DVD or Blu-ray Disc:
growisofs -Z /dev/dvd -R -J /some/files
To append more data to same media:
growisofs -M /dev/dvd -R -J /more/files
Make sure to use the same options for both initial burning
and when appending data.
To finalize the multisession DVD maintaining maximum
compatibility:
growisofs -M /dev/dvd=/dev/zero
To use growisofs to write a pre-mastered ISO-image to a
DVD:
growisofs -dvd-compat -Z /dev/dvd=image.iso
where image.iso represents an arbitrary object in the filesystem,
such as file, named pipe or device entry. Nothing is growing here
and command name is not intuitive in this context.
description
growisofs
was originally designed as a frontend to genisoimage
to facilitate appending of data to ISO9660 volumes residing
on random-access media such as DVD+RW, DVD-RAM, plain
files, hard disk partitions. In the course of development
general purpose DVD recording support was implemented, and
as of now growisofs supports not only random-access
media, but even mastering of multisession DVD media such as
DVD+R and DVD-R/-RW, as well as Blu-ray
Disc. In addition growisofs supports
first-/single-session recording of arbitrary pre-mastered
image (formatted as UDF, ISO9660 or any other file
system, if formatted at all) to all supported DVD media
types.
options
-Z /dev/dvd
Burn an initial session to the
selected device. A special form of this option is recognized
to support burning of pre-mastered images. See EXAMPLES
section for further details.
-M /dev/dvd
Merge a new session to an
existing one.
-version
Print version information and
invoke genisoimage, also with -version
option.
-dvd-compat
Provide maximum media
compatibility with DVD-ROM/-Video. In write-once
DVD+R or DVD-R context this results in unappendable
recording (closed disk). In DVD+RW context it instructs the
logical unit to explicitly burn [otherwise optional]
lead-out.
-dry-run
At dry-run
growisofs performs all the steps till, but not
including the first write operation. Most notably check for
"overburn" condition is performed, which implies
that genisoimage is invoked and terminated prematurely.
-overburn
Normally single layer DVD media
can accommodate up to approximately 4.700.000.000 bytes (in
marketing speech 4.7GB). In other words a DVD can contain
about 4.377 GiB or 4482 MiB. Same kind of arithmetics
applies to Blu-ray Disc capacity of 25.000.000.000
bytes. Anyway, growisofs won’t start without this
option, if "overburn" condition appears to be
unavoidable.
-speed=N
An option to control recording
velocity. Most commonly you’ll use
-speed=1 with "no-name" media,
if default speed setting messes up the media. Keep in mind
that N essentially denotes speed closest to
N*1385KBps in DVD or N*4496KBps in Blu-ray Disc case
among those offered by unit for currently mounted media. The
list can be found in dvd+rw-mediainfo output.
Note that Blu-ray Disc recordings are commonly
performed at ~1/2 of advertised speed, because of defect
management being in effect.
<genisoimage-options>
More options can be found in
the manpage for genisoimage.
There are
several undocumented options commonly denoted with
-use-the-force-luke prefix.
Some of them serve debugging purposes. Some require certain
knowledge about recording process or even OS kernel
internals and as being such can induce confusing behaviour.
Some are to be used in very specific situations better
recognized by front-ends or automated scripts. Rationale
behind leaving these options undocumented is that those few
users who would actually need to use them directly can as
well consult the source code or obtain specific instructions
elsewhere.
differences with running genisoimage directly
When using growisofs you may not use the -o option for an
output file. growisofs dumps the image directly to the
media;
You don’t have to specify the -C option to create a higher
level session on a multisession disk, growisofs will
construct one for you;
Otherwise everything that applies to [multisession]
mastering with genisoimage applies to growisofs as
well. growisofs needs at least mkisofs version
1.14, version 2.0 is required for multisession write-once
recordings or genisoimage.
license
growisofs is distributed under GNU GPL.
notes
If executed under sudo(8) growisofs refuses to start. This is
done for the following reason. Naturally growisofs has to access
the data set to be recorded to optical media, either indirectly
by letting genisoimage generate ISO9660 layout on-the-fly or
directly if a pre-mastered image is to be recorded. Being
executed under sudo(8), growisofs effectively grants sudoers read
access to any file in the file system. The situation is
intensified by the fact that growisofs parses GENISOIMAGE
environment variable in order to determine alternative path to
genisoimage executable image. This means that being executed
under sudo(8), growisofs effectively grants sudoers right to
execute program of their choice with elevated privileges. If you
for any reason still find the above acceptable and are willing to
take the consequences, then consider running following wrapper
script under sudo(8) in place for real growisofs binary.
#!/bin/ksh
unset SUDO_COMMAND
export GENISOIMAGE=/path/to/trusted/genisoimage
exec growisofs "$@"
But note that the recommended alternative to the above
"workaround" is actually to install growisofs set-root-uid, in
which case it will drop privileges prior accessing data or
executing genisoimage in order to preclude unauthorized access to
the data.
If the media already carries isofs and growisofs is
invoked with -Z option non-interactively, e.g. through
cron, it shall fail with "FATAL: /dev/dvd already carries isofs!"
Note that only ISO9660 is recognized, you can perfectly zap e.g.
an UDF filesystem non-interactively. Recommendation is to prepare
media for unattended usage by re-formatting or nullifying first
64KB in advance.
"Overburn" protection in pre-mastered image context works only
with plain files and ISO9660 formatted volumes. E.g. [given that
/dev/root is an ext2 formatted file system larger than 4.7GB]
/dev/dvd=/dev/root is bound to produce corrupted recording.
Note that DVD+RW re-formatting procedure does not substitute for
blanking. If you want to nullify the media, e.g. for privacy
reasons, do it explicitly with ’growisofs -Z
/dev/dvd=/dev/zero’.
Playback of re-writable DVD media, both DVD+RW and DVD-RW, might
be limited in legacy DVD-ROM/-Video units. In most cases this is
due to lower reflectivity of such media.
Even though growisofs supports it, playback of multisession
write-once DVD might be limited to the first session for two
reasons:
•
not all DVD-ROM players are capable of multi-border DVD-R
playback, even less are aware of DVD+R multisessioning, burner
unit therefore might be the only one in your vicinity capable of
accessing files written at different occasions;
•
OS might fail to mount multisession DVD for various reasons;
The above is not applicable to DVD+RW, DVD-RW Restricted
Overwrite, DVD-RAM or Blu-ray Disc, as volumes are grown within a
single session.
When growisofs "runs into" blank Blu-ray Disc media, BD-RE or
BD-R, it gets pre-formatted with minimal spare area size of
256MB.
see also
Most up-to-date
information on dvd+rw-tools is available at
http://fy.chalmers.se/~appro/linux/DVD+RW/.
The manpage for
genisoimage.
authors
Andy Polyakov
<appro[:at:]fy.chalmers[:dot:]se> stands for programming and
on-line information.
This manpage is
currently maintained by Huub Reuver
<h_reuver[:at:]mantell.xs4all[:dot:]nl>.