Disc Production Workflow

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
m (Unit Costs)
Line 35: Line 35:
sha256sum -c *-CHECKSUM</pre>
sha256sum -c *-CHECKSUM</pre>
This give output similar to the following :
This gives output similar to the following :
[smoker@xeon Fedora-13-i386-DVD]$ sha256sum -c *-CHECKSUM
[smoker@xeon Fedora-13-i386-DVD]$ sha256sum -c *-CHECKSUM

Revision as of 19:45, 20 February 2011



This is a description of my workflow and costings for producing Fedora discs for the Freemedia project. Your mileage may of course vary. You may have less resources both financial or time, but the principles remain the same. All production is accomplished while running Fedora, Fedora 12 in my case.


DVD burner, blank DVDs, disc printer, disc sleeves, disc mailers, Fedora.

Download the Fedora Images

There are various ways to obtain Fedora by downloading. http://fedoraproject.org/en/get-fedora is the first and easiest way, but this method relies on the fedora servers.

I prefer to use a mirror that is closer to my location. To find a mirror, I go to http://mirrors.fedoraproject.org/publiclist/Fedora/ and select a mirror from there. (I use HEAnet in Ireland) Rather than tie up my browser during the download, I use wget from a command line. I cd to the desired download location then run :

wget -b http://ftp.heanet.ie/pub/fedora/linux/releases/13/Fedora/i386/iso/Fedora-13-i386-DVD.iso

I also make sure I download the CHECKSUM file for each version.

wget http://ftp.heanet.ie/pub/fedora/linux/releases/13/Fedora/i386/iso/Fedora-13-i386-CHECKSUM
The -b option to wget means “run in the background” so I can close the terminal window while downloading continues. To check on the download progress at any time I run tail -f wget-log from the terminal in the download destination directory. This is not necessary for the CHECKSUM file as it takes less than a second to download.

Check the downloads for integrity using sha256sum

Once the files are downloaded, I open a terminal and cd to the download location. Then I run the sha256sum utility against the downloaded image(s) :

sha256sum -c *-CHECKSUM

This gives output similar to the following :

[smoker@xeon Fedora-13-i386-DVD]$ sha256sum -c *-CHECKSUM

Fedora-13-i386-DVD.iso: OK

sha256sum: Fedora-13-i386-disc1.iso: No such file or directory

Fedora-13-i386-disc1.iso: FAILED open or read

sha256sum: Fedora-13-i386-disc2.iso: No such file or directory

Fedora-13-i386-disc2.iso: FAILED open or read

sha256sum: Fedora-13-i386-disc3.iso: No such file or directory

Fedora-13-i386-disc3.iso: FAILED open or read

sha256sum: Fedora-13-i386-disc4.iso: No such file or directory

Fedora-13-i386-disc4.iso: FAILED open or read

sha256sum: Fedora-13-i386-disc5.iso: No such file or directory

Fedora-13-i386-disc5.iso: FAILED open or read

sha256sum: Fedora-13-i386-netinst.iso: No such file or directory

Fedora-13-i386-netinst.iso: FAILED open or read

sha256sum: WARNING: 6 of 7 listed files could not be read

The warnings can safely be ignored as this directory only contains the DVD.iso and that reported as OK.

Burning the iso image to disc

I use the standard burning utility provided with Fedora, Brasero. I insert a blank dvd to the drive and wait a few seconds while it is recognised. A “Blank DVD-ROM Disc” icon will appear on the Desktop when the disc is ready for burning. Click on this icon to open the burn:/// directory.

If you use the Nautilus file manager to open the download location directory too, you can just drag the Fedora iso from that directory into the burn directory.

Once the iso is in place, just click the “Write to Disc” button at top right of the CD/DVD Creator (burn:///) window.

You will immediately be asked whether to burn the iso as a file, or to burn the contents.

You must choose “Burn Contents” for the iso to be useful. This transfers the iso image boot sector to the DVD and enables the user to boot from the disc and install.

After clicking “Burn Contents” the Image Burning Setup dialogue is accessible.

I find the defaults are fine, but you may wish to change the burn speed. To do this, click the Properties button and select your required speed from the drop down list. I always burn at a slower speed than the disc is advertised as supporting. So for a 16x disc I will burn at 12x. I get less failures this way.

Now just click Burn and Brasero will get on with the job.

Once the job is finished, you get the option to burn another disc or close the program. You will also get a Desktop icon for the disc you just burned.

The blank disc icon
After copying the file across
Choose Burn Contents here
The Burning Setup Dialogue
The Starting to Burn Dialogue
During Burning Dialogue
The Finished Burning Dialogue

Verifying the burn integrity (mediacheck)

I always like to verify the burned discs before sending them out, as it would be quite a disappointment to receive a non-functioning disc after waiting weeks for it. To begin with, I used to burn a batch of discs, say 10, then reboot with one in the DVD drive and run the install program as far as the second screen, where you may test the disc before installation. This MediaCheck is the final way of checking the discs other than actually installing, and if the disc passes, it is fit for distribution. You can test multiple discs using this method, there is no need to reboot for each disc. Simply remove the final disc when done, and Ctrl+Alt+Del to reboot the computer.

However, there are serious drawbacks to this method. Not least is the fact that you can't use the computer for anything else while the disc checks are carried out. Also, if there have been any errors in burning, you won't find them until 10 discs have been wasted. After some research I have discovered that the MediaCheck utility is available from the Fedora repos, and can be run from a terminal. To check whether the utility is on your system run yum install isomd5sum

If it is already installed yum will tell you.

To run the check, you must su – to root, as a normal user does not have privileges to access the DVD device directly. The terminal command to run is

checkisomd5 --verbose /dev/sr0

where /dev/sr0 is your DVD device designation. --verbose will show a progress meter as the task is run. I also like to time how long the job takes, and pin the task to a single or several CPUs. This is accomplished using the following command line

 \time -f %E taskset -c 4,6 checkisomd5 --verbose /dev/sr0

\time -f %E
is the job timer part of the command and produces a simple HH:MM:SS result defined by the format (-f) %E

taskset -c 4,6
pins the job to CPU cores 4 and 6 on the second CPU of my dual quad core Xeon.

I have found that it takes approximately 4 minutes to run each check. You should end up with output similar to this :

 [root@xeon ~]# \time -f %E taskset -c 4,6 checkisomd5 --verbose /dev/sr0
 /dev/sr0:   f310d06caa94332915f670aa7dffb3a7

 Fragment sums: ca78f1c736792f8cd38c9aa9d4334c52ace6565532d837683be671b7bfd1

 Fragment count: 20

 Checking: 100.0%

 The media check is complete, the result is: PASS.

 It is OK to use this media.


The last line is the output of the \time command, so the job took 4 minutes 4.5 seconds to complete.

Of course, that command line would be difficult to remember each time, so I have aliased the command in root's ~/.bashrc file as disk1
alias disk1='\time -f %E taskset -c 4,6 checkisomd5 --verbose /dev/sr0'

You must log out and relogin as root for this to take effect. As you are only root by the method of su – you do not have to log out of the desktop, simply type exit in the terminal to return to your normal user ID, then run su – again.

Now I can do the job using

[root@xeon ~]# disk1

/dev/sr0:   f310d06caa94332915f670aa7dffb3a7

Fragment sums: ca78f1c736792f8cd38c9aa9d4334c52ace6565532d837683be671b7bfd1

Fragment count: 20

Checking: 100.0%

The media check is complete, the result is: PASS.

It is OK to use this media.

I use disk1 as the alias because I have two DVD drives on the system. disk2 is aliased to /dev/sr1

I have found it is not practical to burn on one drive and check a separate disc on the other drive, as the IDE channel is saturated and everything takes much, much longer. This may be down to my hardware setup, so I will try using separate IDE ports and cables for each drive to try and improve the situation. It is possible to check 2 discs at the same time and it takes the same amount of time to complete, just over 4 minutes. Of course I have pinned the second job to different cores on the CPU (5,7).

Printing the disc

The advantage of not having to reboot for the disc checks means that while I am checking one disc, I can be printing a previously verified disc. I use the GIMP for this purpose.

Using one of the disc label images available here , I open the image in the GIMP, then use the Gutenprint plugin to print to the disc. I have an Epson R200 printer which is fully supported by Gutenprint. The actual print once the initial setup is complete takes about 45 seconds. This is mainly due to the disc tray loading time. It is wise to use the “Save and Print” option in Gutenprint to retain your settings permanently. Unfortunately, you can only have one set of saved settings, so it is also wise to document your disc printing parameters separately.

I have documented the procedure for creating an image and setting up the print and Gutenprint plugin here

It is advisable to leave the discs for 24 hours before mailing so that the ink can fully dry. I use a 6 disc DVD case to hold the discs separate during this period.

Mailing the disc

When I mail the discs I use cardboard mailers and also a plastic sleeve. These items are widely available and pretty cheap to buy. I get 100 sleeves for around £2 for a unit cost of 2 pence each. The cardboard mailers cost me around £2.90 for 50 mailers, which is a unit cost of 6 pence each.

The cost of postage varies from location to location so I cannot define your costs here, except to say that a single disc in a sleeve and mailer weighs less than 40g and can be airmailed from the UK to Europe for around 88 pence. I can send by airmail to India for £1.46.

I don't use overland post for overseas destinations as the next version of Fedora will probably be released before the person gets their disc !

  • UPDATE -

I have now started adding labels to my disc mailers, which include a fedora logo, my name and address, and my fedora email address. This adds to the capital cost (see costs section). 0.02 on to ink and 0.03 for the labels. An extra 5 pence per disc in total (estimated). Sticker3b-generic.png

Editable GIMP image template here. This image is suited to a label of dimension 100mm x 30mm, Avery label code L7172. Available in Open Office as a template.

Unit Costs

This put my total current per unit costs (in UK £) at

Blank Disc 0.33
Plastic sleeve 0.02
Printer Ink 0.04
Cardboard mailer 0.06
Mailer label 0.03
Materials Total 0.48
Postage (Europe / Worldwide) 0.88 / 1.46
Total Costs (Europe / Worldwide) 1.36 / 1.94

I regard the costs of electricity, broadband and time as being outside the scope of this document. I use relatively expensive discs, as lesser brands seem to fail too regularly (10 out of 50 recently). The disks I now use are Taiyo Yuden 16x full face printable DVD-R.

Printer ink may be a concern to some, but as the label images I use require minimal ink and I can get compatible Epson cartridges for £4.64 for a complete 6 cartridge set, I don't see it as a major cost. I get probably 200 discs printed from one set of cartridges, which puts the cost at 2 pence per disc. I allow the same for the mailer label.

When all settings have been made and saved, and everything is set up, each disc will take around 10 minutes from burning to printing.

With the ability to burn and check simultaneously I hope to reduce this time by half. By using two drives while checking, I can currently complete 2 discs in 14 minutes.


It is possible to fulfil the Freemedia Groups minimum requirements of 2 discs per month, in less than 15 minutes and for less than the cost of a beer !


Go back to my user page.