How to create a multisession DVD-R.

For data backups to a DVD-R, you can use the growisofs command to write data to the disk and then add more data later.

Note: Do not use the -dvd-compat option because it fixates the disk.

To add to blank media

growisofs -Z /dev/dvd -R -J -V [volume label] [/whatever/files]

To append

growisofs -M /dev/dvd -R -J -V [volume label] [/whatever/files]

Example

For backups, I use the dar command to create an initial full archive on the first of the month, then differential archives daily.

So, on the first of the month I'd do the following to write the full archive (using July in this example):

growisofs -Z /dev/dvd -R -J -V steph-07-2007 /mnt/backups/steph-01-07-2007.dar

Then on every other day of the month I'd do the following to write the differential backup (using the 23rd July in this example):

growisofs -M /dev/dvd -R -J -V steph-07-2007 /mnt/backups/steph-23-07-2007.diff.dar

Modified existing files

It seems that modifications to files that have already been burnt are applied. So, you can burn the contents of a directory using the -Z switch, modify the files or add new ones, then burn again with the -M switch to apply the changes.

The tests I did to confirm is as follows:

steph@localhost ~ $ mkdir testdir
steph@localhost ~ $ echo "testing testing 123" > testdir/test1.txt
steph@localhost ~ $ echo "testing testing 234" > testdir/test2.txt
steph@localhost ~ $ growisofs -Z /dev/dvd -R -J -V test testdir/*.txt
Executing 'mkisofs -R -J -V test testdir/test1.txt testdir/test2.txt | builtin_dd of=/dev/dvd obs=32k seek=0'
Total translation table size: 0
Total rockridge attributes bytes: 331
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 21000
183 extents written (0 MB)
/dev/dvd: "Current Write Speed" is 8.2x1352KBps.
builtin_dd: 192*2KB out @ average 0.3x1352KBps
/dev/dvd: flushing cache
/dev/dvd: closing track
/dev/dvd: closing session
steph@localhost ~ $ mount /mnt/dvd
steph@localhost ~ $ cat /mnt/dvd/test1.txt 
testing testing 123
steph@localhost ~ $ cat /mnt/dvd/test2.txt 
testing testing 234
steph@localhost ~ $ umount /mnt/dvd
steph@localhost ~ $ echo "testing testing 345" > testdir/test3.txt
steph@localhost ~ $ echo "testing testing 456" > testdir/test4.txt
steph@localhost ~ $ growisofs -M /dev/dvd -R -J -V test testdir/*.txt
Executing 'mkisofs -C 16,2240 -M /dev/fd/3 -R -J -V test testdir/test1.txt testdir/test2.txt testdir/test3.txt testdir/test4.txt | builtin_dd of=/dev/dvd obs=32k seek=140'
Rock Ridge signatures found
Total translation table size: 0
Total rockridge attributes bytes: 493
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
2423 extents written (4 MB)
/dev/dvd: "Current Write Speed" is 8.2x1352KBps.
builtin_dd: 192*2KB out @ average infx1352KBps
/dev/dvd: flushing cache
/dev/dvd: closing track
/dev/dvd: closing session
steph@localhost ~ $ mount /mnt/dvd
steph@localhost ~ $ ls /mnt/dvd
test1.txt  test2.txt  test3.txt  test4.txt
steph@localhost ~ $ cat /mnt/dvd/test3.txt 
testing testing 345
steph@localhost ~ $ cat /mnt/dvd/test4.txt 
testing testing 456
steph@localhost ~ $ umount /mnt/dvd
steph@localhost ~ $ echo "EDITED testing testing 234" > testdir/test2.txt 
steph@localhost ~ $ echo "testing testing 567" > testdir/test5.txt
steph@localhost ~ $ growisofs -M /dev/dvd -R -J -V test testdir/*.txt
Executing 'mkisofs -C 2256,4480 -M /dev/fd/3 -R -J -V test testdir/test1.txt testdir/test2.txt testdir/test3.txt testdir/test4.txt testdir/test5.txt | builtin_dd of=/dev/dvd obs=32k seek=280'
Rock Ridge signatures found
Total translation table size: 0
Total rockridge attributes bytes: 574
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
4663 extents written (9 MB)
/dev/dvd: "Current Write Speed" is 8.2x1352KBps.
builtin_dd: 192*2KB out @ average infx1352KBps
/dev/dvd: flushing cache
/dev/dvd: closing track
/dev/dvd: closing session
steph@localhost ~ $ mount /mnt/dvd
steph@localhost ~ $ ls /mnt/dvd
test1.txt  test2.txt  test3.txt  test4.txt  test5.txt
steph@localhost ~ $ cat /mnt/dvd/test5.txt 
testing testing 567
steph@localhost ~ $ cat /mnt/dvd/test2.txt 
EDITED testing testing 234
steph@localhost ~ $ umount /mnt/dvd 

Last modified: 28/05/2008 Tags: (none)

This website is a personal resource. Nothing here is guaranteed correct or complete, so use at your own risk and try not to delete the Internet. -Stephan

Site Info

Privacy policy

Go to top