CDServer-HOWTO/ 0040755 0000765 0000770 00000000000 07163240744 012462 5 ustar rtata rtata CDServer-HOWTO/CDServer-HOWTO.sgml 0100644 0000765 0000770 00000045342 07163240737 015730 0 ustar rtata rtata
CDServer-HOWTORandolphTatarandy@talcon.comv1.00, 23 September 2000v1.0023 September 2000rjt
Conversion from linuxdoc sgml to DocBook v3.1
v0.101 September 2000rjt
Conversion to linuxdoc sgml from text/html
v0.0118 August 2000rjt
First version released in text and html. Still need to
add section on kernel modifications and creating more
loop devices.
cdserver
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.
Introductioncdserver!introduction
With disk space becoming less expensive (30GB IBM 7200rpm for $160 in
08/2000), it is now 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.
I've setup my CD Server on a P120 with 64MB RAM, using one of these
large drives.
Intended Audience
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.
Things You'll Needcdserver!utilities needed
The commands and utilities needed to setup your own CD Server
are already included in most (if not all) Linux distributions.
Linux Distribution (This HOWTO uses
Linux-Mandrake for the examples)
dd - Converts and copies a file (a standard Unix command)
mount - Mounts and Unmounts filesystems (a standard Unix command)
Samba - A Windows SMB/CIFS fileserver for Unix
NFS (optional) - Network File System (usually included in Linux distributions)
Caveats
The Linux-Mandrake distribution I'm using (7.0), only has
support for 8 loop devices compiled into the kernel (see
to increase this number).
In short, you'll only be able to share 8 CD's on a network at most
with this default value, to share more than 8, you'll need to do a
little more work.
Suggested ReadingUsing Samba
by: Robert Eckstein, David Collier-Brown, Peter Kelly
1st Edition November 1999, O'Reilly and Associates, Inc.
ISBN 1-56592-449-5,
Copyrightcdserver!copyrightCDServer-HOWTO, Copyright (c) 2000, Randolph Tata, All Rights Reserved
Please freely copy and distribute (sell or give away) this document in
any format. It's requested that corrections and/or comments be fowarded
to the document maintainer
(Randolph Tata).
You may create a derivative work and distribute it provided that you:
Send your derivative work (in the most suitable format such as
sgml) to the LDP (
Linux Documentation Project) or the like for posting
on the Internet. If not the LDP, then let the LDP know where it is
available.
License the derivative work with this same license or use GPL.
Include a copyright notice and at least a pointer to the license used.
Give due credit to previous authors and major contributors.
If you're considering making a derived work other than a translation,
it's requested that you discuss your plans with the current maintainer.
Disclaimer
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.
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.
Naming of particular products or brands should not be seen as endorsements.
You are strongly recommended to make a backup of your system before
major installation and should make backups at regular intervals.
Newscdserver!recent news
This is the first sgml release (version 1.00). SGML source
for this document is available. Any additions/changes should be made
to the sgml source, not derivative formats.
This documents home page is at the
Open CD Server Project
site page in case you need the latest version, or there is a problem
with the page format you are viewing.If you have the capacity it would be nice to make the CDServer-HOWTO
available in a number of formats and languages.Credits
In this version I have the pleasure of acknowledging
Mark F. Komarinski markk (at) linuxdoc.org LDP Author Guide
Jorge Godoy godoy (at) metalab.unc.edu LDP Author Guide
David C. Merrill dcmerrill (at) mindspring.com LDP Author Guide
Stein Gjoen sgjoen (at) nyx.net HOWTO-Template
Gregory Leblanc gleblanc (at) cu-portland.edu HOWTO-Template
Greg Ferguson gferg (at) sgi.com HOWTO-Template
Translations
No Translations yet.
Any comments or suggestions can be mailed to my
email address at
Talcon Information Systems: randy@talcon.com.
ProcedureSummary of Stepscdserver!procedure
Create a large partition to hold the CD Image Files.
Copy the CD to an image file using the "dd" command.
Mount the CD image file within the directory tree.
Share the directory on the network using Samba, NFS, etc.
Creating the ISO Imagescdserver!creating images
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.
Login as root or "su" to root.
bash# df -h
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
Here the /home filesystem has the most available space, so it is the
most suitable filesystem to use for dumping the CD images to.
bash# cd /home
bash# mkdir image
bash# cd image
Now, copy the CD to an iso image. You must know the device name
of your CD-ROM drive (usually /dev/cdrom, it could be /dev/scd0 for
SCSI CD-ROM's) I'll use the Mandrake distribution CD-ROM as an Example:
bash# dd if=/dev/cdrom of=mndrk71.iso
The "if=" is the input file, the "of=" is the output file. You
should see a message stating the number of records in and number of
records out (hopefully with no i/o errors).
Mounting the ISO Imagescdserver!mounting images
The next step is to mount the iso image file. Let's create
a directory under /mnt to place the mounted file.
bash# cd /mnt
bash# mkdir iso
bash# cd iso
bash# mkdir mndrk71
Now mount the ISO image file to this newly created directory
bash# mount -o loop -t iso9660 -r /home/image/mndrk71.iso /mnt/iso/mndrk71
The "-o loop" means use the option that mounts a file as a block
device. The "-t iso9660" means that the file is in the iso9660 CD-ROM
format. The "-r" means to mount read-only.
Now you can:
bash# cd mndrk71
bash# ls -al
You should see a listing (ls) of the files and directories that are on
the actual CD (only now they're inside the iso image file, and that's
what you're currently looking at!)
Mounting the Image upon System Restartcdserver!editing fstab
Now that we've manually mounted the image, and made sure it works,
an entry needs to made in the /etc/fstab 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. /home (I
use vim, but Emacs, Joe, Pico or Jed will work just as well):
bash# vim /etc/fstab
After the line that looks like the following (or whichever filesystem you've placed your images):
/dev/hda8 /home ext2 defaults 1 2
Insert the following line with your text editor:
/home/image/mndrk71.iso /mnt/iso/mndrk71 iso9660 ro,loop,auto 0 0
Sharing it on a Windows Network using Sambacdserver!network sharing
You'll need to have Samba installed and working to perform the next
steps (that's outside the scope of this instruction). 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 http://us1.samba.org/samba/samba.html for installation instructions,
binaries, and/or the source code.
To share your mounted CD's on a windows network, simply create
a stanza in the /etc/smb.conf file similar to the following:
[cdimages]
comment = All Shared CD Images
path = /mnt/iso
public = yes
writable = no
This will share all the subdirectories under the /mnt/iso 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:
C:\> net use I: \\yourlinuxmachine\cdimages
Each CD image will now appear as a subdirectory on the I: drive of
your Windows machine.
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 /etc/smb.conf file.
[mndrk71]
comment = Mandrake Linux 7.1
path = /mnt/iso/mndrk71
public = yes
writable = no
Then, at your MS-DOS Prompt, mount it with the following command:
C:\> net use m: \\yourlinuxmachine\mndrk71
Note:
The Samba smb.conf file stanzas presented here are
simplified, and not entirely secure. Many more options exist for
a Samba share which limit who can mount the shares, control how
user authentication is performed, whether the share is even
browseable through Network Neighborhood on the Windows machines.
Sharing the Images on a Unix network using NFScdserver!nfs sharing
Make sure that NFS is running and configured correctly on
your Linux machine, then add the following to the /etc/exports
file using your own preferred options:
# sample /etc/exports file
/mnt/iso (ro,insecure,all_squash)
Now, when typing "showmount -e yourlinuxmachine" you should see
that the /mnt/iso is included in the exports list.
Adding Support for More Loop Devices cdserver!kernel tweaking
The Linux-Mandrake distribution I'm using (7.0), only has
support for 8 loop devices compiled into the kernel. In short, you'll
only be able to share 8 CD's on a network with this default value.
To support more than the default, you'll need to follow this section.
If you're new to Linux, you've going to learn some cool things by
accomplishing this.
Tweaking the Kernel
To increase the number of loop devices supported by the kernel, you'll
need to edit the /usr/src/linux/drivers/block/loop.c file.
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 GPL licensing).
Change the number in the following line to however many loop devices
you'll need.
#define MAX_LOOP 16
Compile the new kernel or module as the case may be. If you need some
help getting started with this, read /usr/src/linux/README.
Creating the Loop Devices in /devcdserver!creating loop devices
The mknod command creates the devices in /dev. The loop devices have a major
number of "7", and the minor numbers begin at "0". If your MAX_LOOP was defined
as 8 in /usr/src/linux/drivers/block/loop.c, you should have loop0 thru loop7
in /dev. To create the /dev/loop8 device, use the following command (subsitute
the appropriate number for the "8" in the example below).
mknod -m660 /dev/loop8 b 7 8
Check Owner/Group & Permissions on the new file. You can change the owner
and group with the following command:
chown root.disk /dev/loop8
You can change the permissions using the following command:
chmod 666 /dev/loop8
CDServer-HOWTO/index.html 0100644 0000765 0000770 00000007620 07163240744 014461 0 ustar rtata rtata
First version released in text and html. Still need to
add section on kernel modifications and creating more
loop devices.
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.