Build a Virtual CD-ROM Jukebox
This article describes how to set up a virtual CD-ROM jukebox (VCDJ) using Samba and Linux. A VCDJ is a network server that provides access to the contents of a large number of CD-ROM disks, without the need for more than one CD-ROM drive. In addition, it simultaneously provides access to the ISO 9660 CD-ROM images in a format suitable for burning copies of the CD-ROMs using a CD-RW drive.
A CD-ROM jukebox is usually a file server (or file server appliance) connected to a CD-ROM drive tower. It is able to share (often via SMB/Windows Networking) the contents of a number of CD-ROMs to clients on the network. It's valuable because users of the network do not have to locate a particular CD-ROM physically when they wish to install software or access data.
However, this approach suffers from some drawbacks. The number of CD-ROMs it can serve is limited to the number of CD-ROM drives in its tower(s). To add more CD-ROMs, more drives must be obtained and installed. The CD-ROMs must be in the drives at all times, making them unavailable for other purposes. Also, there is no easy way to make copies of the CD-ROMs (especially bootable copies) without removing them from the server, which makes them unavailable for network users.
A VCDJ surmounts all of these limitations. It is different from a regular file server because, while a regular file server might contain the contents of a number of CD-ROMs, the VCDJ contains an ISO 9660 image of the CD-ROMs. When we're done, it will serve both the images and the contents of the images efficiently (on a file-by-file basis) at the same time. Additionally, the original CD-ROM disks can be stored away where they won't get lost.
Whereas traditional CD-ROM servers are limited by the amount of CD-ROM drives they contain, the VCDJ is limited by the amount of disk space it contains. Hard drives are an order of magnitude cheaper than CD-ROM towers, and they scale better. One 40GB hard drive occupies one spot on an IDE or SCSI controller. It can contain the equivalent of 57 full-sized CD-ROMs (at 700MB each). We would need 57 CD-ROM drives attached to the server to get the equivalent functionality, which is a practical impossibility.
At my place of work, we have found the VCDJ invaluable for publishing the contents of regularly updated software subscriptions. We used to lose track of CD-ROM disks as we loaned them out to others; now we just give them access via their Windows Domain credentials. And, we easily can burn new copies of any bootable CD-ROMs we need. The original disks remain locked away.
To create our VCDJ, we'll need the following pieces:
One CD-ROM drive in a computer running a recent version of Linux. The drive will be used to create ISO 9660 CD-ROM images. (ISO 9660 is the format of the filesystem usually used on CD-ROM disks. So we refer to a soft copy of a CD-ROM disk as an ISO 9660 image.)
Enough hard drive space to hold all of the CD-ROM images we want to serve.
A loopback device, to allow access to the files contained within the ISO 9660 images.
The automounter, to mount the ISO 9660 CD-ROM images automatically.
Samba set up to serve network shares.
The first task is to obtain the ISO 9660 images of the CD-ROM disks. Any tool you can use to, say, make duplicates of CD-ROMs can generate proper images. You also can download ISO images of your favorite Linux distribution.
On Linux, the simplest way to make an image is with cat. Put the desired CD-ROM disk into the CD-ROM drive. Make sure the directory /mnt/images/ exists. If your CD-ROM disk block device is hdc, the image is created like this:
cat /dev/hdc > /mnt/images/image1.iso
You'll want to give the image file a more descriptive name. Reading the image may take awhile. Repeat this process for each CD-ROM disk of which you want an image.
Now that we have the CD-ROM images, we'd like to access the contents of the images. The normal method for accessing the contents of the image is to use a loopback device, like this:
mount -t iso9660 -o loop,ro /mnt/images/image1.iso
/mnt/isosrv/image1/
This mount command says that we are going to mount some data that uses the ISO 9660 filesystem format. It also says to use the loopback device. The loopback device is a nifty kernel feature that allows you to designate a file, in this case /mnt/images/image1.iso, to be used as if it were a character device, like a hard disk or CD-ROM drive. This command mounts the image file in a read-only format. The contents of the CD-ROM image can be seen in /mnt/isosrv/image1/.
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.
Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.
Sponsored by ActiveState
| Non-Linux FOSS: libnotify, OS X Style | Jun 18, 2013 |
| Containers—Not Virtual Machines—Are the Future Cloud | Jun 17, 2013 |
| Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer | Jun 12, 2013 |
| Weechat, Irssi's Little Brother | Jun 11, 2013 |
| One Tail Just Isn't Enough | Jun 07, 2013 |
| Introduction to MapReduce with Hadoop on Linux | Jun 05, 2013 |
- Containers—Not Virtual Machines—Are the Future Cloud
- Non-Linux FOSS: libnotify, OS X Style
- Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer
- Linux Systems Administrator
- Validate an E-Mail Address with PHP, the Right Way
- Introduction to MapReduce with Hadoop on Linux
- RSS Feeds
- Weechat, Irssi's Little Brother
- New Products
- Tech Tip: Really Simple HTTP Server with Python
- Didn't read
6 min 56 sec ago - Reply to comment | Linux Journal
11 min 56 sec ago - Poul-Henning Kamp: welcome to
2 hours 22 min ago - This has already been done
2 hours 23 min ago - Reply to comment | Linux Journal
3 hours 8 min ago - Welcome to 1998
3 hours 56 min ago - notifier shortcomings
4 hours 20 min ago - heroku?
5 hours 57 min ago - Android User
5 hours 58 min ago - Reply to comment | Linux Journal
7 hours 52 min ago
Featured Jobs
| Linux Systems Administrator | Houston and Austin, Texas | Host Gator |
| Senior Perl Developer | Austin, Texas | Host Gator |
| Technical Support Rep | Houston and Austin, Texas | Host Gator |
| UX Designer | Austin, Texas | Host Gator |
| Web & UI Developer (JavaScript & j Query) | Austin, Texas | Host Gator |
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?




Comments
I >love< resurrecting old
I >love< resurrecting old threads....
Beware of possible corruptions.
Long directory chains and long file names work ok with various commercial cds because the operating systems support those formats; when creating a server using ISO9660 formatted images, the ISO9660 format may want you to rename directories and/or files. When you rename a file from a Windows compatible CD, you did so for ISO9660 compatibility. Now the problem arises where program installers will fail to find files because their inf files state /some/specific/location/and/specific.fil, but for ISO9660 had you rename the structure, so the path and file are not exactly where the inf file goes to get it, and your installation will crash. Older installers might not allow user debugging, so beware how you rename structures when ISO9660 creation demands you to rename things.
Been there. Suffered that.
Re: Build a Virtual CD-ROM Jukebox
Is that passible as a booting device under vmware?
Re: Build a Virtual CD-ROM Jukebox
I followed the outlines of the article and now have an automounting CD-ROM server for our church sunday school department. It works well. Now we can avoid kids destroying cdroms. A couple of things not mentioned:
1. Using the "unhide" option in the mount command caused problems with some CD titles. Removing it elminated the problem.
2. Apparently there is an 8-mount limit with RedHat 9. Any attempt to mount an additional volume causes one of the others to umount. I could not find where to change the automount quota under RH 9. I have already increased the number of loop devices from 15 to 21.
Re: Build a Virtual CD-ROM Jukebox
Follow up:
I found the problem. After adding the following to /etc/modules.conf:
options loop max_loop=64
Everything is automounting just fine.
Dan
Re: Build a Virtual CD-ROM Jukebox
This process is remarkably similar to the CD Server HOWTO at the LDP (tldp.org) which has existed for years..
Re: Build a Virtual CD-ROM Jukebox
Yeah but I *found* this one.