Command line tools for burning and cataloging data CD/DVD/BD and audio CDs
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
man + burn(1): missing --filecheck in man. Nov 18, 2013
tools # - strip-cl, tool for SVN changelog processing. Mar 25, 2013
LICENSE #added LICENSE and license stuff into executable Jun 16, 2004
Makefile # Upload to Savannah via scp, as ftp doesn't work now. Mar 23, 2013
TODO # Updated TODO. Apr 4, 2013
burna # Interpolate variables contained in mkatrc(5) variables. Mar 22, 2013
mkata # Interpolate mkatrc(5) variables in burna(1) and mkata(1). Mar 22, 2013



MKAT is a set of command line tools to burn and catalog data CD/DVD/BD, audio CD
or arbitrary directories and then search the catalog database. Catalog tools are
mkat and mkata, burn tools are burn and burna, with trailing `a' standing for

burn(1) uses genisoimage to create iso image and wodim/growisofs to burn
CD/DVD/BD. It has options that allow to pass arguments to image making, burning
and cataloging programs. In principle, it's possible to redefine
CD_OPTS/DVD_OPTS and CD_BURN_CMD/DVD_BURN_CMD in one of the config files to use
other programs. See burn(1) code for *_OPTS definition.

These commands were made because I was tired of specifying parameters to
genisoimage and wodim, and I also wanted a database of my disk collection that
could be simple, easy to read and searchable with grep.

NOTE: I use autofs to mount a disc for checking and cataloging. Actually, I just
don't mount it explicitly and eject after sleeping $AUTOFS_DELAY seconds.  Set
unmount timeout for autofs to an appropriate number of seconds or the disk won't
eject after everything's done (because it still will be mounted by autofs).

Also, as it's useful to look at created iso image before burning, I have the
following lines in my /etc/auto.misc:
iso             -fstype=iso9660,ro,sync,nodev,nosuid,loop :/home/ledestin/cdimage.iso
cd              -fstype=iso9660,ro,sync,nodev,nosuid,speed=32   :/dev/sr0

I also have a symlink:
lrwxrwxrwx    1 root     root           17 2004-04-21 13:13 /misc -> /var/autofs/misc/
so I can just say `ls /misc/iso' and see the contents of the iso image or the


dpkg -i mkat_0.5-1_all.deb
apt-get -f install

Non-Debian (tarball):
`make install' and `make uninstall'

MKAT depends on wodim, dvd+rw-tools, genisoimage, sed, awk, dotlockfile,
realpath, cdparanoia, cd-discid present, the last two only required for working
with audio CDs.

burn(1) depends on wodim, dvd+rw-tools, dotlockfile exclusively, so 
if you don't intend to use it, no need for them. The same thing goes for
burna(1) and cdparanoia.


/etc/mkatrc and ~/.mkatrc are sourced by the tools in that order,
~/.mkatrc settings override global settings from /etc/mkatrc.

Both tarball and deb installers recognize ###CUSTOM SECTION string as the end of
the default section. New options supplied with default config are written into
default options and locally modified part is written after the defaults this way
the defaults can be easily overrided.

On a Debian system I use debconf and a config will be created automatically
after you answer questions. But if you install from a tarball you need to
edit config file before running anything. I provide a sample config file 
in examples/mkatrc, which is copied to /etc/mkatrc on install.

See manual page mkatrc(5) for more info on configuration.


mkat creates a file in $LISTDIR (see mkatrc(5)) named after disk label with
first line being the label and the consecutive lines listing disc contents,
FMP2 1-4

That is, a file description consists of the file name, size, md5 sum.


If you wish to categorize your collection, use tags like 'movie', 'anime',
'comedy', 'adventure', etc. (e.g.,114,tzoabg,cowboy_bebop.html).

You can specify tags when burning:
burn '-m-t anime,comedy,adventure' 'Cowboy Bebop' .

Or, when you wish to catalog already burned:
mkat -t anime,comedy,adventure

Or, if you have a .list file already, edit it, adding "tags: anime comedy
adventure" as the *SECOND* line:
$vi ~/.mkat/Cowboy\ Bebop.list

`mkat -S anime' will print all list files with the `anime' tag,
`mkat -S movie,romance' will print files containing both `movie' and
`romance' tags.

List existing tags with `mkat -a'.


This project's deliverables are hosted at

Git repository:


You are welcome to conctact me at


MKAT is released under GPL, see LICENSE for more info.

/Dmitry Maksyoma <>, Sat, 23 Mar 2013 09:28:58 +1300

Copyright 2004, 2005, 2013  Dmitry Maksyoma
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.