Writing/Burning a data CD-R/DVD-R or DVD+RW in Unix/Linux -

Writing/Burning a data CD-R/DVD-R or DVD+RW in Unix/Linux

There's a lot of outdated information and confusion for system administrator's out there.

One annoying task for many an Administrator has been backing up data in Linux.  You don't need any GUI tools such as K3B or GnomeBaker.  Both are excellent tools but for veteran command line users working remotely, using the keyboard is a great and possibly automated way to save yourself pain and hassle.

At a later date we'll cover how scripting can automatically backup certain files to disc, verify them, catalogue them and even e-mail a report of the whole thing nightly or weekly.  It can even remind you the night before to make sure a blank disc has been inserted.


You'll need dvd+rw-tools.

On Debian variants including Ubuntu you would run:

apt-get install dvd+rw-tools

On Redhat Enterprise / Centos you would run:

yum install dvd+rw-tools

In Unix it would probably be the same port/package name, especially on FreeBSD.

No drivers or anything else are required at this point.

Now for the burning.

There are two ways of doing it, the traditional way is creating an iso image using mkisofs, but that is a pain and not even a possibility for some overfilled disk systems.  Many people believe there is no way to write on the fly, except to create an ISO with the data you'd like to burn.

Here's the tradtional way just for the sake of the oldschool:

mkisofs -r -o /root/myisoname.iso /var/www/vhosts

Now we use growisofs to actually burn the .iso:

growisofs -Z /dev/dvd1=/root/myisoname.iso

*Replace /dev/dvd1 with the device name of your burner

Watch as it burns:

   52887552/367337472 (14.4%) @3.9x, remaining 0:59 RBU 100.0% UBU  61.2%
   71925760/367337472 (19.6%) @4.1x, remaining 0:53 RBU 100.0% UBU  55.1%
   90112000/367337472 (24.5%) @3.9x, remaining 0:49 RBU 100.0% UBU  59.2%
  108363776/367337472 (29.5%) @4.0x, remaining 0:47 RBU  99.6% UBU  53.1%
  127303680/367337472 (34.7%) @4.1x, remaining 0:43 RBU 100.0% UBU  55.1%
  145555456/367337472 (39.6%) @4.0x, remaining 0:39 RBU 100.0% UBU  51.0%
  164265984/367337472 (44.7%) @4.1x, remaining 0:37 RBU  99.6% UBU  53.1%
  182779904/367337472 (49.8%) @4.0x, remaining 0:33 RBU 100.0% UBU  55.1%
  200900608/367337472 (54.7%) @3.9x, remaining 0:29 RBU 100.0% UBU  61.2%
  219971584/367337472 (59.9%) @4.1x, remaining 0:26 RBU  97.3% UBU  53.1%
  238157824/367337472 (64.8%) @3.9x, remaining 0:23 RBU 100.0% UBU  57.1%

The Sensible Way

There's no reason to use mkisofs and create an isofile, it wastes time and resources.

You could have just done this:

growisofs -M /dev/dvd1 -R -J /var/www/vhosts

*-R and -J are for Rockridge and Joliet extensions so you don't get annoying 8-character long, truncated filenames


*Actually my preferred way is this:

growisofs -M /dev/dvd1 -R -J -joliet-long -iso-level 3 /filenordir/name

-joliet-long gives you much longer filenames

-iso-level 3 helps too

This is the perfect setup, in both Linux, Windows and a DVD Player the filenames are shown as expected.

  • PHP Migration from 5.3 to 5.4+ and dealing with deprecated functions
  • ffmpeg vidstab to stabilize video
  • userdel user userdel: cannot lock /etc/passwd; try again later.
  • mdadm how to mount inactive array
  • How to find and mount mdadm arrays automatically
  • M2Crypto.SSL.Checker.WrongHost: Peer certificate subjectAltName does not match host, expected fedora-archive.ip-connect.vn.ua, got DNS:mirror.ip-connect.vn.ua
  • [Wed Sep 20 15:34:44 2017] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Wed Sep 20 15:34:44 2017] [error] Init: Unable to read server certificate from file /www/ssl-certs/server.crt [Wed Sep 20 15:34:44 2017] [error] SSL Library Err
  • linux how to answer yes to copy
  • linux cp and mv will not overwrite due to alias!
  • ERROR 2006 (HY000) at line 567: MySQL server has gone away
  • vbulletin 4.2.5 after upgrading from 3.6 white screen fatal php errors
  • iptables v1.4.7: can't initialize iptables table `NAT': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.
  • Linux and FreeBSD how to set time and date
  • FreeBSD/OpenBSD OpenVPN Client error "Cannot allocate TUN/TAP dev dynamically"
  • kdenlive - No LADSPA plugins were found! Check your LADSPA_PATH environment variable. [producer_xml] failed to load transition "qtblend"
  • /usr/bin/supermin-helper exited with error status 1. To see full error messages you may need to enable debugging. See http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs at /usr/bin/virt-list-partitions line 177.
  • Linux Unable to mount cifs/smb share in /etc/fstab
  • MySQL: table is marked as crashed solultion
  • bash Linux how to get first or last letters of a word
  • l2tp ipsec VPN Error Sep 12 18:16:25 vps pluto[7299]: ERROR: asynchronous network error report on eth0 (sport=500) for message to port 20640, complainant Connection refused [errno 111, origin ICMP type 3 code 3 (not authenticated