<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE article PUBLIC '-//OASIS//DTD DocBook XML V4.1.2//EN' >

<!--
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>

<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>

	<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ü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:
-->
