This article will show how you can burn a pure UDF filesystem to a bluray disc. After many failed attempts, I found the following set of commands never failed to make a proper disc.
UDF is able to overcome many shortcomings over previous ISO file systems, things like file path length, individual file size and so on. It's also compatible across all modern operating systems. For example, if you're a mac user, who needs to burn a dvd/bluray for someone on Windows, the following tools will work for you as well. Note that you will be on your own for figuring out how to install them.
You will need the following packages:
mkudffscommand for generating a UDF filesystem
losetupWhich should be a part of your Linux distro by default
cdrtoolds-3.01You won't be able to get this package from your distribution if you're running Debian/Ubuntu. See instructions below for where to get it.
Create the disc image
> truncate -s 25GB MYBLURAY-DISC.udf > mkudffs MYBLURAY-DISC.udf start=0, blocks=16, type=RESERVED start=16, blocks=3, type=VRS start=19, blocks=237, type=USPACE start=256, blocks=1, type=ANCHOR start=257, blocks=16, type=PVDS start=273, blocks=1, type=LVID start=274, blocks=12206500, type=PSPACE start=12206774, blocks=1, type=ANCHOR start=12206775, blocks=239, type=USPACE start=12207014, blocks=16, type=RVDS start=12207030, blocks=1, type=ANCHOR
The truncate command as used above creates an empty file of the right size for
us to work with immediately. The command
mkudffs can take an image as an
argument and set it up for mounting right away, no need to attach the image as
a block device first.
mkudffs will name the image "LinuxUDF" on mount, to change this,
add the additional argument:
> mkudffs --vid="My Label" MYBLURAY-DISC.udf
In order to put files onto the image you just created, you attach it to a logical block device.
> sudo losetup -f MYBLURAY-DISC.udf
Now the disc should immediately be available under your file manager. If your file manager doesn't detect the block device then mount it manually.
First check which block device the image is attached to:
> sudo losetup -a /dev/loop0: :7 (/mypath/MYBLURAY-DISC.udf)
Then use the mount command as you normally would. You don't actually need the
-o loop mount option, since it has already been attached to a loop device
> sudo mount /dev/loop0 /mnt
Now you write the files/folders you want to the mounted directory. The great thing about this is the fixed size of the image, you won't accidentally make it too large to be burned to disc.
When you finish adding files, you MUST REMEMBER TO DISMOUNT THE FILESYSTEM AND DETACH THE DISC. Failure to do so will corrupt your data. If you mounted to image through your file manager, just press the eject button, otherwise simply:
> sudo umount /dev/loop0
Then you need to detach the loop device with:
> sudo losetup -d /dev/loop0
You can now proceed to actually burning the data to disc.
Burning the image with cdrecord
Getting the latest cdrecord
Here is where things become a little complicated. As of late there has been some controversy within the Debian/Ubuntu communities regarding the license chosen by Jörg Schilling, author of cdrecord and related tools. You can read up on it on Schilling's site.
You will need to the latest version of cdrecord to reliably burn with bluray drives, and the only way to really do this is to compile from source. If you search around, you might also be able to find a pre compiled version for your distribution, such as an Ubuntu PPA or something.
Its worth the effort of compiling this application, its absolutely rock solid
at what it does. This actually compiles more than just
tools for generating an ISO/UDF hybrid file system. It isn't possible to use
these tools to generate a pure UDF file system, and I have had nothing but
issues trying to use its hybrid capabilities.
Grab the latest version of the source and unzip it into a directory.
The author's preferred method is to use a variation of make, called
however it is still possible to use the regular GNU make with the
included in the zip file.
> tar xf cdrtools-beta.tar.gz > cd cdrtools-3.01 > make
Note: If you choose to perform
make install, it will install everything into
/opt/schilly rather than the usual
/usr/local/.... Graphical applications
such as kd3 will look in that location by default.
If you want
install to put the files somewhere else, the documentation lists
that you set an environment variable as follows:
> sudo make INS_BASE=/usr/local install
Choosing not to install to path
You can just use the cdrecord binary without running the make install command. Just specify the full path to the binary like so:
> /opt/schilly/cdrtools-3.01/OBJ/x86_64-linux-cc/cdrecord --version Cdrecord-ProDVD-ProBD-Clone 3.01a14 (x86_64-unknown-linux-gnu) Copyright (C) 1995-2013 Joerg Schilling
Test the command using the line above, it should report something along the lines of version 3.0-3.01.
Actually burning the image
Now it's time to call cdrecord with the image created earlier as an argument. You will need to give cdrecord some information, such as the path to the bluray burner and some very important options.
> /path/to/cdrecord -v -doa driveropts=burnfree \ dev=/dev/sr0 MYBLURAY-DISC.udf
Let's break this down:
-v, normally I would consider turning on verbose output optional, but
not in this case. Without this you get almost no feedback from the
application. When this is on, you also get a countdown which allows you to
look at some diagnostics before you actually commit to burning the disc.
-doa, specify disc at once mode, we are not going to be writing to the
disc a second time.
driveropts=burnfree, checks the drive to see if it has an option called
burnfree. This is really important if you want to avoid randomly ruining
discs. When active, it allows the data buffer to the drive to become
completely exhausted without ruining the data stream. Without this, if your
computer can't keep up with the data transfer and the data buffer empties,
your disc becomes unreadable.
dev=/dev/sr0, the path to the block device representing your bluray
burner. Determining which
dev device is your burner is a little out of the
scope of this article, message me if you think it would be important to add
Once the process finishes, you should have a solid UDF 2.01 formatted disc!
Please let me know if you find any issues with this guide, found it helpful, lacking, erroneous or deceitful. I take no responsibility for data lost, damage done, etc for anyone choosing to follow these commands.
I don't want to start a discussion as to whether or not optical data storage is a dead phenomenon. Though it is worth noting that the previous generation of optical media (CD's, DVD's) are notorious for degrading to an unreadable state in a short period of time (5 years or so).