LDP/LDP/howto/docbook/CDServer-HOWTO.xml

2006 lines
61 KiB
XML
Executable File
Raw Permalink Blame History

<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []>
<!--
Changelog: (R) = Publication Released
081800 (R): Began work on version 1.00 of CD Server HOWTO - Randy Tata
090100 (R): Conversion to linuxdoc SGML from text/html - Randy Tata
092300 (R): Conversion from linuxdoc to DocBook - Randy Tata
092800: Added more Suggested Reading and appletalk, ipx stuff - Randy Tata
010602 (R): Updated for newer Kernels, Fix erroneous information, New References,
Convert to DocBook XML, Changed License from LDP to GFDL - Randy Tata
010702: Fix XML Source Problems and removed cvs tags from source, fix pubdate
010802 (R): Many additions to XML source for commands, filenames, etc.
010802: Fixed line wrap in screen tags, changed gfdl sect scheme
Added blurb and link to cdtower_v0.06.sh.txt
-->
<article id="CDServer-HOWTO">
<articleinfo>
<title>CDServer-HOWTO</title>
<author>
<firstname>Randolph</firstname>
<othername role="mi">J</othername>
<surname>Tata</surname>
<affiliation>
<orgname>Talcon Information Systems</orgname>
<address><email>randy@talcon.com</email></address>
</affiliation>
</author>
<pubdate>v1.40 2002/01/10</pubdate>
<revhistory id="revhistory">
<revision>
<revnumber>v1.40</revnumber>
<date>2002-01-10</date>
<authorinitials>rjt</authorinitials>
<revremark>
Added description and link to cdtower shell script.
</revremark>
</revision>
<revision>
<revnumber>v1.30</revnumber>
<date>2002-01-08</date>
<authorinitials>rjt</authorinitials>
<revremark>
Many additions and changes to markup in DocBook XML source and fix pubdate data.
</revremark>
</revision>
<revision>
<revnumber>v1.01</revnumber>
<date>2002-01-07</date>
<authorinitials>rjt</authorinitials>
<revremark>
Updated for 2.4 kernels. Added more References and links.
Convert to DocBook XML 4.1.2 Change License from LDP boilerplate to GFDL.
</revremark>
</revision>
<revision>
<revnumber>v1.00</revnumber>
<date>2000-09-23</date>
<authorinitials>rjt</authorinitials>
<revremark>
Conversion from Linuxdoc SGML to DocBook v3.1 SGML
</revremark>
</revision>
<revision>
<revnumber>v0.10</revnumber>
<date>2000-09-01</date>
<authorinitials>rjt</authorinitials>
<revremark>
Conversion to Linuxdoc SGML from text/html,
added kerneltweak (addloops) section
</revremark>
</revision>
<revision>
<revnumber>v0.01</revnumber>
<date>2000-08-18</date>
<authorinitials>rjt</authorinitials>
<revremark>
First version released in text and html.
</revremark>
</revision>
</revhistory>
<indexterm>
<primary>cdserver</primary>
</indexterm>
<abstract>
<para>
The CD Server HOWTO describes the steps and commands you can
use to setup your own CD Server using Linux and some built-in
Unix commands along with other freely available software packages.
The CD Server can then share the CD's via the network to
Windows and/or other client machines.
</para>
</abstract>
</articleinfo>
<!-- section1: intro -->
<sect1 id="introduction">
<title>Introduction</title>
<indexterm>
<primary>cdserver!introduction</primary>
</indexterm>
<para>
With disk space becoming less expensive (100GB Western Digital 7200rpm available
for US $195 in January 2002), it is viable to use an Open Source
software-based CD Server solution, instead of paying
$800-$4,000 for a software, thin-server, or CD Jukebox solution.
</para>
<para>
I've setup my CD Server on a Pentium 200 with 64MB RAM, using one of these
large drives.
</para>
<para>
Any comments, suggestions, additions, or corrections can be sent to my
email address at <ulink url="http://www.talcon.com/">
Talcon Information Systems</ulink>: <email>randy@talcon.com</email>.
</para>
<!-- section2: Intended Audience -->
<sect2 id="audience">
<title>Intended Audience</title>
<para>
This HOWTO is specifically directed toward System Administrators
and uses Linux for the examples. It should work with other flavors of
Unix provided that they have a loop device or a method of mounting a
CD image file within the directory tree as a block device using the
iso9660 file system.
</para>
</sect2>
<!-- section2: Things Needed -->
<sect2 id="needed">
<title>Things You'll Need</title>
<indexterm>
<primary>cdserver!utilities needed</primary>
</indexterm>
<para>
The commands and utilities needed to setup your own CD Server
are already included in most (if not all) Linux distributions.
</para>
<para>
<itemizedlist>
<listitem>
<para>
A Linux Distribution (This HOWTO uses
<ulink url="http://www.linux-mandrake.com/">
<systemitem class="osname">Linux-Mandrake</systemitem></ulink> for the examples)
</para>
</listitem>
<listitem>
<para>
<command>dd</command> - Converts and copies a file (a standard Unix command)
</para>
</listitem>
<listitem>
<para>
<command>mount</command> - Mounts and Unmounts filesystems (a standard Unix command)
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.samba.org/"><application>Samba</application></ulink>
- A Windows SMB/CIFS fileserver for Unix
</para>
</listitem>
<listitem>
<para>
<acronym>NFS</acronym> (optional for Unix) - <application>Network File System</application>
(included in Linux distributions)
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.anders.com/projects/netatalk/"><application>Netatalk</application>
</ulink> (optional for Macs) - A package that lets a Unix machine supply
Appletalk print and file services on a <acronym>LAN</acronym>.
</para>
</listitem>
</itemizedlist>
</para>
<variablelist>
<varlistentry>
<term>Note</term>
<listitem>
<para>
Previous to the 2.4 kernels, the Linux-Mandrake distribution I was using only had
support for 8 loop devices compiled into the kernel (see
<xref linkend="addloops" />
to increase this number).
At that time, you were only be able to share 8 CD's on a network
with that default value, and to share more than 8, the loop block driver source code (loop.c) needed
to be modified and a new kernel compiled.
</para>
<para><emphasis>With the 2.4 kernels, that is no longer required.</emphasis>
You can now set the number of loop
devices dynamically via the max_loop module parameter, or by passing max_loop=[1-255]
to the kernel on boot.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<!-- section2: Suggested Reading -->
<sect2 id="reading">
<title>Suggested Reading and References</title>
<para>
<ulink url="http://www.linuxdoc.org/HOWTO/SMB-HOWTO.html">
<citetitle pubwork="article">SMB HOWTO</citetitle></ulink>
by: David Wood, dwood (at) plugged.net.au. Part of the
Linux Documentation Project. This document describes how
to use the Server Message Block (SMB) protocol, also called
the Session Message Block, NetBIOS or LanManager protocol,
with Linux using Samba.
</para>
<para>
<ulink url="http://www.oreilly.com/catalog/samba/">
<citetitle pubwork="book">Using Samba</citetitle></ulink>
by: Robert Eckstein, David Collier-Brown, Peter Kelly
1st Edition November 1999, O'Reilly and Associates, Inc.
ISBN 1-56592-449-5,
</para>
<para>
<ulink url="http://www.linuxdoc.org/HOWTO/CDROM-HOWTO/">
<citetitle pubwork="article">The Linux CD-ROM HOWTO</citetitle></ulink>
by: Jeff Tranter, tranter (at) pobox.com. Part of the
Linux Documentation Project. How to install, configure,
and use CD-ROM drives under Linux. It lists the supported
hardware and answers a number of frequently asked questions.
This HOWTO also gives some information on using multi-platter
CD-ROM drives with Linux.
</para>
<para>
<ulink url="http://www.linuxdoc.org/HOWTO/CD-Writing-HOWTO.html">
<citetitle pubwork="article">CD-Writing HOWTO</citetitle></ulink>
by: Winfried Tr<54>mper, winni (at) xpilot.org. Part of the
Linux Documentation Project. This document explains how to write
CD-ROMs under Linux. This HOWTO also includes information on
making 1:1 image copies of CD-ROMs.
</para>
</sect2>
<sect2 id="copyright">
<title>Copyright and License</title>
<indexterm>
<primary>cdserver!copyright</primary>
</indexterm>
<para>
<emphasis><productname>CDServer-HOWTO</productname>, Copyright
<trademark class="copyright" /> 2000-2002, by <ulink
url="mailto:randy@talcon.com">Randolph J. Tata</ulink>, All Rights Reserved</emphasis>
</para>
<para>
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.1 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts and
no Back-Cover Texts. A copy of the license is included
in <xref linkend="gfdl" /> entitled "GNU Free Documentation License".
</para>
</sect2>
<!-- section2: Disclaimer -->
<sect2 id="disclaimer">
<title>Disclaimer</title>
<para>
Use the information in this document at your own risk. I disavow any
potential liability for the contents of this document. Use of the
concepts, examples, and/or other content of this document is entirely
at your own risk.
</para>
<para>
All copyrights are owned by their owners, unless specifically noted
otherwise. Use of a term in this document should not be regarded as
affecting the validity of any trademark or service mark.
</para>
<para>
Naming of particular products or brands should not be seen as endorsements.
</para>
<para>
You are strongly recommended to make a backup of your system before
major installation and should make backups at regular intervals.
</para>
</sect2>
<!-- section2: News -->
<sect2 id="news">
<title>News</title>
<indexterm>
<primary>cdserver!recent news</primary>
</indexterm>
<para>
As always, check the revision history at the top of this document.
</para>
<para>
<ulink url="http://www.talcon.com/projects/CDServer-HOWTO/CDServer-HOWTO.xml">
DocBook XML source</ulink> for this document is available. Any
additions/changes should be made to the DocBook XML source, not derivative formats.
</para>
<para>
<emphasis>This documents home page is at the
<ulink url="http://talcon.com/cdserver-howto/">CDServer-HOWTO</ulink>
site page in case you need the latest version, or there is a problem
with the page format you are viewing.</emphasis>
</para>
</sect2>
<!-- section2: Credits -->
<sect2 id="credits">
<title>Credits</title>
<para>
My thanks go the readers of this HOWTO and those willing to share
their experiences and knowledge with me. I
have the pleasure of acknowledging:
</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<tbody>
<row>
<entry>Mark F. Komarinski</entry>
<entry>markk (at) linuxdoc.org</entry>
<entry>LDP Author Guide</entry>
</row>
<row>
<entry>Jorge Godoy</entry>
<entry>godoy (at) metalab.unc.edu</entry>
<entry>LDP Author Guide</entry>
</row>
<row>
<entry>David C. Merrill</entry>
<entry>dcmerrill (at) mindspring.com</entry>
<entry>LDP Author Guide</entry>
</row>
<row>
<entry>Stein Gjoen</entry>
<entry>sgjoen (at) nyx.net</entry>
<entry>HOWTO-Template</entry>
</row>
<row>
<entry>Gregory Leblanc</entry>
<entry>gleblanc (at) cu-portland.edu</entry>
<entry>HOWTO-Template</entry>
</row>
<row>
<entry>Greg Ferguson</entry>
<entry>gferg (at) sgi.com</entry>
<entry>HOWTO-Template</entry>
</row>
<row>
<entry>Amar Chaouche</entry>
<entry>achaouche (at) linbox.com</entry>
<entry>mount unhide option</entry>
</row>
<row>
<entry>Giblhauser Carl Michael</entry>
<entry>mike (at) bawb.bmlf.gv.at</entry>
<entry>runoutblock i/o errors</entry>
</row>
<row>
<entry>Monte Milanuk</entry>
<entry>milanuk (at) yahoo.com</entry>
<entry>nfs help</entry>
</row>
<row>
<entry>Paul A. Sand</entry>
<entry>pas (at) unh.edu</entry>
<entry>loop module option max_loop</entry>
</row>
<row>
<entry>Tony Melia</entry>
<entry>Tony.Melia (at) downsmicro.com.au</entry>
<entry>max_loop kernel boot parameter</entry>
</row>
<row>
<entry>Richard Black</entry>
<entry>Richard.Black (at) compaq.com</entry>
<entry>more info and mknod script</entry>
</row>
<row>
<entry>Bradley Wendelboe</entry>
<entry>krakken (at) icehouse.2y.net</entry>
<entry>cdtower shell script</entry>
</row>
<row>
<entry>James Mumm</entry>
<entry>dart (at) windeath.2y.net</entry>
<entry>cdtower shell script</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>
<!-- section2: Translations -->
<sect2 id="translations">
<title>Translations</title>
<itemizedlist>
<listitem>
<para>
<ulink url="http://kldp.org">Korean</ulink> (html and sgml) at
<ulink url="http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/korean/">
http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/korean/</ulink>
</para>
</listitem>
</itemizedlist>
<para>
<emphasis>If you have the capacity it would be nice to make the CDServer-HOWTO
available in a number of formats and languages.</emphasis>
</para>
<para>
If you've translated this document, please send to me:
</para>
<itemizedlist>
<listitem>
<para>
Your name, email address, the language and URL to the translated document (preferred).
</para>
</listitem>
<listitem>
<para>
Or an email attachment of the work.
</para>
</listitem>
</itemizedlist>
<para>
Please send either to my email address at <ulink url="http://www.talcon.com/">
Talcon Information Systems</ulink>: <email>randy@talcon.com</email>.
</para>
</sect2>
</sect1>
<!-- section1: Procedure -->
<sect1 id="procedure">
<title>Procedure</title>
<para>
<emphasis>Summary of Steps</emphasis>
</para>
<indexterm>
<primary>cdserver!procedure</primary>
</indexterm>
<itemizedlist>
<listitem>
<para>
Create a large partition to hold the CD Image Files.
</para>
</listitem>
<listitem>
<para>
Copy the CD to an image file using the <command>dd</command> command.
</para>
</listitem>
<listitem>
<para>
Mount the CD image file within the directory tree.
</para>
</listitem>
<listitem>
<para>
Share the directory on the network using <application>Samba</application>,
<application><acronym>NFS</acronym></application>, etc.
</para>
</listitem>
</itemizedlist>
<para>
Also, make sure you've read <xref linkend="introduction" /> and
<xref linkend="needed" />.
</para>
<!-- section2: Creating Images -->
<sect2 id="createimage">
<title>Creating the ISO Images</title>
<indexterm>
<primary>cdserver!creating images</primary>
</indexterm>
<para>
Choose (or create) a file system with the largest available disk
space on it. Keep in mind that CD-ROM's can hold around 640MB of data,
so if you want to share 8 full CD's on your network,
you'll need 5.1GB of space available.
</para>
<para>
Login as root or "su" to root.
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>df -h</command>
<computeroutput>
Filesystem Size Used Avail Use% Mounted on
/dev/hda5 1.4G 82M 1.3G 6% /
/dev/hda1 15M 827k 14M 6% /boot
/dev/hda7 2.4G 1008M 1.3G 43% /usr
/dev/hda8 23.6G 11.7G 11.7G 50% /home
</computeroutput>
</screen>
</para>
<para>
Here the <filename class="directory">/home</filename> filesystem has the most available space,
so it is the most suitable filesystem to use for dumping the CD images to.
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>cd /home</command>
<prompt>bash#</prompt> <command>mkdir image</command>
<prompt>bash#</prompt> <command>cd image</command>
</screen>
</para>
<para>
Now, copy the CD to an <acronym>ISO</acronym> image. You must know the device name
of your CD-ROM drive (usually <filename class="devicefile">/dev/cdrom</filename>,
it could be <filename class="devicefile">/dev/scd0</filename> for
SCSI CD-ROM's) I'll use the Mandrake distribution CD-ROM as an Example:
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>dd if=/dev/cdrom of=mndrk81.iso</command>
</screen>
</para>
<variablelist>
<varlistentry>
<term>Note</term>
<listitem>
<para>
The <quote>if=</quote> is the input file, the <quote>of=</quote> is the output file. You
should see a message stating the number of records in and number of
records out.</para>
<para>If you see i/o errors, they will most likely be due to
the lead-in and lead-out runoutblocks on the CD. If the number
of records in and number of records out do not match you may have a problem,
otherwise the image will most
likely be alright, but you can never know if the errors happened while
reading the <acronym>ISO</acronym> part of the CD or not (due to dust or scratches on the
CD).</para>
<para>Other utilities to read CD's exist, like <command>readcd</command> or
<command>sdd</command>.</para>
<para>More information about making 1:1 copies of CD's
exists in the <citation>CD-Writing-HOWTO</citation>, see <xref linkend="reading" />.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<emphasis>My thanks to Giblhauser Carl Michael for the runoutblock information.</emphasis>
</para>
</sect2>
<!-- section2: Mounting Images -->
<sect2 id="mountimage">
<title>Mounting the ISO Images</title>
<indexterm>
<primary>cdserver!mounting images</primary>
</indexterm>
<para>
The next step is to mount the <acronym>ISO</acronym> image file. Let's create
a directory under <filename class="directory">/mnt</filename> to place the mounted file.
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>cd /mnt</command>
<prompt>bash#</prompt> <command>mkdir iso</command>
<prompt>bash#</prompt> <command>cd iso</command>
<prompt>bash#</prompt> <command>mkdir mndrk81</command>
</screen>
</para>
<para>
Now mount the <acronym>ISO</acronym> image file to this newly created directory
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>mount -o loop,unhide -t iso9660 -r /home/image/mndrk81.iso /mnt/iso/mndrk81</command>
</screen>
</para>
<variablelist>
<varlistentry>
<term>Note</term>
<listitem>
<para>
The <quote>-o loop</quote> means use the option that mounts a file as a block
device. The unhide option shows hidden files. The <quote>-t iso9660</quote> means
that the file is in the iso9660 CD-ROM format. The <quote>-r</quote> means to mount read-only.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<emphasis>Thanks to Amar Chaouche for pointing out the unhide option for the mount command.</emphasis>
</para>
<para>
Now you can:
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>cd mndrk81</command>
<prompt>bash#</prompt> <command>ls -al</command>
</screen>
</para>
<para>
You should see a listing (<command>ls</command>) of the files and directories that are on
the actual CD (only now they're inside the <acronym>ISO</acronym> image file, and that's what you're
currently looking at!)
</para>
</sect2>
<!-- section2: System Restart -->
<sect2 id="systemrestart">
<title>Mounting the Image upon System Restart</title>
<indexterm>
<primary>cdserver!editing fstab</primary>
</indexterm>
<para>
Now that we've manually mounted the image, and made sure it works,
an entry needs to made in the <filename>/etc/fstab</filename> file so that the image is
remounted on the next system startup. It's important to make the
entry AFTER the entry for the parent filesystem, e.g.
<filename class="directory">/home</filename> (I use <command>vim</command>,
but <command>emacs</command>, <command>joe</command>, <command>pico</command>
or <command>jed</command> will work just as well):
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>vim /etc/fstab</command>
</screen>
</para>
<para>
After the line that looks like the following (or whichever filesystem you've placed your images):
</para>
<para>
<screen>
/dev/hda8 /home ext2 defaults 1 2
</screen>
</para>
<para>
Insert the following line with your text editor:
</para>
<para>
<screen>
/home/image/mndrk81.iso /mnt/iso/mndrk81 iso9660 ro,loop,auto,unhide 0 0
</screen>
</para>
</sect2>
<!-- section2: Sharing -->
<sect2 id="sharing">
<title>Sharing it on a Windows Network using Samba</title>
<indexterm>
<primary>cdserver!network sharing</primary>
</indexterm>
<para>
You'll need to have Samba installed and working to perform the next
steps (that's outside the scope of this instruction, see <xref linkend="reading" />). If it's not
yet installed, consult your Linux distribution's instructions for
installing the Samba package. Or you can visit the Samba website
at <ulink url="http://us1.samba.org/samba/samba.html">http://us1.samba.org/samba/samba.html</ulink>
for installation instructions,
binaries, and/or the source code.
</para>
<para>
To share your mounted CD's on a windows network, simply create
a stanza in the <filename>/etc/smb.conf</filename> file similar to the following:
</para>
<para>
<screen>
[cdimages]
comment = All Shared CD Images
path = /mnt/iso
public = yes
writable = no
</screen>
</para>
<para>
This will share all the subdirectories under the
<filename class="directory">/mnt/iso</filename> directory
on the network. To mount the share to a local drive (in this case
the I: drive), bring up an MS-DOS Prompt on the Windows machine and
type the following:
</para>
<para>
<screen>
<prompt>C:\&#62;</prompt> <command>net use I: \\yourlinuxmachine\cdimages</command>
</screen>
</para>
<para>
Each CD image will now appear as a subdirectory on the I: drive of
your Windows machine.
</para>
<para>
To mount ONLY the Mandrake CD image to a drive letter (we'll use M:,
the root drive of which, will correspond exactly to the CD as if it
was just inserted in the CD-ROM drive), create the following stanza
in the <filename>/etc/smb.conf</filename> file.
</para>
<para>
<screen>
[mndrk81]
comment = Mandrake Linux 8.1
path = /mnt/iso/mndrk81
public = yes
writable = no
</screen>
</para>
<para>
Then, at your MS-DOS Prompt, mount it with the following command:
</para>
<para>
<screen>
<prompt>C:\&#62;</prompt> <command>net use m: \\yourlinuxmachine\mndrk81</command>
</screen>
</para>
<variablelist>
<varlistentry>
<term><emphasis>Warning</emphasis></term>
<listitem>
<para>
<emphasis>
The Samba smb.conf file stanzas presented here are
simplified, and not secure. Many more options exist for
a Samba share which limit who can mount the shares, control how
user authentication is performed, and whether the share is even
browseable through Network Neighborhood on the Windows machines.
</emphasis>
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<!-- section2: NFS -->
<sect2 id="nfs">
<title>Sharing the Images on a Unix network using NFS</title>
<indexterm>
<primary>cdserver!nfs sharing</primary>
</indexterm>
<para>
Make sure that NFS is running and configured correctly on
your Linux machine, then add the following to the <filename>/etc/exports</filename>
file using your own preferred options:
</para>
<para>
<screen>
# sample /etc/exports file
/mnt/iso (ro,insecure,nohide,all_squash)
</screen>
</para>
<variablelist>
<varlistentry>
<term>Note</term>
<listitem>
<para>
The nohide option will allow you to mount a parent directory, without
explicitly mounting all exported subdirectories beneath it.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Now try running:
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>exportfs -r</command>
</screen>
</para>
<para>
This should re-export everything in your <filename>/etc/exports</filename> file.
</para>
<para>
Now, when typing <quote><command>showmount -e <replaceable>yourlinuxmachine</replaceable></command></quote>
you should see that the <filename class="directory">/mnt/iso</filename> directory is included in the exports list.
</para>
</sect2>
</sect1>
<!-- section1: Adding Loop Devices -->
<sect1 id="addloops">
<title>Adding Support for More Loop Devices </title>
<indexterm>
<primary>cdserver!adding loops</primary>
</indexterm>
<para>
Newer Linux kernels (2.4) allow you to add more loop devices easily by
editing <filename>/etc/modules.conf</filename> or through the use of a boot parameter.
</para>
<para>
Older kernels (2.2 ?) only had
support for 8 loop devices compiled into the kernel. In short, you were
only able to share 8 CD's on a network with this default value.
In order to support more than that default, you needed to modify the kernel source
and recompile a new kernel.
</para>
<para>
Use the following methods to determine which version of the kernel you are running.
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>uname -a</command>
</screen>
</para>
<para>
or
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>cat /proc/version</command>
</screen>
</para>
<!-- section2: Adding Loop Module Option -->
<sect2 id="loopmodule">
<title>Adding the Loop Module Option</title>
<para>
Current kernels allow you to set the number of loop devices supported
without recompiling the kernel. One of these methods is to add an options
line to <filename>/etc/modules.conf</filename>.
This method will only work if your loop support
has been configured as a loadable kernel module (which is how most major
Linux distributions come preconfigured now).
</para>
<para>
Edit <filename>/etc/modules.conf</filename> and add the following line.
</para>
<para>
<screen>
options loop max_loop=64
</screen>
</para>
<para>
After making the above change, simply reboot. Or you can try to use
<command>rmmod</command> and <command>insmod</command> to make the change
on the fly - but this will not work
if you currently have any loop devices mounted (you'll get an error saying
loop: Device or resource busy).
</para>
<variablelist>
<varlistentry>
<term>Note</term>
<listitem>
<para>
If you do not have an <filename>/etc/modules.conf</filename> file, your module configuration
file may be called <filename>/etc/conf.modules</filename> (this name is now deprecated).
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Continue with <xref linkend="loopdev" />.
</para>
<para>
<emphasis>
Thanks to Paul A. Sand for pointing out the /etc/modules.conf option.
</emphasis>
</para>
</sect2>
<!-- section2: Appending to the Boot Prompt -->
<sect2 id="bootprompt">
<title>Appending to the Boot Prompt</title>
<para>
If your loop support has been compiled directly into the kernel (in other words,
it is not loaded as a module), you can append the number of loop devices you would
like to support at the linux boot prompt.
</para>
<para>
<screen>
<prompt>boot:</prompt> <command>linux <parameter class="command">max_loop=<replaceable>64</replaceable></parameter></command>
</screen>
</para>
<para>
Or, if you are using <application><acronym>LILO</acronym></application>,
you can edit your linux boot
stanza in <filename>/etc/lilo.conf</filename> and add/modify
the <parameter>append=</parameter> line. Here is an example stanza showing
<parameter>append=</parameter> (<emphasis>note: only add or modify the append line,
don't change your whole stanza to look like this one or your system
may not boot</emphasis>). For more information about LILO, consult the
<ulink url="http://www.linuxdoc.org/HOWTO/mini/LILO.html">LILO mini-HOWTO</ulink> at
<systemitem class="resource">http://www.linuxdoc.org/HOWTO/mini/LILO.html</systemitem>.
</para>
<para>
<screen>
image=/boot/vmlinuz
label=linux
root=/dev/hdb5
initrd=/boot/initrd.img
append=<replaceable>" max_loop=64"</replaceable>
vga=788
read-only
</screen>
</para>
<para>
After changing <filename>/etc/lilo.conf</filename>, you need to run
the <command>lilo</command> command for your changes to take effect.
</para>
<screen>
<prompt>bash#</prompt> <command>lilo</command>
<computeroutput>
Added linux *
Added linux-nonfb
Added failsafe
Added windows
Added floppy
</computeroutput>
</screen>
<para>
Next restart your system. After your system restarts, you can check your boot command line by typing the following:
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>cat /proc/cmdline</command>
</screen>
</para>
<variablelist>
<varlistentry>
<term>Note</term>
<listitem>
<para>
I am not sure if the loop module (compiled as a module) reads
<filename>/proc/cmdline</filename> when
the module is loaded, and therefore may not need an options line
<filename>/etc/modules.conf</filename>.
It's possible that it can (and if it doesn't, it should).
To summarize: I have not tested this.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Continue with <xref linkend="loopdev" />.
</para>
<para>
<emphasis>
Thanks to Tony Melia for the boot prompt info.
</emphasis>
</para>
</sect2>
<!-- section2: Edit Kernel -->
<sect2 id="editkernel">
<title>Tweaking the Kernel</title>
<para>
If you have an older kernel (v. 2.2) or if you are completely comfortable
recompiling the kernel, you can increase the number of loop devices supported by
editing the <filename>/usr/src/linux/drivers/block/loop.c</filename> file.
</para>
<variablelist>
<varlistentry>
<term>Note</term>
<listitem>
<para>
If you find that the kernel sources are not installed on your machine,
you'll need to consult your Linux Distribution's documentation on
how to install them (the Kernel Sources come with all distributions -
it's part of the <acronym>GNU</acronym> <acronym>GPL</acronym> licensing).
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Change the number in the following line to however many loop devices
you'll need.
</para>
<para>
<screen>
#define MAX_LOOP <replaceable>16</replaceable>
</screen>
</para>
<para>
Compile the new kernel or module as the case may be. If you need some
help getting started with this, read <filename>/usr/src/linux/README</filename> or consult
<ulink url="http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html">
The Linux Kernel HOWTO</ulink>.
</para>
<para>
Continue with <xref linkend="loopdev" />.
</para>
</sect2>
<!-- section2: Loop Devices -->
<sect2 id="loopdev">
<title>Creating the Loop Devices in /dev</title>
<indexterm>
<primary>cdserver!creating loop devices</primary>
</indexterm>
<para>
You should check how many <filename class="directory">/dev</filename> entries you have for loop devices.
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>ls -l /dev/loop*</command>
</screen>
</para>
<para>
The <command>mknod</command> command creates the devices in the
<filename class="directory">/dev</filename> directory. The loop devices have a major
number of <quote>7</quote>, and the minor numbers begin at <quote>0</quote>.
If your <parameter>MAX&lowbar;LOOP</parameter> was defined as <quote>8</quote> in
<filename>/usr/src/linux/drivers/block/loop.c</filename>, you should have
<filename class="devicefile">/dev/loop0</filename> through
<filename class="devicefile">/dev/loop7</filename>.
To create the <filename class="devicefile">/dev/loop8</filename> device,
use the following command (subsitute the appropriate number you need for
both the <quote>8's</quote> in the example below).
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>mknod -m660 /dev/loop<replaceable>8</replaceable> b 7 <replaceable>8</replaceable></command>
</screen>
</para>
<para>
Check Owner/Group &#38; Permissions on the new file (using <command>ls -l</command>).
You can change the owner and group with the following command:
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>chown root.disk /dev/loop8</command>
</screen>
</para>
<para>
You can change the permissions using the following command:
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>chmod 666 /dev/loop8</command>
</screen>
</para>
</sect2>
</sect1>
<!-- section1: More Information -->
<sect1 id="moreinfo">
<title>More Information</title>
<indexterm>
<primary>cdserver!more info</primary>
</indexterm>
<para>
Be sure to check the suggested reading in <xref linkend="reading" />.
</para>
<!-- section2: Frequently Asked Questions -->
<sect2 id="faq">
<title>Frequently Asked Questions</title>
<indexterm>
<primary>cdserver!faq</primary>
</indexterm>
<para>
I finally had to create this section - Frequently Asked Questions. Although, I sometimes
think it should be called Frequently Answered Questions (at least I try to answer them all).
</para>
<qandaset defaultlabel="qanda">
<qandaentry>
<question>
<para>Can I copy CD contents to a directory and share it with <acronym>SAMBA</acronym>?</para>
</question>
<answer>
<para>In a word - Yes.</para>
<blockquote>
<para>
There is nothing to keep you from doing that. However I'm not sure which arguments you
would have to use with tar and which options to include in the <acronym>SAMBA</acronym> stanzas.
Also, there could be problems with file name mangling (case sensitivity, spaces in file names),
file attributes (read-only), etc. If anyone is doing this successfully, please send me examples
of the commands you used for copying the contents of the CD, and your SAMBA stanzas for the shares.
</para>
<para>
Here's some commands you can use to copy the contents:
</para>
<para>
<screen>
<prompt>bash#</prompt> <command>cd /home</command>
<prompt>bash#</prompt> <command>mkdir image</command>
<prompt>bash#</prompt> <command>cd image</command>
<prompt>bash#</prompt> <command>mkdir mndrk81</command>
<prompt>bash#</prompt> <command>mount /mnt/cdrom</command>
<prompt>bash#</prompt> <command>cd /mnt/cdrom</command>
<prompt>bash#</prompt> <command>tar cvf - . | (cd /home/image/mndrk81; tar xvf -)</command>
</screen>
</para>
<para>
<emphasis>Thanks to Giblhauser Carl Michael for this info</emphasis>
</para>
</blockquote>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Do any scripts or programs exist that automate this process?</para>
</question>
<answer>
<para>Yes:</para>
<itemizedlist>
<listitem>
<para>Bradley Wendelboe and James Mumm wrote a shell
script called CDTower - see <xref
linkend="cdtower" /> to download it.</para>
<para><emphasis>I have no independent test results
of this script - use at your own risk.</emphasis></para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Do any web interfaces exist that automate this process?</para>
</question>
<answer>
<para>Not yet. However there is much interest in this.</para>
<itemizedlist>
<listitem>
<para>Tony Melia [Tony.Melia (at) downsmicro.com.au] has announced that
he is 60% complete with a web interface, i.e. sucking CD's in,
creating extra <filename class="devicefile">/dev/loop</filename>
entries and seeing what space the CD's are taking up.</para>
</listitem>
<listitem>
<para>I am planning on writing a module for <application>Webmin</application> to
automate this process. That project is currently hosted on SourceForge at
<ulink url="http://sourceforge.net/projects/opencdserver">
http://sourceforge.net/projects/opencdserver</ulink></para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Can copy-protected CD's (e.g. laserlok) be shared in this way?</para>
</question>
<answer>
<para>To the best of my knowledge, No.</para>
<blockquote><para>Others have reported problems to me
trying to share <acronym>ISO</acronym> images made from copy-protected CD's. It
seems that even when using the <quote>unhide</quote> option with <command>mount</command> that
files will remain hidden.
</para>
</blockquote>
</answer>
</qandaentry>
</qandaset>
</sect2>
<!-- section2: Other Instructions Available -->
<sect2 id="otherhelp">
<title>Other Instructions Available on the Web</title>
<indexterm>
<primary>cdserver!other instructions</primary>
</indexterm>
<para>
This section is devoted to instructional materials that others have written or have sent to me.
</para>
<!-- section3: Richard Black -->
<sect3 id="richardblack">
<title>Saving a CD-ROM to a File and Mounting it</title>
<indexterm>
<primary>cdserver!other instructions!richard black</primary>
</indexterm>
<para>
Richard Black (Compaq) has some good pages about Saving CD-ROM's to files and mounting
them in <systemitem class="osname">Red Hat Linux</systemitem>.
</para>
<itemizedlist>
<listitem>
<para>
<ulink url="http://www.geocities.com/rlcomp_1999/cdimage.html">Saving a CD-ROM to a File and Mounting it</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.geocities.com/rlcomp_1999/loop.html">Linux Loop Devices</ulink> - This
page also includes the script below for creating many loop device nodes at once in
<filename class="directory">/dev</filename>.
</para>
</listitem>
</itemizedlist>
<para>
<screen>
Device nodes are required to access the loop devices. You already have loop0 - loop7.
You can run the following loop to create the rest of the nodes (loop8 - loop255).
You can type all of the following lines of code on one single line if you leave off
the trailing "\" characters.
<command>
C=8; echo; echo "Creating loop device nodes."; \
while [ $C -lt 256 ]; do mknod /dev/loop$C b 7 $C; \
echo -n .; C=`expr $C + 1`; done; echo;
</command>
Note: the quoting around the expr section are called backtick's and they are located
with the tilde character ("~") in the upper left hand corner of the keyboard. The
character is not a single quote.
</screen>
</para>
<para>
<emphasis>Thanks to Richard Black for permission to add this info and for linking back to this document.</emphasis>
</para>
</sect3>
<!-- section3: cdtower -->
<sect3 id="cdtower">
<title>CDTower v.06</title>
<indexterm>
<primary>cdserver!other instructions!cdtower</primary>
</indexterm>
<para>
A script to automate the creation of ISO images and share them via Samba
</para>
<para>
by Bradley Wendelboe [krakken (at) icehouse.2y.net] and James Mumm [dart (at) windeath.2y.net]
</para>
<para>
This software is covered under the GPL See <ulink url="http://www.gnu.org/copyleft/gpl.html">
http://www.gnu.org/copyleft/gpl.html</ulink> for details.
</para>
<variablelist>
<varlistentry>
<term>To view/download this script:</term>
<listitem>
<para>
<ulink url="http://www.talcon.com/projects/CDServer-HOWTO/scripts/cdtower_v0.06.sh.txt">
http://www.talcon.com/projects/CDServer-HOWTO/scripts/cdtower_v0.06.sh.txt</ulink>
</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist>
<varlistentry>
<term><emphasis>Caution</emphasis></term>
<listitem>
<para><emphasis>I have no independent test results
of this script - use at your own risk.</emphasis></para>
</listitem>
</varlistentry>
</variablelist>
<para>
<emphasis>Thanks to Bradley Wendelboe for forwarding this script to me.</emphasis>
</para>
</sect3>
</sect2>
<!-- section2: Under Future Consideration -->
<sect2 id="future">
<title>Under Future Consideration</title>
<indexterm>
<primary>cdserver!future</primary>
</indexterm>
<para>
These are things I'm currently looking into, trying to figure out, or planning to get done.
</para>
<itemizedlist>
<listitem>
<para>
Make more scripts available that others have sent to me, either within this howto,
or by hosting them and linking to them from this document.
</para>
</listitem>
<listitem>
<para>
Sharing CD's to Apple and Netware clients (Appletalk and IPX).
</para>
</listitem>
<listitem>
<para>
Compressed ISO Images.
</para>
</listitem>
<listitem>
<para>
Changing CD Shares on the fly (hopefully transparent to users).
</para>
</listitem>
<listitem>
<para>
Adding a module to Webmin to automate the CDServer process.
</para>
</listitem>
<listitem>
<para>
Distribution specific instructions.
</para>
</listitem>
<listitem>
<para>
I have a volunteer for a German translation, hopefully it will be done soon.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<appendix id="gfdl">
<title>GNU Free Documentation License</title>
<!-- - GNU Project - Free Software Foundation (FSF) -->
<!-- LINK REV="made" HREF="mailto:webmasters@gnu.org" -->
<!-- sect1>
<title>GNU Free Documentation License</title -->
<para>Version 1.1, March 2000</para>
<blockquote>
<para>Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.</para>
</blockquote>
<sect1 label="0" id="gfdl-0">
<title>PREAMBLE</title>
<para>The purpose of this License is to make a manual, textbook,
or other written document "free" in the sense of freedom: to
assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or
noncommercially. Secondarily, this License preserves for the
author and publisher a way to get credit for their work, while not
being considered responsible for modifications made by
others.</para>
<para>This License is a kind of "copyleft", which means that
derivative works of the document must themselves be free in the
same sense. It complements the GNU General Public License, which
is a copyleft license designed for free software.</para>
<para>We have designed this License in order to use it for manuals
for free software, because free software needs free documentation:
a free program should come with manuals providing the same
freedoms that the software does. But this License is not limited
to software manuals; it can be used for any textual work,
regardless of subject matter or whether it is published as a
printed book. We recommend this License principally for works
whose purpose is instruction or reference.</para>
</sect1>
<sect1 label="1" id="gfdl-1">
<title>APPLICABILITY AND DEFINITIONS</title>
<para>This License applies to any manual or other work that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. The "Document",
below, refers to any such manual or work. Any member of the
public is a licensee, and is addressed as "you".</para>
<para>A "Modified Version" of the Document means any work
containing the Document or a portion of it, either copied
verbatim, or with modifications and/or translated into another
language.</para>
<para>A "Secondary Section" is a named appendix or a front-matter
section of the Document that deals exclusively with the
relationship of the publishers or authors of the Document to the
Document's overall subject (or to related matters) and contains
nothing that could fall directly within that overall subject.
(For example, if the Document is in part a textbook of
mathematics, a Secondary Section may not explain any mathematics.)
The relationship could be a matter of historical connection with
the subject or with related matters, or of legal, commercial,
philosophical, ethical or political position regarding
them.</para>
<para>The "Invariant Sections" are certain Secondary Sections
whose titles are designated, as being those of Invariant Sections,
in the notice that says that the Document is released under this
License.</para>
<para>The "Cover Texts" are certain short passages of text that
are listed, as Front-Cover Texts or Back-Cover Texts, in the
notice that says that the Document is released under this
License.</para>
<para>A "Transparent" copy of the Document means a
machine-readable copy, represented in a format whose specification
is available to the general public, whose contents can be viewed
and edited directly and straightforwardly with generic text
editors or (for images composed of pixels) generic paint programs
or (for drawings) some widely available drawing editor, and that
is suitable for input to text formatters or for automatic
translation to a variety of formats suitable for input to text
formatters. A copy made in an otherwise Transparent file format
whose markup has been designed to thwart or discourage subsequent
modification by readers is not Transparent. A copy that is not
"Transparent" is called "Opaque".</para>
<para>Examples of suitable formats for Transparent copies include
plain ASCII without markup, Texinfo input format, LaTeX input
format, SGML or XML using a publicly available DTD, and
standard-conforming simple HTML designed for human modification.
Opaque formats include PostScript, PDF, proprietary formats that
can be read and edited only by proprietary word processors, SGML
or XML for which the DTD and/or processing tools are not generally
available, and the machine-generated HTML produced by some word
processors for output purposes only.</para>
<para>The "Title Page" means, for a printed book, the title page
itself, plus such following pages as are needed to hold, legibly,
the material this License requires to appear in the title page.
For works in formats which do not have any title page as such,
"Title Page" means the text near the most prominent appearance of
the work's title, preceding the beginning of the body of the
text.</para>
</sect1>
<sect1 label="2" id="gfdl-2">
<title>VERBATIM COPYING</title>
<para>You may copy and distribute the Document in any medium,
either commercially or noncommercially, provided that this
License, the copyright notices, and the license notice saying this
License applies to the Document are reproduced in all copies, and
that you add no other conditions whatsoever to those of this
License. You may not use technical measures to obstruct or
control the reading or further copying of the copies you make or
distribute. However, you may accept compensation in exchange for
copies. If you distribute a large enough number of copies you
must also follow the conditions in section 3.</para>
<para>You may also lend copies, under the same conditions stated
above, and you may publicly display copies.</para>
</sect1>
<sect1 label="3" id="gfdl-3">
<title>COPYING IN QUANTITY</title>
<para>If you publish printed copies of the Document numbering more
than 100, and the Document's license notice requires Cover Texts,
you must enclose the copies in covers that carry, clearly and
legibly, all these Cover Texts: Front-Cover Texts on the front
cover, and Back-Cover Texts on the back cover. Both covers must
also clearly and legibly identify you as the publisher of these
copies. The front cover must present the full title with all
words of the title equally prominent and visible. You may add
other material on the covers in addition. Copying with changes
limited to the covers, as long as they preserve the title of the
Document and satisfy these conditions, can be treated as verbatim
copying in other respects.</para>
<para>If the required texts for either cover are too voluminous to
fit legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto
adjacent pages.</para>
<para>If you publish or distribute Opaque copies of the Document
numbering more than 100, you must either include a
machine-readable Transparent copy along with each Opaque copy, or
state in or with each Opaque copy a publicly-accessible
computer-network location containing a complete Transparent copy
of the Document, free of added material, which the general
network-using public has access to download anonymously at no
charge using public-standard network protocols. If you use the
latter option, you must take reasonably prudent steps, when you
begin distribution of Opaque copies in quantity, to ensure that
this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you
distribute an Opaque copy (directly or through your agents or
retailers) of that edition to the public.</para>
<para>It is requested, but not required, that you contact the
authors of the Document well before redistributing any large
number of copies, to give them a chance to provide you with an
updated version of the Document.</para>
</sect1>
<sect1 label="4" id="gfdl-4">
<title>MODIFICATIONS</title>
<para>You may copy and distribute a Modified Version of the
Document under the conditions of sections 2 and 3 above, provided
that you release the Modified Version under precisely this
License, with the Modified Version filling the role of the
Document, thus licensing distribution and modification of the
Modified Version to whoever possesses a copy of it. In addition,
you must do these things in the Modified Version:</para>
<orderedlist numeration="upperalpha">
<listitem><para>Use in the Title Page
(and on the covers, if any) a title distinct from that of the
Document, and from those of previous versions (which should, if
there were any, be listed in the History section of the
Document). You may use the same title as a previous version if
the original publisher of that version gives permission.</para>
</listitem>
<listitem><para>List on the Title Page,
as authors, one or more persons or entities responsible for
authorship of the modifications in the Modified Version,
together with at least five of the principal authors of the
Document (all of its principal authors, if it has less than
five).</para>
</listitem>
<listitem><para>State on the Title page
the name of the publisher of the Modified Version, as the
publisher.</para>
</listitem>
<listitem><para>Preserve all the
copyright notices of the Document.</para>
</listitem>
<listitem><para>Add an appropriate
copyright notice for your modifications adjacent to the other
copyright notices.</para>
</listitem>
<listitem><para>Include, immediately
after the copyright notices, a license notice giving the public
permission to use the Modified Version under the terms of this
License, in the form shown in the Addendum below.</para>
</listitem>
<listitem><para>Preserve in that license
notice the full lists of Invariant Sections and required Cover
Texts given in the Document's license notice.</para>
</listitem>
<listitem><para>Include an unaltered
copy of this License.</para>
</listitem>
<listitem><para>Preserve the section
entitled "History", and its title, and add to it an item stating
at least the title, year, new authors, and publisher of the
Modified Version as given on the Title Page. If there is no
section entitled "History" in the Document, create one stating
the title, year, authors, and publisher of the Document as given
on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.</para>
</listitem>
<listitem><para>Preserve the network
location, if any, given in the Document for public access to a
Transparent copy of the Document, and likewise the network
locations given in the Document for previous versions it was
based on. These may be placed in the "History" section. You
may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.</para>
</listitem>
<listitem><para>In any section entitled
"Acknowledgements" or "Dedications", preserve the section's
title, and preserve in the section all the substance and tone of
each of the contributor acknowledgements and/or dedications
given therein.</para>
</listitem>
<listitem><para>Preserve all the
Invariant Sections of the Document, unaltered in their text and
in their titles. Section numbers or the equivalent are not
considered part of the section titles.</para>
</listitem>
<listitem><para>Delete any section
entitled "Endorsements". Such a section may not be included in
the Modified Version.</para>
</listitem>
<listitem><para>Do not retitle any
existing section as "Endorsements" or to conflict in title with
any Invariant Section.</para>
</listitem>
</orderedlist>
<para>If the Modified Version includes new front-matter sections
or appendices that qualify as Secondary Sections and contain no
material copied from the Document, you may at your option
designate some or all of these sections as invariant. To do this,
add their titles to the list of Invariant Sections in the Modified
Version's license notice. These titles must be distinct from any
other section titles.</para>
<para>You may add a section entitled "Endorsements", provided it
contains nothing but endorsements of your Modified Version by
various parties--for example, statements of peer review or that
the text has been approved by an organization as the authoritative
definition of a standard.</para>
<para>You may add a passage of up to five words as a Front-Cover
Text, and a passage of up to 25 words as a Back-Cover Text, to the
end of the list of Cover Texts in the Modified Version. Only one
passage of Front-Cover Text and one of Back-Cover Text may be
added by (or through arrangements made by) any one entity. If the
Document already includes a cover text for the same cover,
previously added by you or by arrangement made by the same entity
you are acting on behalf of, you may not add another; but you may
replace the old one, on explicit permission from the previous
publisher that added the old one.</para>
<para>The author(s) and publisher(s) of the Document do not by
this License give permission to use their names for publicity for
or to assert or imply endorsement of any Modified Version.</para>
</sect1>
<sect1 label="5" id="gfdl-5">
<title>COMBINING DOCUMENTS</title>
<para>You may combine the Document with other documents released
under this License, under the terms defined in section 4 above for
modified versions, provided that you include in the combination
all of the Invariant Sections of all of the original documents,
unmodified, and list them all as Invariant Sections of your
combined work in its license notice.</para>
<para>The combined work need only contain one copy of this
License, and multiple identical Invariant Sections may be replaced
with a single copy. If there are multiple Invariant Sections with
the same name but different contents, make the title of each such
section unique by adding at the end of it, in parentheses, the
name of the original author or publisher of that section if known,
or else a unique number. Make the same adjustment to the section
titles in the list of Invariant Sections in the license notice of
the combined work.</para>
<para>In the combination, you must combine any sections entitled
"History" in the various original documents, forming one section
entitled "History"; likewise combine any sections entitled
"Acknowledgements", and any sections entitled "Dedications". You
must delete all sections entitled "Endorsements."</para>
</sect1>
<sect1 label="6" id="gfdl-6">
<title>COLLECTIONS OF DOCUMENTS</title>
<para>You may make a collection consisting of the Document and
other documents released under this License, and replace the
individual copies of this License in the various documents with a
single copy that is included in the collection, provided that you
follow the rules of this License for verbatim copying of each of
the documents in all other respects.</para>
<para>You may extract a single document from such a collection,
and distribute it individually under this License, provided you
insert a copy of this License into the extracted document, and
follow this License in all other respects regarding verbatim
copying of that document.</para>
</sect1>
<sect1 label="7" id="gfdl-7">
<title>AGGREGATION WITH INDEPENDENT WORKS</title>
<para>A compilation of the Document or its derivatives with other
separate and independent documents or works, in or on a volume of
a storage or distribution medium, does not as a whole count as a
Modified Version of the Document, provided no compilation
copyright is claimed for the compilation. Such a compilation is
called an "aggregate", and this License does not apply to the
other self-contained works thus compiled with the Document, on
account of their being thus compiled, if they are not themselves
derivative works of the Document.</para>
<para>If the Cover Text requirement of section 3 is applicable to
these copies of the Document, then if the Document is less than
one quarter of the entire aggregate, the Document's Cover Texts
may be placed on covers that surround only the Document within the
aggregate. Otherwise they must appear on covers around the whole
aggregate.</para>
</sect1>
<sect1 label="8" id="gfdl-8">
<title>TRANSLATION</title>
<para>Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section
4. Replacing Invariant Sections with translations requires
special permission from their copyright holders, but you may
include translations of some or all Invariant Sections in addition
to the original versions of these Invariant Sections. You may
include a translation of this License provided that you also
include the original English version of this License. In case of
a disagreement between the translation and the original English
version of this License, the original English version will
prevail.</para>
</sect1>
<sect1 label="9" id="gfdl-9">
<title>TERMINATION</title>
<para>You may not copy, modify, sublicense, or distribute the
Document except as expressly provided for under this License. Any
other attempt to copy, modify, sublicense or distribute the
Document is void, and will automatically terminate your rights
under this License. However, parties who have received copies, or
rights, from you under this License will not have their licenses
terminated so long as such parties remain in full
compliance.</para>
</sect1>
<sect1 label="10" id="gfdl-10">
<title>FUTURE REVISIONS OF THIS LICENSE</title>
<para>The Free Software Foundation may publish new, revised
versions of the GNU Free Documentation License from time to time.
Such new versions will be similar in spirit to the present
version, but may differ in detail to address new problems or
concerns. See <ulink
url="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</ulink>.</para>
<para>Each version of the License is given a distinguishing
version number. If the Document specifies that a particular
numbered version of this License "or any later version" applies to
it, you have the option of following the terms and conditions
either of that specified version or of any later version that has
been published (not as a draft) by the Free Software Foundation.
If the Document does not specify a version number of this License,
you may choose any version ever published (not as a draft) by the
Free Software Foundation.</para>
</sect1>
<sect1 label="" id="gfdl-use">
<title>How to use this License for your documents</title>
<para>To use this License in a document you have written, include
a copy of the License in the document and put the following
copyright and license notices just after the title page:</para>
<blockquote><para>
Copyright (c) YEAR YOUR NAME.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with the Invariant Sections being LIST THEIR TITLES, with the
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
</para></blockquote>
<para>If you have no Invariant Sections, write "with no Invariant
Sections" instead of saying which ones are invariant. If you have
no Front-Cover Texts, write "no Front-Cover Texts" instead of
"Front-Cover Texts being LIST"; likewise for Back-Cover
Texts.</para>
<para>If your document contains nontrivial examples of program
code, we recommend releasing these examples in parallel under your
choice of free software license, such as the GNU General Public
License, to permit their use in free software.</para>
</sect1>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-parent-document: ("referenz.sgml" "appendix")
sgml-exposed-tags:nil
sgml-local-ecat-files:nil
sgml-local-catalogs: CATALOG
sgml-validate-command: "nsgmls -s referenz.sgml"
ispell-skip-sgml: t
End:
-->
</article>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:nil
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->