Sun
12
Mar '06
DVD burning without SCSI emulation
by schlumpf filed under Computer, articles

While I was trying to figure out how to make my computer burn a DVD, I found this quote in someone’s signature in a newsgroup post:

UNIX is user-friendly, it’s just picky about who it’s friends are.

This definitely is true for linux as well. And today I got one step closer to being Linux’ best friend.

When I googled for “dvd ide linux” I read in most articles that you can’t burn DVDs on an IDE drive if you don’t enable SCSI emulation in the kernel. So I tried to do that, everything went fine until I tried to make my boot loader (yes, I know Lilo is deprecated in favour of grub) decided to announce a floating point error rather than writing the new config to the boot sector. Meanwhile, I had found some hints that with 2.6 Kernels SCSI emulation was o longer required and that cdrecord would recognise IDE drives as well. And it did indeed:

$ cdrecord --scanbus dev=ATAPI
scsibus0:
0,0,0 0) 'TEAC ' 'DV-W58G-A ' 'U4S2' Removable CD-ROM

That doesn’t mean xcdroast is willing to burn a DVD, though. It works fine for CD-ROM, but with DVDs it complains that it can’t find the SCSI driver for some strange device I didn’t even know my computer had.
Then I read the name growisofs in some forum thread and I looked it up and landed on the DVD+RW/+R/-R[W] for Linux page. I had seen that before but was scared away by all that talk about kernel patches and stuff. Now I read on and it looked very promising and very simple. A quick

emerge -va dvd+rw-tools

installed the package and I was ready to go:

growisofs -Z /dev/hdc -R -J /home/schlumpf

writes the data from the directory /home/schlumpf to the dvd device /dev/hdc, writes a header (the -Z param; use it for DVD+R) and writes Rock Ridge protocol (-R) and Joliet (-J) extended information on the disk.
By the way, growisofs is only a frontend for the mkisofs command which should be present in nearly all linux installations.

This is a prime example of the power and curse of Linux: some things are so simple you just don’t think of them!
Here’s another: How to read a file backwards? Reverse cat: tac.


Any comments? Or questions? Just leave a Reply: