Line 24: | Line 24: | ||
I also make sure I download the CHECKSUM file for each version. | I also make sure I download the CHECKSUM file for each version. | ||
<pre>wget | <pre>wget http://ftp.heanet.ie/pub/fedora/linux/releases/13/Fedora/i386/iso/Fedora-13-i386-CHECKSUM</pre> | ||
{{admon/note|Note|The -b option to wget means “run in the background” so I can close the terminal window while downloading continues. | {{admon/note|Note|The -b option to wget means “run in the background” so I can close the terminal window while downloading continues. This is not necessary for the CHECKSUM file as it takes less than a second to download. | ||
To check on the download progress at any time I run <code>tail -f wget-log</code> from the terminal in the download destination directory.}} | |||
== Check the downloads for integrity using sha256sum == | == Check the downloads for integrity using sha256sum == |
Revision as of 02:30, 18 July 2010
Introduction
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 principals remain the same. All production is accomplished while running Fedora, Fedora 12 in my case.
Pre-requisites
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
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 give 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.
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.
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.
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 schedutils
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. 4:04.52
The last line is the output of the \time command, so the job took 4 minutes 4.5 seconds to complete.
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
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 !
Unit Costs
This put my total per unit costs (in UK £) at
Blank Disc | 0.33 |
Plastic sleeve | 0.02 |
Printer Ink | 0.02 |
Cardboard mailer | 0.06 |
Materials Total | 0.43 |
Postage (Europe / Worldwide) | 0.88 / 1.46 |
Total Cost (Europe / Worldwide) | 1.31 / 1.89 |
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 unit cost at 2 pence.
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.
Go back to my user page.