Dkopp user guide

introduction
concepts
first tryout  (1-page primer)
file menu
backup menu
verify menu
report menu
restore menu
DVD/BD menu
help menu
toolbar buttons
editing backup jobs
script files
large backup jobs
technical notes



Dkopp Introduction
Dkopp is a Linux utility program for copying files to recordable DVD or Blue-ray disk (BD). Dkopp is a free open source program licensed under the GNU General Public License v.3.

Three kinds of backup are available: full, incremental, and accumulate. A full backup copies all specified files and leaves no other files on the DVD/BD. An incremental backup adds only new or modified files to a prior dkopp copy, bringing it up to date. This is normally much faster than a full backup. Unmatched files on the DVD/BD are also deleted, so that the DVD/BD is left exacty matching the source files. An accumulate backup is like an incremental backup, but unmatched files are not deleted.

You select files to be copied using a GUI. You can navigate through the file system and select files or directories to include or exclude at any level in the hierarchy. These choices can be saved in a job file to automate recurring backups. If files are added or deleted within an included or excluded directory, the next dkopp run will include these changes automatically.

DVD/BDs can be verified three ways: full, incremental, and thorough. A full verify reads the entire DVD/BD and reports any files having read errors. An incremental verify reads only those files that have been newly written by a preceding incremental backup. This is usually much faster while still offering a high level of security. A thorough verify reads every file on the DVD/BD and makes a bytewise comparison with the corresponding disk files. This is normally unnecessary, but it provides an additional assurance that hardware and software are working correctly.

You can list all files in a backup job, or all files on a DVD/BD. You can search for specific files using wildcards. You can compare a DVD/BD with the corresponding backup job, listing all differences: files that have been created, deleted, or modified since the DVD/BD copy was made. This comparison can be done at three levels: a detailed list of files, a directory level summary, or a job level summary.

For disaster recovery or file transfer, dkopp has a file restore capability. You can select and restore DVD/BD files to their original directories or anywhere else.

An incremental backup updates a DVD/BD made with a prior full backup. This simplifies both backup and restore: you do not need to track full and incremental backup media, and you do not need to restore files from multiple media in correct sequence.

Searchable log files are generated with time/date, DVD/BD label, and files copied. You can search the log to find all DVD/BDs with copies of a desired file, using wildcards to simplify the search (e.g. find  */joeblow/*/planB* ).

A script file can be used to automate backups or run dkopp from a shell script. The GUI is not used in this case.

Incremental backup and verify can take less than a minute if the updated files are within 30 megabytes or so. For larger jobs, the DVD/BD speed determines the time required. With 4x DVD media, backup + verify runs about 150 megabytes per minute.

Dkopp is a graphical front end for the command-line programs growisofs and genisoimage. The added functionality is ease of use, espicially the easy way to specify the files to be copied.



Dkopp Concepts
The files in a backup job are specified with include and exclude statements. These have filespecs with optional wildcards placed almost anywhere. Examples:
   include /home/*                  # add user files
   include /root/*                  # add root files
   include /shared/*/documents/*    # add shared document files
   exclude */mp3/*                  # exclude files in mp3 directories
   exclude */.Trash/*               # exclude trash files

The first include adds all files owned by users in their home directories and sub-directories. The second include adds all files owned by root. The third include adds all files under the /shared  top directory that also have an intermediate directory named /documents. The two exclude statements exclude files within  /.Trash  and  /mp3  directories at any level.

GUI interface: The above statements are normally generated using a standard Gnome file selection dialog. The process is documented in the section on editing backup jobs.

file selection logic:
   loop:
       get next control statement. If no more, done.
       if include: add all matching files to backup file set.
       if exclude: remove all matching files from backup file set.
   loop-end

Note that excludes are effective only against prior includes. They have no effect on following includes, which are processed afterwards. See the section on editing backup jobs.

Restriction: include statements must include at least the first directory name (top-level) without wildcards (the GUI file-chooser does this automatically).

limitations:
    + max. 200,000 files in a backup job (compile time constant)
    + dkopp runs as root user (password is requested if not already root user)
    + supports DVD/BD media only (not CD media)
    + not useful for disk imaging (operating system backup)

After installing dkopp, please perform the first tryout exercise (below). This may be all you need at first (if you are like most people and RTFM is a bore). You can enhance your security and ultimately save time if you read this whole document.

License and Warranty
Dkopp is a free program licensed under the GNU General Public License, Version 3 (from the Free Software Foundation). Dkopp is not warranted for any purpose whatsoever, but if you find a bug, I will try to fix it.

Origin and Contact
Dkopp originates from the author's web site at
   
http://kornelix.com/dkopp  

Other web sites may offer it for download. Modifications could have been made.
If you have questions, suggestions or a bug to report, see:
   
http://kornelix.com/contact



Dkopp first tryout
The following short exercise will check that dkopp functions correctly on your system and help you become familiar with dkopp usage.

  1. Load a recordable DVD/BD and wait for the desktop icon to show up.

  2. Start dkopp (use the system menu or a terminal command: $ dkopp).
    Start as root user ($ sudo dkopp). If not, dkopp will request root user by itself.

  3. Select button: [ edit job ]

  4. Set the DVD/BD device ID (choose from list of available devices if more than one)

  5. Select full backup and full verify

  6. Erase the default backup job shown (select and delete, or use the  [ clear ]  button)

  7. Select the button  [ file chooser ]  at the bottom

  8. Navigate through the directories and select some files or directories to be copied
    + double-click a directory to open it and enable selection within that directory
    + select one or more files/directories, using left-mouse (or shift+left-mouse)
    + use the  [ include ]  button to include all selected items in the backup job
    + use the  [ exclude ]  button to exclude items previously included at a higher level
    + use the  [ include ]  button to include items previously excluded at a higher level
    + use the buttons at the top to go back up the directory hierarchy
    + use the  [ hidden ]  button to toggle the display of hidden files

  9. Select the  [ done ]  button when finished selecting files

  10. Inspect the generated include and exclude statements. These may be edited directly if desired (e.g. erase mistakes or redundancies, change the order, or make additions or revisions). Re-enter the file chooser dialog if wanted - new choices will be appended. Cycle between the editor and file chooser as much as needed

  11. Select button  [ OK ]  when done editing the job

  12. If errors are shown, select  [ edit job ]  and fix. Remember that exclude statements must follow relevant include statements - excludes are exceptions to prior includes, and includes may be exceptions to prior excludes.

  13. Select menu: Report > get backup files. Inspect the counts. Be sure the total byte count is within the DVD/BD capacity. Look for zero counts, indicating possible errors. Re-edit the job if needed.

  14. Select button: [ run job ]. The backup should begin.

  15. Verification should follow automatically. You will be asked to re-mount the DVD/BD.
    Check that the error count is zero when finished.

  16. Save the job file if desired: menu: File > save job

  17. Select button: [ quit ]  

  18. Next steps: play with incremental backups and reports




File Menu

open job

Open a previously saved backup job file for re-use (edit, run).
The default location for job files is /home/user/.dkopp (or /root/.dkopp).

open DVD/BD
Open the backup job file on the currently loaded DVD/BD.
This file was saved on the DVD/BD when the last backup job was run on that DVD/BD.

edit job
Opens an edit dialog for the current backup job (from the last job file opened, or from a prior edit).
If no file has been opened, internal default data will be used as a starting point.

show job
List the current backup job data and diagnose any errors.

save job
Save the current backup specifications in a job file.
Default is the same file that was last opened, but you may select any file.

run job
The current backup job is executed. Backup and verify modes are taken from the job.
Be sure to read the technical notes about DVD/BD mounting.

run DVD/BD
The backup job file stored on the DVD/BD is executed. Backup and verify modes are taken from the DVD/BD job. Whenever a backup is performed, the current job file (including any edits that were made) is copied to the DVD/BD.

Note: what is copied to the DVD/BD is the current job, not menu commands given manually. Thus, if you load a job file which specifies incremental backup, and then do a full backup using the menu command, the backup job stored on the DVD/BD will still specify incremental. To change the job written to the DVD/BD, edit the job before starting the backup.

quit
Exit program.



Backup Menu

full
The current backup file set is copied to the DVD/BD fully. All files are copied unconditionally. The DVD/BD is initialized to an empty status. For large jobs, additional DVD/BDs will be requested as needed. If growisofs aborts the job (declaring the DVD/BD to be "unknown type" or "not formatted"), the menu command  DVD/BD > format  may fix the problem. Be sure to read the technical notes about DVD/BD mounting.

Incremental
The current backup file set is copied to DVD/BD incrementally. New and modified files (since the DVD/BD was created or updated) are copied. Files that already match their corresponding disk files are not copied. Any "extra" DVD/BD files (not in the backup file set) are deleted. At the end, the DVD/BD is 100% identical to the backup file set, with the possible exception of files modified during the backup run. See the technical notes for more details about how matching files are recognized and skipped over.

accumulate
Same as incremental, but without DVD/BD file deletions.



Verify menu

full
All files on the DVD/BD are read and checked for errors. DVD/BDs need this extra level of protection, since poor media quality has been a problem. If errors are detected, clean off the fingerprints or discard the DVD/BD. If errors happen on more than 1% of your media, consider getting a new drive or changing media brands. Note that any CD or DVD or BD can be "full" verified - it does not have to be a dkopp backup disk.

incremental
New files on the DVD/BD are read and checked for errors. "New" means any files written by an immediately prior incremental or accumulate backup. Files not written are not checked.

thorough
All DVD/BD files are read and verified that there are no read errors. Those DVD/BD files that have a matching disk file (matching full path name and modification date/time) are bytewise compared to the disk file, and any files not matching are reported. There should be no differences. This verifies that all hardware and software (driver, file system, dkopp) are working correctly. DVD/BD files that are expected to be different (different mod times) are read and checked for errors, but not compared with the disk. Dkopp considers two files to have the same mod times if they differ by less than one second (the time resolution for files on DVD/BD media).

The following counts are reported at the end of the verify job:
     + total DVD/BD files and bytes
     + DVD/BD files having read errors (should be zero)
     + DVD/BD files having matching disk files (by name)
     + DVD/BD files having matching disk files (by name and mod time)
     + for the last category, the number of DVD/BD:disk compare errors (should be zero)



Report menu

get files for backup
The backup job include and exclude statements are listed, along with the file and byte counts that are added or removed by each statement. Look for zero counts, indicating a possible error. The disk directories are read and the list of files included in the backup job is saved in memory. This data is used to determine what files are different between the disk and DVD/BD and must be copied for an incremental backup. The file list is static and is not updated by disk activity. The list of "new" files that are checked with an incremental verify is also reset with this command.

diffs summary
Report the total number of files in each category:
   new             on disk, but not on the DVD/BD
   modified        on both, but not the same content
   deleted         on the DVD/BD, but not on disk
   unchanged       on both, with the same content

Differences between the disk and DVD/BD may be caused by disk updates (file additions, deletions, updates, or moves), or by changes to the job file itself.

diffs by directory
Each directory having differences between the disk and DVD/BD is reported, along with counts of new, modified, and deleted files. The total bytes for new and modified files is also given.

diffs by file
All files that are different between the disk and DVD/BD are listed in alphabetic sequence within groups for new, modified, and deleted files.

list files for backup
All files in the backup file set are listed in alphabetic sequence. Use this to check that the correct files are being backed-up.

list DVD/BD files
All files on the DVD/BD are listed in alphabetic sequence.

find files
Enter a search pattern with optional wildcards (e.g. /home/dir*name/file*name).  All matching file names on the disk (in the backup job file set) are listed. All matching file names on the DVD/BD are listed. All backup log files are also searched, and those containing the target file(s) are listed (by date / time and DVD/BD label). These files correspond to backup jobs, one-to-one. Use this method to locate all backup copies of a given file or group of files, sorted from oldest to newest. A file may be present in multiple log files for multiple incremental backups made to the same baseline full backup, but it actually exists only once on the DVD/BD, in its latest version.

view backup hist
All backup history log files are listed (up to 200). These correspond to backup jobs, one-to-one, and contain a list of files copied to the corresponding DVD/BD. The most recent 20 log files are put into a dialog for selection. Select one of these from the dropdown list, or modify the input to select an older file. The text editor gedit is invoked to display the log file. You can page up and down and search for strings using gedit.

Backup log file names are formatted as follows:  dkopp-hist-yyyymmdd-hhmm-label
Note that one DVD/BD having a full backup and one or more incremental backups will have a log file for each backup, showing those files copied for each backup. A file may be present in multiple log files for multiple incremental backups made to the same baseline full backup, but it actually exists only once on the DVD/BD, in its latest version.

save screen
The main window, where messages and reports are written, is saved in an ordinary text file.



Restore menu

setup DVD/BD restore
Specify the copy-from location (on the DVD/BD), the copy-to location (on disk), and the files to be restored. The copy-from location is the topmost DVD/BD directory of a tree of files to be restored.
  example:  /home/joeblow/documents    # note that mount point is omitted
The copy-to location is an existing disk directory where the tree of files will be copied-to.
  example 1:  /home/joeblow/documents
  example 2:  /home/joeblow/documents/restored

In example 1, the restored files will go back to the same place they were when backed-up. In example 2, they will go to a new place.

Files to be restored are specified the same way as in a backup job (see the section below on using the file selection dialog). Use the button  [ file chooser ]  to start the dialog.

If you need to restore multiple trees of files, you can do this in multiple runs, or you can simply begin the tree at a higher level and use the file selection dialog to specify multiple sub-trees.

list restore files
After performing the setup, use this function to list all matching files on the DVD/BD that will be restored, exactly where they will be restored. You should check this list carefully to be sure you are restoring the correct files to the intended locations.

restore files
When you are satisfied with the restore job specification, use this menu to perform the restore. You will see a running log of the activity. Use the kill button to stop the job if desired.



DVD/BD menu

set DVD/BD device
The DVD/BD device and mount point may be set independently of the backup job. The DVD/BD device and mount point for the current backup job is modified. No mounting is done.

set DVD/BD label
Set the DVD/BD label that will be used for a subsequent backup job. The default is to keep the same label that the DVD/BD already has. The DVD/BD mount command will show this label. If no label is assigned, "dkopp" is used.

mount DVD/BD
Mount a DVD/BD. You are asked to insert a DVD/BD and wait for the mount to complete. If the mounted DVD/BD has been used for dkopp before, the date-time of the last backup to this DVD/BD is displayed. Be sure to read the technical notes about DVD/BD mounting.

eject DVD/BD
The DVD/BD is unmounted and ejected.

reset DVD/BD
This does a hardware reset to the DVD/BD drive. This is sometimes useful if a drive gets locked-up and cannot be ejected using either the dkopp eject command or the tray button. This sometimes happens when there is a DVD/BD error or a backup is killed in mid-process. This may or may not work. If the DVD/BD drive remains hung after several minutes, the only resort is a reboot.

erase DVD/BD
Writes zeros to the entire DVD/BD surface. This takes 10+ minutes, depending on the DVD/BD drive speed and medium. This works only for rewritable media (DVD+RW or DVD-RW or BD-RE). DVD-R and BD-R media are write-once and cannot be erased. See the technical notes below for more about privacy and data protection.

format DVD/BD
This uses the dvd+rw-format utility to format a disk in a few minutes. The entire DVD/BD is not erased. See the technical notes below for more about privacy and data protection. If Backup > full refuses to start, this format command may fix the problem.



Help menu

contents
Display the help file (this file).

about
Display the dkopp program version and date.



Toolbar buttons

root
This button restarts dkopp with root privileges if your password (sudo) is correct.

edit job

Shortcut to the backup job editor (same as menu File > edit job)

run job  and  run DVD/BD
The current job, or the job on the DVD/BD, is executed.
Be sure to read the technical notes about DVD/BD mounting.


pause  and  resume
The currently running job or menu function may be paused and resumed.
Use this to inspect output on the fly.

kill job
The currently running function is killed. You may need to wait a while for the function to die and screen output to cease. If a backup job is killed, growisofs will gracefully exit in a few seconds, leaving the DVD/BD in an undetermined status.

clear
The main window, where messages and reports are written, is cleared.

quit
Exit the application. If the job file has been edited and not saved, you will be given an opportunity to save the changes.




Editing backup jobs (see screenshot below)

Select menu: File > edit job  or button: edit job

Fill-in the following items in the dialog box:

  DVD/BD device    /dev/sr0
  capacity GB      4.0
  write speed      4  (x 1.38 MB/sec)
  backup mode      check full / incremental / accumulate
  verify mode      check full / incremental / thorough
  file date from   leave default (1970.01.01) or input a later date


Select the DVD/BD device from the drop-down list of available devices. The DVD/BD capacity may be set from 1.0 to 50 GB (for double layer Blue-ray media). Full backups will be limited to this amount. The default of 4.0 GB leaves a leftover space of about 0.7 GB for incremental updates. See the technical notes for more details about this. Write speed is the speed factor to use for writing the DVD/BD medium. This is the "2x" or "4x" rating shown on the DVD/BD. Leave this blank or zero to use the default speed. You may select a lower speed than the default if needed to increase reliability (i.e. if the verify function reports errors). I have never needed this, but others have reported that some media and drive combinations are not reliable at the rated speed. "file date from" is an additional method for selecting files to copy. Files with a create or modification date older than this will be ignored.

File selection dialog
You may edit the backup file set (the include and exclude statements) directly in the text window. You may also use the [browse] button to get a standard file selection dialog, with additional buttons: hidden, include, exclude. The [hidden] button toggles the display of hidden files (file names with leading dots, like .gnome). Select one or more directories or files, using left-mouse or shift+left-mouse, then press the [include] or [exclude] button. The selected files/directories will be written into the text window as include or exclude statements. If you select a directory, the entry is modified to add a wildcard at the next level:
       selecting directory  /aaa/bbb/ccc   →   include /aaa/bbb/ccc/*

You may alternate between editing the text window and using the file-chooser dialog. When you are done, press [done] to accept. The include/exclude data will be validated to the extent possible. Go back and re-edit to fix any problems. To change the sequence, cut and paste in the text window. When you are done, use the report functions "get backup files" and "list backup files" to  verify that you have the correct files!

The include and exclude control statements allow precise control of the backup file set:
  include /aaa/bbb/*             # include file tree under /aaa/bbb/
  exclude /aaa/bbb/ccc/*         # exception: exclude /ccc/ subtree
  include /aaa/bbb/ccc/xxx.yyy   # exception: include file /ccc/xxx.yyy

The file-chooser dialog may be used to quickly converge on the desired results. The editor may also be used to make adjustments.

Because of wildcards, newly added files within the scope of existing include or exclude filespecs are automatically comprehended. In the above example, if a new file is added somewhere within the /aaa/bbb/ tree, it will be automatically included in the next backup job, unless of course it is in the excluded  /aaa/bbb/ccc/  subtree.

The  file > edit job  menu command (or toolbar button) pops up the middle box. This can be edited directly: click anywhere in the text area and start writing. The right box is the choose files dialog, which is started with the [browse] button. Choose files using the right box, and the middle box records your choices. You can navigate around the directory hierarchy and select any number of files or directories. The [hidden] button toggles the display of hidden files. Click the [include] or [exclude] button to get the selected files added to or removed from the backup list. Selecting a directory is an implied selection of all contained files, thus the selection appears as  directory/*  in the list of selected files. To make an exception, go down one level, choose files, and select the opposite [include] or [exclude] button. You can refine the file selections manually if desired. It is sometimes handy to use wildcards in the directories to make more general and compact selection criteria, e.g. 
   exclude *thunderbird*/Trash* 
will omit trashed mail even if the overlying directories change (they do) and even for multiple users (the leading wildcard includes "/home/*").


You can add comments, or disable an include / exclude line, by putting  #  in column 1.



Script Files

A script is a text file with a series of commands that can be run as a batch job. All dkopp menu commands can be scripted.


The format of the records in the script file is as follows:
   menu1 > menu2 > parameter    # comment
The menu names must match the interactive menu names exactly, including case.

To run a script file:   $ dkopp -script /pathname/scriptfile

You can also add the option  -nogui  for deferred execution. Dkopp will not create a window or ask for any inputs in this mode. You must leave a DVD/BD in the drive for dkopp to use later.

Here is a sample script file to get you familiar with the possibilities:
   File > open job > jobfile1
   Report > get backup files
   DVD/BD > mount DVD/BD
   Report > differences-detail        # report changed files
   Backup > incremental               # back them up
   Verify > full                      # verify all files
   Report > differences-counts        # should be zero
   File > save screen > dkopp.log     # save a log file
   DVD/BD > eject DVD/BD
   File > quit

The toolbar buttons may also be used, e.g.  
     button > pause    # press resume to continue
At this point you may use the menu interactively and then resume the script by pressing the resume button.

The command  exit  may be used to end the script file and return to interactive mode.
Script file EOF does the same thing.



Large Backup Jobs (more than one DVD/BD)

A full backup may be larger than one DVD/BD, and you will be asked to load additional DVD/BDs as needed. If a job is being run (rather than the menu backup > full) each DVD/BD will be verified (if specified in the job) before the next DVD/BD is requested. An attempt is made to fit all files derived from a single include  statement on the same DVD/BD, if possible. This allocation is made after excluded files have been removed from the backup file set. The job file written to each DVD/BD reflects the files actually copied to that DVD/BD, so that subsequent incremental updates may be done individually on each DVD/BD, e.g. as follows:

     File > open DVD/BD
     Backup > incremental
     Verify > incremental
Note that if an include statement is too big to fit on one DVD/BD, this strategy will not work as expected. The backup job file on the first DVD/BD will have the big include statement, but additional DVD/BDs used for this same include will not. If possible, break up the large include statement into smaller ones.



Technical Notes

Mounting DVD/BD media: Starting with v.6.4, dkopp no longer mounts DVD/BD disc itself, but outputs a popup message asking the user to do this. Insert the disc, wait for the desktop icon to show up, and then press the [OK] button in the popup dialog. The appearance of the desktop icon may or may not mean that the disc is actually mounted (this varies in the systems I test with). If dkopp responds with "waiting for mount ...", click the desktop icon to encourage the window manager to mount the disc. This change was made to relieve dkopp of the need to understand what Gnome and other window managers do about DVD/BD disc mounting.

DVD mount errors and growisofs errors: There are many of these, and they change with each new release of the kernel, Gnome, and growisofs (the command-line program used to write the DVD/BD). Often they are bogus errors that are not really errors, or they are temporary errors that will go away when the operation is tried again. Dkopp is unable to distinguish the difference. In the case of a full backup, the user is given a popup dialog with the options to abort the job, retry the full backup, or ignore the error and continue. If the backup job did not even get started, use retry. If the backup job seems to have completed, use ignore. Verify will detect later if any error actually happened.

Blank DVD/BDs: the first time a DVD/BD is used, do a full backup. A blank DVD/BD will not mount, but a full backup will still work and make the DVD/BD mountable thereafter.

Flakey DVD/BDs: drive and media combinations sometimes have compatibility problems, resulting in media errors. The newest drives (2006 and later) are much better at adjusting to media variations. I have had a few DVDs (<1%) that passed a dkopp verify and then became unreadable later, so make regular backups and avoid depending on a single DVD/BD.

Media errors: If the dkopp verify function runs into a read error, the DVD/BD drive may lock-up for a minute or more while retrying the failed read hundreds of times. Give the "kill" command and wait for the drive to give up. If the DVD/BD is dirty, clean it and try again. Otherwise throw it out.

Privacy and data protection: to protect your private data on discarded DVD/BDs, you should destroy them. A few seconds in a microwave oven will completely destroy the metallic recording layer (with spectacular visual effects). Do not inhale the fumes.

Command line arguments:
  $ dkopp -job jobfile                    # load job file
  $ dkopp  jobfile                        # load job file
  $ dkopp -run jobfile                    # load job file and run it
  $ dkopp -script scriptfile              # run script file
  $ dkopp -nogui -run jobfile             # run job in non-GUI mode

 
The -run and -script commands are intended for shell scripts. The -job command is more useful for a desktop launcher, leaving the user free to elect the backup mode or make other changes in the job before execution. If the jobfile name contains blanks, quotes are required, e.g.
   
$ dkopp -job "my dkopp job"

The -nogui option will prevent dkopp from opening a window or asking for any interactive inputs. Use this for deferred operation (batch job). You must leave a DVD/BD in the drive for dkopp/growisofs to use.

Deleted DVD/BD files: growisofs is used to perform the file copies. It can replace existing DVD/BD files with new versions, but it does not delete files. For incremental backups, dkopp replaces deleted files with null files (zero length). Full backups do not have this issue, since the DVD/BD is initialized. If you recover files from a dkopp DVD/BD using a shell copy command with wildcards, or Nautilus drag-and-drop of an entire directory, you may get unwanted null files. If this happens, it is easy to get rid of them like this:
     
$ rm -i $(find /dir1/.../dirN -empty)
(remove all empty files in a directory tree, with confirmation of each)
Note that if you use dkopp restore, these null files are invisible and are not restored.

Incremental backups: a DVD/BD file is considered identical to its corresponding disk file if their lengths and modification times are the same. Incremental backups exclude such files. If the modification times differ by less than 1 second they are considered equal (another way to look at this issue: file backup times may be wrong by up to 1 second). A thorough verify will read and compare the files unconditionally. File mod times on DVD/BD media have a 1 second resolution.

File names containing "=":  genisoimage requires that "=" in file names be replaced with "\=". The file-chooser dialog in dkopp file restore shows "\=" instead of "=", but the files will be correctly restored with "=" only.

Restoring file owner and permissions: The file system used for DVD/BD media does not support file owner and permissions, so dkopp writes a special file to the DVD/BD with this data. Restored files have original owner and permissions.

Special dkopp files on DVD/BD:
Directory
/dkopp-data is written to the DVD/BD with three files:
     datetime        backup date-time and DVD/BD usage count
     filepoop         owner and permissions for all backed-up files and directories
     jobfile            a copy of the backup job specs last used on this DVD/BD
These are ordinary text files which you can view with an editor.

Special file types: pipes, devices, and sockets are not copied. Symlinks are copied as such. Both symlinks and their targets should be included in the backup or restore file set, since it makes no sense to copy one without the other. This normally happens by default, since symlinks typically link to files in the same directory. Symlinks are used commonly in system directories and in the hidden system files within a /home/user directory. For user files, there is no need for them.

Killing growisofs (killing a backup job in progress): this will sometimes leave the DVD/BD in a condition that growisofs refuses to deal with. If you decide to abort a backup job (e.g. to revise the job specs and start over), you may get this condition. You should retry a full backup on this DVD/BD. If growisofs still refuses, format the DVD/BD (dkopp menu), then try the full backup job again.

Duplicate files: If job file "include" statements overlap, resulting in duplicate files in the backup set, this is reported and the backup is terminated.

Microsoft Windows: DVD/BDs created with dkopp use the standard ISO-9660 file system, which can be read by Windows.

DVD/BD drive and media information: here are two useful commands:
  $ udevinfo -q all -n /dev/dvd      # DVD/BD drive information
 
$ dvd+rw-mediainfo /dev/dvd        # DVD/BD media information

Incremental backups: new and updated files are written to a new "session" on the DVD/BD, along with new directory files which may reference data files in both the old and new sessions. Nothing is changed in the old sessions. Thus, incremental backups consume more space on the DVD/BD even if the corresponding disk files are not any bigger. For DVD+R, DVD-R and BD-R media (write once), only one full backup may be made, and as many incremental backups as can fit in the remaining space. For DVD+RW, DVD-RW and BD-RE media (rewritable), a new full backup will initialize the DVD/BD and recover all space. These DVD/BDs can be used until they wear out. I have exceeded 100 uses on a test DVD+RW medium and it still works fine.

Growisofs progress tracking: Growisofs (genisoimage) outputs a "% done" value every few megabytes. Dkopp uses this number to compute the current position in the list of files to be copied, and the resulting file is echoed to the main window. The update frequency is typically less than once per file, so some file names will be bypassed. Large files may stay on the screen for several update cycles. For full backups, the math is straightforward. For incremental backups, growisofs starts off with:
       % done = 100 * (initial DVD/BD bytes used) / (final DVD/BD bytes used)
Dkopp assigns this value to the first file in the backup list. The last file is assigned 100%, and the rest are interpolated using accumulated bytes.

Linux error codes: Linux error codes can be misleading. If an attempt is made to open a file that is already open and therefore locked, the error code translates to "no such file or directory". The error codes are the same for an attempt to mount an empty tray or a corrupted DVD/BD. The same is true for an attempt to mount a DVD/BD that is already mounted, or a blank DVD/BD. Dkopp outputs messages of its own that mention the multiple possibilities. Hopefully this will improve over time.

Backup history files: A history file is generated for every backup job run.
     location:      /home/username/.dkopp/   (or)   /root/.dkopp/  
     file name:    dkopp-hist-yyyymmdd-hhmm-label
The file name corresponds to the date and time of the backup and the DVD/BD label. A history file contains a list of all the files copied to that DVD/BD at that time. Thus, a DVD/BD used for a full backup and two incremental backups will have three corresponding history files, each one containing those files copied by the respective backup job. A full backup spanning multiple DVD/BDs will have multiple history files, one per DVD/BD. History files accumulate and are not automatically deleted. When 200 files are reached, the find files and view backup history reports produce warnings. Delete the oldest files or move them elsewhere. The 200 limit is a compile time constant: maxhist. This could be set much higher if desired (and if you have so many DVD/BDs before you re-use them).

DVD/BD label: The menu  DVD/BD > set DVD/BD label  is for an optional DVD/BD label input, which you can use as part of your media management system. A subsequent backup job will write this label to the DVD/BD, and the DVD/BD mount command will show the label. Recommendation: for full backups, set the label to match what is written on the DVD/BD (with a soft pen). For incremental backups, leave the label unchanged.

genisoimage errors: If a disk file is deleted after growisofs begins, the DVD/BD will be defective: directory entries for the missing files and all following files will point to garbage (which may even be readable). The error reported by genisoimage is ignored by growisofs. Dkopp scans growisofs output for the ignored errors and un-ignores them.

DVD/BD media types:
   DVD+RW      good for many (hundreds?) of full and incremental backups
   DVD-RW      good for many (hundreds?) of full and incremental backups
   DVD+R       good for one full and many incremental backups
   DVD-R       good for one full and many incremental backups
   DVD-RAM     good for many (thousands?) of full and incremental backups
               (perportedly the most reliable media)
   BD-R        good for one full and many incremental backups
   BD-RE       good for many (?) full and incremental backups