[PATCH] growisofs error and dvd+rw-format manual page
Hi all,
in [1] Reartes found that growisofs doesn't behave correctly in case
DVD-RW is in Sequential mode an some content is already written. Then we
have to either erase media or use -M option to grow image.
Currently, this case is not caught by growisofs at all and a write error
is printed instead. The attached patch adds a check if these conditions
are met and let growisofs exit with printing a message.
The patch also adds missing man page for dvd+rw-format that discuss
available mode for DVD-RW and its features/issues. The same man page is
attached as a plain text to be read easily. I'm going to apply that in
Fedora, so any comments welcome.
Cheers,
Honza
[1] https://bugzilla.redhat.com/show_bug.cgi?id=810838
diff -up dvd+rw-tools-7.1/dvd+rw-format.1.format dvd+rw-tools-7.1/dvd+rw-format.1
--- dvd+rw-tools-7.1/dvd+rw-format.1.format 2012-08-22 14:43:49.180350873 +0200
+++ dvd+rw-tools-7.1/dvd+rw-format.1 2012-08-22 14:43:49.180350873 +0200
@@ -0,0 +1,116 @@
+.TH DVD+RW\-FORMAT 1 "21 Aug 2012" "dvd+rw\-tools 7.1"
+.SH NAME
+dvd+rw\-format \- formatting and blanking DVD and BD media program.
+.SH SYNOPSIS
+.B dvd+rw\-format
+[\fB\-force\fP[\fB\=full\fP]]
+[\fB\-lead\-out|\-blank\fP[\fB\=full\fP]]
+[\fB\-ssa\fP[\fB\=none|default|max|XXXm\fP]]
+.I /dev/dvd
+
+.SH DESCRIPTION
+\fBdvd+rw\-format\fP is a part of \fBdvd+rw\-tools\fP suite and allows to
+format virgin DVD+RW or BD media for the first use or blank already
+written DVD\-RW, DVD+RW and DVD+RAM media.
+It is not possible to format CD\-RW by \fBdvd+rw\-format\fP,
+you can use \fBcdrskin\fP or \fBwodim\fP utility instead,
+see section \fBEXAMPLES\fP.
+
+A DVD\-RW accepts two disc modes: the \fISequential Recording\fP
+and the \fIRestricted Overwrite\fP. If a DVD\-RW medium is in the later one,
+it will behave much like DVD+RW.
+By default DVD\-RW discs are in Sequential Recording mode, but
+can be put into Restricted Overwrite mode using \fBdvd+rw\-format\fP
+when no options given.
+
+Virgin DVD\-RW can be directly written without
+the need of a formatting operation, however a non-virgin DVD\-RW in
+Sequential Recording mode needs to be blanked before writing a new
+initial session. Since a DVD\-RW medium in the Restricted Overwrite
+mode behaves much like DVD+RW, it can be written again without prior
+formatting the media.
+
+Virgin BD and DVD+RW media need to be initally formatted prior
+usage. Any-time later, \fBgrowisofs\fP program will take care of formatting
+it automatically whenever appropriate, while further formatting is not
+recommended, however it is possible.
+
+.SH OPTIONS
+.TP
+.BI \-force[\=full]
+Perform formatting even if the medium is formatted already. This is not
+recommended for BD and DVD+RW media, since they need to be
+formatted only once. Use \fB\-format=full\fP to perform full (lengthy)
+reformat in case of DVD\-RAM or (lengthy) Full Certification in case of
+BD\-RE.
+.TP
+.BI \-lead\-out
+Relocates the lead-out next to outermost written sector as well as makes
+sure there is no virgin surface before it. This can make the medium more
+compatible with some DVD players. Previously written data is not
+affected by this operation.
+.TP
+.BI \-blank[\=full]
+Wipe data from DVD\-RW media. Blanking is used automatically in case of
+BD and DVD+RW media. Use \fB\-blank\=full\fP to change
+DVD\-RW back to Sequential Recording mode.
+.TP
+.BI \-ssa[\=none|default|max|XXXm]
+Grow, eliminate, reset to default or maximize \fISupplementary Spare Area\fP.
+
+.SH EXAMPLES
+Actual device names vary from one operating system to another. We use
+\fI/dev/dvd\fP 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
+\fIcharacter\fP SCSI CD\-ROM device such as "/dev/rcd0c." Under Solaris
+it also has to be a \fIcharacter\fP 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 blank a CD\-RW, you have to use another utility, e.g. wodim:
+
+ \fBwodim\fP \fBblank=all\fP \-immed dev=\fI/dev/cdrom\fP
+
+To blank a DVD\-RW and put in the incremental sequential mode, run:
+
+ \fBdvd+rw\-format\fP \fB\-blank=full\fP \fI/dev/dvd\fP
+
+To blank a DVD\-RW and put in the Restricted Overwrite mode, run:
+
+ \fBdvd+rw\-format\fP \fB\-force\fP \fI/dev/dvd\fP
+
+To blank a BD or DVD+RW, run:
+
+ \fBgrowisofs\fP \fB\-Z\fP \fI/dev/dvd\fP\=\fI/dev/zero\fP
+
+To blank a DVD+RAM, you can use:
+
+ \fBdd\fP if\=\fI/dev/zero\fP of\=\fI/dev/dvd\fP
+
+To relocate lead-out sector, run:
+
+ \fBdvd+rw\-format\fP \fB\-lead\-out\fP \fI/dev/dvd\fP
+
+.SH NOTES
+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 \fI/dev/dvd\fP\=\fB/dev/zero\fP'.
+
+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.
+
+.SH SEE ALSO
+Most up-to-date information on dvd+rw\-tools is available at
+http://fy.chalmers.se/~appro/linux/DVD+RW/.
+
+.SH AUTHORS
+Andy Polyakov <appro@fy.chalmers.se> stands for programming and on-line
+information.
+
+This manpage is currently maintained by Honza Horak
+<hhorak@redhat.com>.
+
+.SH LICENSE
+\fBdvd+rw\-format\fP is distributed under GNU GPL.
+
diff -up dvd+rw-tools-7.1/growisofs.1.format dvd+rw-tools-7.1/growisofs.1
--- dvd+rw-tools-7.1/growisofs.1.format 2008-03-01 11:40:06.000000000 +0100
+++ dvd+rw-tools-7.1/growisofs.1 2012-08-22 14:43:49.181350876 +0200
@@ -210,11 +210,19 @@ DVD\-RAM or Blu\-ray Disc, as volumes ar
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.
+A DVD\-RW accepts two disc modes: the \fISequential Recording\fP
+and the \fIRestricted Overwrite\fP. If a DVD\-RW medium is in the later one,
+it will behave much like DVD+RW.
+By default DVD\-RW discs are in Sequential Recording mode, but
+can be put into Restricted Overwrite mode using \fBdvd+rw\-format\fP.
+See \fBdvd+rw\-format (1)\fP for more info.
+
.SH SEE ALSO
Most up-to-date information on dvd+rw\-tools is available at
http://fy.chalmers.se/~appro/linux/DVD+RW/.
.PP
-The manpage for \fBmkisofs\fP.
+.BR mkisofs (1),
+.BR dvd+rw\-tools (1)
.SH AUTHORS
Andy Polyakov <appro@fy.chalmers.se> stands for programming and on-line
diff -up dvd+rw-tools-7.1/growisofs.c.format dvd+rw-tools-7.1/growisofs.c
--- dvd+rw-tools-7.1/growisofs.c.format 2008-03-04 10:15:03.000000000 +0100
+++ dvd+rw-tools-7.1/growisofs.c 2012-08-22 14:43:49.183350882 +0200
@@ -3433,8 +3433,15 @@ int main (int argc, char *argv[])
else if (isatty (0)) warn_for_isofs |= 2;
if (no_tty_check || (warn_for_isofs&2))
- fprintf (stderr,"WARNING: %s already carries isofs!\n",in_device),
+ {
+ fprintf (stderr,"WARNING: %s already carries isofs!\n",in_device);
+ /* we cannot re-write a DVD-RW media in Sequential mode */
+ if ((int)(mmc_profile&0xFFFF) == 0x14)
+ fprintf (stderr,"FATAL: DVD-RW medium is in Sequential mode, you "
+ "need to blank it before writing again.\n"),
+ exit(FATAL_START(EBUSY));
printf ("About to execute '");
+ }
else
fprintf (stderr,"FATAL: %s already carries isofs!\n",in_device),
exit(FATAL_START(EBUSY));
diff -up dvd+rw-tools-7.1/Makefile.format dvd+rw-tools-7.1/Makefile
--- dvd+rw-tools-7.1/Makefile.format 2012-08-22 14:46:07.808827082 +0200
+++ dvd+rw-tools-7.1/Makefile 2012-08-22 14:45:20.133662509 +0200
@@ -22,6 +22,7 @@ pkg:
$(DIST)/Makefile.m4 \
$(DIST)/dvd+rw-tools.spec \
$(DIST)/growisofs.1 \
+ $(DIST)/dvd+rw-format.1 \
$(DIST)/transport.hxx \
$(DIST)/mp.h \
$(DIST)/win32err.h \
diff -up dvd+rw-tools-7.1/Makefile.m4.format dvd+rw-tools-7.1/Makefile.m4
--- dvd+rw-tools-7.1/Makefile.m4.format 2012-08-22 14:48:27.556314511 +0200
+++ dvd+rw-tools-7.1/Makefile.m4 2012-08-22 14:52:07.967972365 +0200
@@ -32,6 +32,7 @@ BIN_MODE?=0755
install: dvd+rw-tools
install -o root -m $(BIN_MODE) $(CHAIN) /usr/bin
install -o root -m 0644 growisofs.1 /usr/share/man/man1
+ install -o root -m 0644 dvd+rw-format.1 /usr/share/man/man1
])
ifelse(OS,MINGW32,[
@@ -68,6 +69,7 @@ BIN_MODE?=04755
install: dvd+rw-tools
install -o root -m $(BIN_MODE) $(CHAIN) /usr/local/bin
install -o root -m 0644 growisofs.1 /usr/local/man/man1
+ install -o root -m 0644 dvd+rw-format.1 /usr/local/man/man1
])
ifelse(OS,SunOS,[
@@ -103,6 +105,7 @@ LDLIBS=-lvolmgt -lrt -lpthread -ldl
install: dvd+rw-tools
/usr/ucb/install -o root -m 04755 $(CHAIN) /usr/local/bin
/usr/ucb/install -o root -m 0644 growisofs.1 /usr/local/man/man1
+ /usr/ucb/install -o root -m 0644 dvd+rw-format.1 /usr/local/man/man1
])
ifelse(OS,HP-UX,[
@@ -141,6 +144,7 @@ LDLIBS=-lrt -lpthread
install: dvd+rw-tools
/usr/sbin/install -o -f /usr/local/bin $(CHAIN)
/usr/sbin/install -o -f /usr/local/man/man1 growisofs.1
+ /usr/sbin/install -o -f /usr/local/man/man1 dvd+rw-format.1
])
ifelse(OS,IRIX,[
@@ -178,6 +182,7 @@ BIN_MODE=04755 # set-root-uid
install: dvd+rw-tools
/sbin/install -u root -m $(BIN_MODE) $(CHAIN) /usr/local/bin
/sbin/install -u root -m 0644 growisofs.1 /usr/local/man/man1
+ /sbin/install -u root -m 0644 dvd+rw-format.1 /usr/local/man/man1
])
ifelse(OS,Linux,[
@@ -202,6 +207,7 @@ install: dvd+rw-tools
install $(minus_o) -m $(bin_mode) $(CHAIN) $(prefix)/bin
[[ -d $(mandir)/man1 ]] || mkdir -p $(mandir)/man1
install $(minus_o) -m 0644 growisofs.1 $(mandir)/man1
+ install $(minus_o) -m 0644 dvd+rw-format.1 $(mandir)/man1
-[[ -f rpl8 ]] && install $(minus_o) -m $(bin_mode) rpl8 $(prefix)/bin || :
-[[ -f btcflash ]] && install $(minus_o) -m $(bin_mode) btcflash $(prefix)/bin || :
])
NAME
dvd+rw-format - formatting and blanking DVD and BD media program.
SYNOPSIS
dvd+rw-format [-force[=full]] [-lead-out|-blank[=full]]
[-ssa[=none|default|max|XXXm]] /dev/dvd
DESCRIPTION
dvd+rw-format is a part of dvd+rw-tools suite and allows to format
virgin DVD+RW or BD media for the first use or blank already written
DVD-RW, DVD+RW and DVD+RAM media. It is not possible to format
CD-RW by dvd+rw-format, you can use cdrskin or wodim utility
instead, see section EXAMPLES.
A DVD-RW accepts two disc modes: the Sequential Recording and the
Restricted Overwrite. If a DVD-RW medium is in the later one, it
will behave much like DVD+RW. By default DVD-RW discs are in
Sequential Recording mode, but can be put into Restricted Overwrite
mode using dvd+rw-format when no options given.
Virgin DVD-RW can be directly written without the need of a format‐
ting operation, however a non-virgin DVD-RW in Sequential Recording
mode needs to be blanked before writing a new initial session. Since
a DVD-RW medium in the Restricted Overwrite mode behaves much like
DVD+RW, it can be written again without prior formatting the media.
Virgin BD and DVD+RW media need to be initally formatted prior
usage. Any-time later, growisofs program will take care of format‐
ting it automatically whenever appropriate, while further formatting
is not recommended, however it is possible.
OPTIONS
-force[=full]
Perform formatting even if the medium is formatted already.
This is not recommended for BD and DVD+RW media, since they
need to be formatted only once. Use -format=full to perform
full (lengthy) reformat in case of DVD-RAM or (lengthy) Full
Certification in case of BD-RE.
-lead-out
Relocates the lead-out next to outermost written sector as
well as makes sure there is no virgin surface before it. This
can make the medium more compatible with some DVD players.
Previously written data is not affected by this operation.
-blank[=full]
Wipe data from DVD-RW media. Blanking is used automatically
in case of BD and DVD+RW media. Use -blank=full to change
-ssa[=none|default|max|XXXm]
Grow, eliminate, reset to default or maximize Supplementary
Spare Area.
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 blank a CD-RW, you have to use another utility, e.g. wodim:
wodim blank=all -immed dev=/dev/cdrom
To blank a DVD-RW and put in the incremental sequential mode, run:
dvd+rw-format -blank=full /dev/dvd
To blank a DVD-RW and put in the Restricted Overwrite mode, run:
dvd+rw-format -force /dev/dvd
To blank a BD or DVD+RW, run:
growisofs -Z /dev/dvd=/dev/zero
To blank a DVD+RAM, you can use:
dd if=/dev/zero of=/dev/dvd
To relocate lead-out sector, run:
dvd+rw-format -lead-out /dev/dvd
NOTES
Note that DVD+RW re-formatting procedure does not substitute for
blanking. If you want to nullify the media, e.g. for privacy rea‐
sons, do it explicitly with 'growisofs -Z /dev/dvd=/dev/zero'.
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/.
AUTHORS
Andy Polyakov <appro@fy.chalmers.se> stands for programming and on-
line information.
This manpage is currently maintained by Honza Horak <hhorak@red‐
hat.com>.
LICENSE
dvd+rw-format is distributed under GNU GPL.
Reply to: