April 24, 2000: administrative notes
xcdroast, cdrdao, cdrecord, and mkisofs have been installed. The scsi sg* devices go to the user on the console via /etc/security/console.perms. xcdroast and cdrecord are setuid to root so that they can assign process priorities as necessary. However, neither xcdroast nor cdrecord are executable by all; they're restricted to the group cdburner. With these settings, users should be able to burn without needing the root password while some semblance of overall system security is maintained. I don't think cdrdao needs to be setuid to root.
xcdroast has been run with -nonroot so that the casual user can't accidentally wipeout a partition. The temp's been set as /home/cd-tempspace.
Note that xcdroast has its own version of cdrecord and mkisofs in /usr/lib/xcd... At least xcdroast's cdrecord is older. mkisofs is probably the same deal.
Sept 29, 2000: How to burn CDs
A couple of quick thoughts: First, xcdroast is installed, but I haven't tried it. You can give it a whirl if you strongly prefer a pretty point and click interface. Second, cdrecord has a bug such that if you cancel it while it's running (e.g., you were doing a test run with -dummy and then hit control-c), you'll get an error message on the subsequent run. Just ignore the error and issue the cdrecord command again.
A bunch of files
Most of the time when you want to burn a disc, you're thinking about taking a bunch of files from one or more directories and putting them on a CD. This is actually a two step process. First, make an image file which contains everything you want on the CD. To do so, you'll need as much free disk space as what you're planning to burn.
mkisofs -a -R -o imagename directory/filename(s)
Note that the contents of the directory are placed in the image, but the directory itself is not. You could probably work around this via "grafting", but if you're going to get all complexicated about this, go read the man page for mkisofs. If this makes no sense to you, just pretend I never brought it up. It's not that big of a deal.
If you find a nice person who has root access, you can try to convince him/her to mount your image so you can make sure everything's in order before you burn. Tell that nice superuser to execute the following...
mount imagename -r -t iso9660 -o loop mountpoint
This is an optional step, so don't make that nice person with root access mean by repeatedly asking for this to be done.
Now turn the image into a CD.
cdrecord -v imagename
That's it. All the necessary settings have already been made in /etc/cdrecord.conf. Don't forget to delete the image file when you're done.
rm imagename
For all you people looking for extra credit by piping mkisofs to cdrecord, don't bother. As far as I can tell, cdrecord doesn't like that.
Images
An image is a single file that contains the exact entire contents of a CD, like the RedHat installation CD images or the image you made with mkisofs. It's basically a raw dump of the CD: files, filesystem, and all. The image filename might end with .iso, .img, or .bin. Burning a CD image is easy. Just issue the following...
cdrecord -v imagename
Copying a CD
You can copy a CD by treating it as a bunch of files and using the method described above, but the following method should be faster. Dump the CD to an image...
dd if=/dev/cdrom of=imagename
Then burn the image...
cdrecord -v imagename
From a geek point of view, this method is somewhat more satisfying because a "more exact" copy is made.
Audio
Burning audio is different from burning da... wait a minute. I suspect you are attempting to engage in an illegal activity. I cannot be a party to this. I will not condone an action that will lead us to war.
December 15, 2000
RedHat 7.0 doesn't support the A7V's onboard Promise ATA100 controller by default, so I did all my OS installs and compiled in ATA100 support through the ATA66 controller. This might not be the best way for everyone, but in my case, the case was open anyway. If your HD's already on the ATA100 controller and you don't want to switch back and forth between controllers, take a look at the UltraDMA mini-howto for suggestions.
The procedure I used to add ATA100 support follows:
§ Preflight
Start with RedHat 7.0 workstation class install.
Install necessary RPMs to compile kernel. The necessary files are detailed in RedHat's Kernel Upgrade HOWTO. To check what you've already got...
rpm -qa | grep kernel
I had to install kernel-ibcs and kernel-source. Everything else was already there. RedHat 7.0 also requires kgcc.
For various reasons, I decided to stay with kernel 2.2.16-22 so a patch was necessary. Kernel 2.4 has inherent ata100 support, but it's still in beta. The patch for 2.2.16-22 is at...
§ Applying the patch
First, unzip the patch with bunzip
Before applying the patch, I did a "dry-run" to look for errors. I put the patch in /usr/src/linux/patches and then did...
cd /usr/src/linux
patch -p1 --dry-run < patches/ide.2.2.16.all.20000825.patch > patches/errors