DVD Backup

This doc demonstrates a real live example of how to make a backup of a DVD movie that will play in a DVD player, and true to the notion of archival storage for backup, this method removes the CSS encryption of the DVD, so that an md5sum of the entire disc may be performed, and individual md5sums of the files are also performed, and placed in the VIDEO_TS directory so that, should a restoration of the backup be needed, you can know with certainty your restored DVD is every bit as perfect as the original.

If you don't already have the software, here are some places you can get it.

Open Source DVD Decryption libraries:

filename site size (bytes)
a52dec-0.7.4-fr3.src.rpm http://liba52.sourceforge.net/ 245461
libdvdcss-1.2.8-1.fr.src.rpm http://www.videolan.org/libdvdcss/ 214722
libdvdread-0.9.4-fr3.src.rpm http://linuxtv.org/dvd/ 256305
libmad-0.15.0b-2.fr.src.rpm http://www.underbit.com/products/mad/ 404335

An Open Source Player for testing the Decryption libraries:

filename site size (bytes)
ogle-0.9.1-fr3.src.rpm http://www.dtek.chalmers.se/groups/dvd/
http://www.dtek.chalmers.se/~dvd/
490287
ogle_gui-0.9.1-fr2.src.rpm http://www.dtek.chalmers.se/groups/dvd/ 396703

Open Source DVD files copying tool: http://vobcopy.org/download/vobcopy-0.5.14.shtml

Open Source ISO9660 filesystem imaging tool: (mkisofs) ftp://ftp.berlios.de/pub/cdrecord/cdrtools.tar.gz

Open Source DVD Burner:

Info: http://fy.chalmers.se/~appro/linux/DVD+RW/
Program: http://fy.chalmers.se/~appro/linux/DVD+RW/tools/

Once the software has been installed, not covered here, the installation is beyond the scope of this document; the procedure to backup a DVD movie is as follows:

Insert DVD

run...      mount /media/cdrom0

run...      vobcopy -v -m -i /media/cdrom0

run...      umount /media/cdrom0

Remove DVD

run...      cd (Movie title directory)

dryrun...   mkisofs -v -dvd-video -print-size -o movie.iso .

Check the size it must be less than Four Billion Seven hundred Million bytes.
If larger, get a "double layer" disc, and the additional software.

run...      mkisofs -v -dvd-video -o ../movie.iso .

Insert blank DVD

run...      growisofs -speed=1 -dvd-compat -Z /dev/scd0=../movie.iso

Remove recorded DVD blank, and insert it in player.

That is the gist of what this document talks about doing. There are a million caveats, work arounds, and got'yas, you need to know about, and I credit you as to having most of it down pat, as you are assumed to be a competent Linux user. What I do here is show the whole procedure in excruciatingly fine detail.

A few things of note:

  1. I never do time critical command line tasks with the X-server running, X is a very powerful piece of software, that can unexpectedly autostart CPU intensive processes without regard for the jeopardy they are placing the time critical task in. For instance some screen savers can chew up 90 percent of the CPU time, rendering your gigahertz machine into a 100MHz Pentium. If the DVD writer buffer memory runs dry, the disc is toast.
  2. The scope of this doc assumes you know how to run POSIX style Unix software installation, which usually means extracting the, often compressed tarballs, running the ./configure script to gen up a Makefile suitable for your machine, and then to run make. I assume you know what to do when one of these phases reports an error, such as a missing library. I assume you know this stuff cold, that you do this on your own, AND that you have downloaded the DeCSS decryption alternative libraries to dvdread, and installed them, and have proven to your self that they work, on your machine. That you have downloaded, and built the VobCopy utility, and gotten it working, as well as the mkisofs utility that is bundled with CDRtools, and that you have installed the DVD writing utility growisofs, and have had some experience running them. Such things are not covered, nor does this doc cover editing, and authoring DVDs, the resulting backup DVD you make using this method, will play the movie, and menu driven special features, in precisely the same way your original encrypted DVD movie played them.
  3. I use best practices where possible, and where they make sense, for instance very little prevents an unpriv user from mirroring the encrypted data as ordinary MPEG video, and then creating the UDF ISO9660 image file suitable for writing to a DVD+R. I consider these the first and second phase, and with simple permission bit changes, an unpriv user can carry them out. The writing phase, does complex things with DMA, and needs superuser status to carry them out.
  4. I do not consider the 2.6 kernel ready for prime time, the last I checked Alan Cox was working on a race, or semaphore condition that caused some models of CD-rom drives to panic the kernel. I therefore consider the effort of switching between Emulated SCSI, and standard ATAPI IDE, a small price to pay, for the added stability of the older 2.4 kernel. Especially with my burn_prep script to automate the switch between the two modes. I include an example of the burn_prep script near the end of this file.

For an unpriv user to Mirror the files of a DVD in a reasonable period of time you need read/write privs of the drive, and DMA needs to be turned on, see "using_dma = 1 (on)" below, without this, it can take five times as long to read the data. Also, only root can change either of these settings, and if during the Mirror process, you get a hard error, DMA will turn itself off.

PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ ls -al /dev/hdc
brw-rw-rw-  1 root cdrom 22, 0 Feb 25  2005 /dev/hdc
PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ /sbin/hdparm -v /dev/hdc

/dev/hdc:
 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  1 (on)
 readahead    =  8 (on)
 HDIO_GETGEO failed: Invalid argument

There is an inherent limit to the amount of data that can be stored on any disc, CD-r discs hold 681,984,000 bytes. Oh you can put more than that on one, by burning into the leadout area, but such a disc does not conform to the ISO9660 standard for a CD-rom. To burn a DVD, and still adhere to the standard, as far as I have been able to determine, you should not burn more than 4,700,000,000 bytes. I've read that the number was chosen by someone to be a nice even number. It makes a nice story, but it's not very scientific, I would expect some multiple of a power of two, or something like that. That said, having no other value to work with, I used it. If you use it to compute the maximum number of extents you get 2294921, similarly if you use it to compute the maximum allowable number of 1K byte blocks you get 4589842. Therefore if you mount a DVD, and run the diskfree utility df you can quickly determine if VobCopy's Mirror data will fit on a single layer disc.

Example:

PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ mount /media/cdrom0

PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2              5763648   2093680   3377184  39% /
tmpfs                   258180         0    258180   0% /dev/shm
/dev/hda1                23863         0     23863   0% /c
/dev/hda4            186015092 171074380   5491684  97% /home
/dev/hdd1            199104448 171394460  25718572  87% /video
/dev/hdc               4310474   4310474         0 100% /media/cdrom0

From the above exercise, since 4310474 is less than 4589842 this DVD will fit on a single layer DVD+R. The VobCopy Mirror command will create a subdirectory at the PWD,(Present Working Directory) whose name is chosen from information on the DVD movie being examined. Under that directory, is a VIDEO_TS directory, at the conclusion of the run are about 4.3GiB of files that make up the movie. For the Mirror process to work the DVD must be mounted in the filesystem hierarchy. This is not the case in simple vob file extraction (read the manual). The meaning of the switches are as follows:


vobcopy -v -m -i /media/cdrom0
^-----^------------------------- The VobCopy command
        ^^---------------------- Be verbose, tell what is happening
           ^^------------------- Make a Mirror archive
              ^^---------------- Give the path to the mounted  DVD
                 ^-----------^-- Debian puts it here  /media/cdrom0
                                 if you were using RedHat try /mnt/cdrom

For convenience I preface the run with the time command, a kind of software stopwatch, so I can become acquainted with how long these usually take. Ditto for the three echos of the "bell" character code, which makes three beeps to alert me when it's done.

Now the actual run:


PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ time vobcopy -v -m -i /media/cdrom0 ; echo -n -e "\007" ; sleep 1 ; echo -n -e "\007" ; sleep 1 ; echo -n -e "\007" ; sleep 1

libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000120
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x000033de
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x000039e8
libdvdread: Elapsed time 1
libdvdread: Found 1 VTS's
libdvdread: Elapsed time 1
  25MB of   25MB written ( 99.9 % )
writing to /video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS/VTS_01_0.BUP
  80kB of   80kB written
writing to /video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS/VTS_01_0.IFO
  80kB of   80kB written
writing to /video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS/VTS_01_0.VOB
   3MB of    3MB written ( 98.0 % )
writing to /video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS/VTS_01_1.VOB
  44MB of 1024MB written ( 4.3 % )

------------------------ many more files get copied -------------------------


1024MB of 1024MB written ( 100.0 % )
writing to /video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS/VTS_01_4.VOB
1024MB of 1024MB written ( 100.0 % )
writing to /video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS/VTS_01_5.VOB
  84MB of   84MB written ( 99.8 % )

real    15m53.939s
user    0m24.370s
sys     0m16.090s

At this point the speaker beeps three times, at regular one second intervals, to let you know the reading process has completed. Also note the above three lines, beginning real, user, and sys. These are the report from the time command, this will teach you how long you should expect to wait for the process to complete on some future DVD backup, for your particular hardware.

Note: Blade Runner is a frequently viewed DVD, as such it was badly scratched, but none were circular scratches radiused from the center of the hole in the DVD and it copied just fine. At this point, we're done with the original DVD, so the next command un-mounts, it so we can remove it, followed by a recursive directory list, ls -alR to show you what the files will look like.


PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ umount /media/cdrom0

PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ ls -alR
.:
total 12
drwxr-xr-x  3 larry larry 4096 Nov 14 14:34 .
drwxr-xr-x  8 larry larry 4096 Nov 14 11:24 ..
drwxr-xr-x  3 larry larry 4096 Nov 14 11:50 BLADE_RUNNER_16X9

./BLADE_RUNNER_16X9:
total 12
drwxr-xr-x  3 larry larry 4096 Nov 14 11:50 .
drwxr-xr-x  3 larry larry 4096 Nov 14 14:34 ..
drwxr-xr-x  2 larry larry 4096 Nov 14 12:06 VIDEO_TS

./BLADE_RUNNER_16X9/VIDEO_TS:
total 4314172
drwxr-xr-x  2 larry larry       4096 Nov 14 12:06 .
drwxr-xr-x  3 larry larry       4096 Nov 14 11:50 ..
-rw-r--r--  1 larry larry      12288 Nov 14 11:50 VIDEO_TS.BUP
-rw-r--r--  1 larry larry      12288 Nov 14 11:50 VIDEO_TS.IFO
-rw-r--r--  1 larry larry   26509312 Nov 14 11:50 VIDEO_TS.VOB
-rw-r--r--  1 larry larry      81920 Nov 14 11:50 VTS_01_0.BUP
-rw-r--r--  1 larry larry      81920 Nov 14 11:50 VTS_01_0.IFO
-rw-r--r--  1 larry larry    3166208 Nov 14 11:50 VTS_01_0.VOB
-rw-r--r--  1 larry larry 1073739776 Nov 14 11:56 VTS_01_1.VOB
-rw-r--r--  1 larry larry 1073739776 Nov 14 12:00 VTS_01_2.VOB
-rw-r--r--  1 larry larry 1073739776 Nov 14 12:03 VTS_01_3.VOB
-rw-r--r--  1 larry larry 1073739776 Nov 14 12:06 VTS_01_4.VOB
-rw-r--r--  1 larry larry   88522752 Nov 14 12:06 VTS_01_5.VOB
PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$

Next, although not a requirement of a DVD backup, it is generally good practice to run an md5sum of all the files in the VIDEO_TS and deposit the file containing those sums in the same directory, making sure you follow uppercase only, eight dot three file name convention. Eight dot three refers to the type of filename that would be valid in DOS, or CP/M. Care must be taken in choosing the file name for the MD5SUM file, so that it won't look anything like the other files in the VIDEO_TS directory.


PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ pushd BLADE_RUNNER_16X9/VIDEO_TS/
/video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS /video/DVD/VobMirror/Blade_runner ~
PWD = /video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS
[larry@theater]$ md5sum * > BLADERNR.MD5

PWD = /video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS
[larry@theater]$ md5sum -c -v BLADERNR.MD5
VIDEO_TS.BUP   OK
VIDEO_TS.IFO   OK
VIDEO_TS.VOB   OK
VTS_01_0.BUP   OK
VTS_01_0.IFO   OK
VTS_01_0.VOB   OK
VTS_01_1.VOB   OK
VTS_01_2.VOB   OK
VTS_01_3.VOB   OK
VTS_01_4.VOB   OK
VTS_01_5.VOB   OK

In the next major phase we undertake, the making of an ISO9660 UDF image file suitable for a DVD player, all input file names are expected to be uppercase, eight dot three file name convention, however, coming out of this process, they switch to lowercase. To make the contents of the md5sum file directly usable, in the resulting DVD Disc, you need to open the file in an editor, and change the case from upper, to lower case, inside the file data ONLY. DO NOT UNDER ANY CIRCUMSTANCES ALTER THE NAMES OF THE FILES IN THE DIRECTORY THEMSELVES, or the resulting DVD will not be sorted correctly!


PWD = /video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS
[larry@theater]$ emacs BLADERNR.MD5
PWD = /video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS
[larry@theater]$ rm -i BLADERNR.MD5~


PWD = /video/DVD/VobMirror/Blade_runner/BLADE_RUNNER_16X9/VIDEO_TS
[larry@theater]$ popd
/video/DVD/VobMirror/Blade_runner ~
PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ 

Next we make the ISO9660 UDF image file, in two parts. The first we do a dry-run to ascertain whither the ISO image will fit on a single layer DVD disc. If that is OK, we can do it for real. The echo ExtentMax = 2294921 is a convenience item, to remind us at the of the run how large a single layer DVD disc really is. The meaning of the switches are as follows:


mkisofs -v -dvd-video -print-size -o BladeRnr.iso BLADE_RUNNER_16X9
^-----^----------------------------------------------- The Make ISO FS command
        ^^-------------------------------------------- Be verbose, tell what
                                                       is happening in detail
           ^--------^--------------------------------- This is perhaps the
                                                       most important switch of
                                                       them all.  This switch
                                                       sorts uppercase file
                                                       names, and inserts pad
                                                       spacing at certain
                                                       points in their data,
                                                       and changes to lower
                                                       case the resulting names
                                                       while maintaining UDF
                                                       filesystem compatibility
                      ^---------^--------------------- This switch blocks all
                                                       file output, making this
                                                       a dry-run, that quickly
                                                       determines what the
                                                       resulting ISO file size
                                                       will be in advance.
                                  ^^------------------ This switch designates
                                                       what the output filename
                                                       will be, when data is
                                                       written.
                                     ^----------^----- Here we give that name
                                                  ^->- Here we designate the
                                                       input subdirectory that
                                                       VobCopy's Mirror feature
                                                       has assigned us.

Dry-Run:


PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ mkisofs -v -dvd-video -print-size -o BladeRnr.iso BLADE_RUNNER_16X9 ; echo ExtentMax = 2294921
mkisofs 2.01-unofficial-iconv (i686-pc-linux-gnu)
Scanning BLADE_RUNNER_16X9
Scanning BLADE_RUNNER_16X9/VIDEO_TS
Total extents scheduled to be written = 2155387
2155387
ExtentMax = 2294921

Working-Run:


PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ mkisofs -v -dvd-video -o BladeRnr.iso BLADE_RUNNER_16X9 ; echo ExtentMax = 2294921

------------- only the last of the output is shown for brevity -------------


 99.52% done, estimate finish Mon Nov 14 14:54:19 2005
 99.75% done, estimate finish Mon Nov 14 14:54:19 2005
 99.98% done, estimate finish Mon Nov 14 14:54:19 2005
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 2048
Path table size(bytes): 26
Done with: The File(s)                             Block(s)    2154955
Writing:   UDF Anchor end volume                   Start Block 2155236
Done with: UDF Anchor end volume                   Block(s)    1
Writing:   UDF Pad end                             Start Block 2155237
Done with: UDF Pad end                             Block(s)    150
Max brk space used 21264
2155387 extents written (4209 MB)
ExtentMax = 2294921
PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ ls -al
total 4315012
drwxr-xr-x  3 larry larry       4096 Nov 14 14:51 .
drwxr-xr-x  8 larry larry       4096 Nov 14 11:24 ..
drwxr-xr-x  3 larry larry       4096 Nov 14 11:50 BLADE_RUNNER_16X9
-rw-r--r--  1 larry larry 4414232576 Nov 14 14:54 BladeRnr.iso
PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$

At this point we've done all we can do as an unprivileged user, the rest is a job for SuperUser. You've probably used the su command before, but if you do it the way I show here, the root account's path, and system variables, are not set if you simply key in su<enter> the long form I show below, can make a difference in whither some installations of software have all the right execution paths.

Then for simplicity here, I log you into a PWD where the ISO image file we just created is located, using the pushd command so that the burning phase has a simpler command line, you can use absolute paths if you like. To burn the DVD also requires SCSI emulation of the IDE-ATAPI cable, I wrote a script to handle this, I show in my example burn_prep program two drives being set to SCSI, and or back to simple IDE. It is doubtful my example has any chance of working on your setup, you will very likely have to rewrite it to match your hardware. Then in the last step, you actually burn the DVD disc. No special switch is needed for Plus-R or Minus-R, the command I show makes no such distinction. The meaning of the switches are as follows:


growisofs -speed=1 -dvd-compat -Z /dev/scd0=BladeRnr.iso
^-------^------------------------------------------------ DVD burner command
          ^------^--------------------------------------- My version's
                                                          documentation states
                                                          flatly to set this
                                                          to 1
                   ^---------^--------------------------- This switch says the
                                                          ISO image file has
                                                          already been prepared
                               ^^------------------------ Burn an initial
                                                          session to the DVD
                                  ^-------^-------------- to device /dev/scd0
                                           ^------------- using data from this
                                            ^----------^- named file
                                                          BladeRnr.iso

OK here we go, to do it for real:


PWD = /video/DVD/VobMirror/Blade_runner
[larry@theater]$ su - root
Password:
theater:~# pushd /video/DVD/VobMirror/Blade_runner/
/video/DVD/VobMirror/Blade_runner ~
theater:/video/DVD/VobMirror/Blade_runner#


theater:/video/DVD/VobMirror/Blade_runner# /root/scripts/burn_prep
Enter the letter I for IDE, or the letter S for SCSI emulation.
s

rmmod: module ide-scsi is not loaded
scsi_mod: Device or resource busy
cdrom: Device or resource busy
Cdrecord-Clone 2.01.01a01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling
NOTE: this version of cdrecord is an inofficial (modified) release of cdrecord
      and thus may have bugs that are not present in the original version.
      Please send bug reports and support requests to <cdrtools@packages.debian.org>.
      The original author should not be bothered with problems of this version.

Linux sg driver version: 3.1.25
Using libscg version 'schily-0.8'.
scsibus0:
        0,0,0     0) 'TOSHIBA ' 'CD/DVDW SD-R5372' 'TU53' Removable CD-ROM
        0,1,0     1) *
        0,2,0     2) *
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *
Example dry run
cdrecord -dummy -pad -v speed=16 dev=0,1,0 /home/forbin/RH73_x86_3.img
theater:/video/DVD/VobMirror/Blade_runner#


theater:/video/DVD/VobMirror/Blade_runner# time growisofs -speed=1 -dvd-compat -Z /dev/scd0=BladeRnr.iso ; echo -n -e "\007" ; sleep 1 ; echo -n -e "\007" ; sleep 1 ; echo -n -e "\007"
Executing 'builtin_dd if=BladeRnr.iso of=/dev/scd0 obs=32k seek=0'
/dev/scd0: "Current Write Speed" is 2.5x1385KBps.
   1245184/4414232576 ( 0.0%) @0.3x, remaining 295:20
   7962624/4414232576 ( 0.2%) @1.4x, remaining 73:46
  19562496/4414232576 ( 0.4%) @2.4x, remaining 41:11
  27983872/4414232576 ( 0.6%) @1.8x, remaining 39:11
  38797312/4414232576 ( 0.9%) @2.3x, remaining 33:49
  50397184/4414232576 ( 1.1%) @2.4x, remaining 30:18

----------- only the begin/end of the output is shown for brevity -----------


4376395776/4414232576 (99.1%) @2.4x, remaining 0:11
4387995648/4414232576 (99.4%) @2.4x, remaining 0:07
4399628288/4414232576 (99.7%) @2.4x, remaining 0:04
4411228160/4414232576 (99.9%) @2.4x, remaining 0:00
builtin_dd: 2155392*2KB out @ average 2.4x1385KBps
/dev/scd0: flushing cache
/dev/scd0: closing track
/dev/scd0: closing disc
/dev/scd0: reloading tray

real    22m10.848s
user    0m0.220s
sys     0m8.010s
theater:/video/DVD/VobMirror/Blade_runner#

Much later, after another run of the burn_prep script, this time to set it back to a standard IDE CD-rom interface, and from an unpriv user account you mount the DVD backup disc, and change to the /media/cdrom0/video_ts directory, to run md5sum in the confirmation mode...


PWD = /media/cdrom0/video_ts
[larry@theater]$ md5sum -c -v bladernr.md5
video_ts.bup   OK
video_ts.ifo   OK
video_ts.vob   OK
vts_01_0.bup   OK
vts_01_0.ifo   OK
vts_01_0.vob   OK
vts_01_1.vob   OK
vts_01_2.vob   OK
vts_01_3.vob   OK
vts_01_4.vob   OK
vts_01_5.vob   OK

This script is very helpful, if you treat it right, but as I said before you'll likely have to edit it for it to work on your machine. Also, one should remain aware of things that will confuse this script, as it does little testing of interfaces before changing drivers. For instance no CD-Rom drives should be mounted during a burn_prep switch, the USB subsystem will auto-recognize devices, and install drivers, often using the same /dev/scd0 needed by the DVD writer in SCSI Emulation, even after they're no longer plugged in, and haven't been for weeks. If you know this is the case, and you know why the interface is in use, you can, as superuser, rmmod the usb_storage module, as well as others if they become necessary, and then re-run burn_prep once each way, to shake things out, but think first, know that what you're doing makes sense.

Generally speaking programs that address the CD-Rom drive as /dev/scd0 or 1 etcetera are expecting that drive to be emulated as a SCSI interface, doing this adds a wealth of additional multimedia extensions. CD writing software, ripping software, programs that need to read the ID number of the disc, often need these extra multimedia extensions, on the other hand, SCSI emulation has a completely different way of doing DMA, so when programs need to find a standard IDE interface, that supports DMA, you need to switch back to the old established, "normal" CD-Rom, an IDE interface. This is just about everything else, not covered by multimedia extensions. Also, SCSI emulation tends to latch onto a drive like a bulldog in the event of a read error, whereas the old simple IDE interface, retries a few times, and gives up. Application programs that will go either way, IDE, or SCSI emulation, are better off running with IDE, particularly if the disc to be read is rather scratched, and likely to cause read errors, it's better to have it give up, than to be locked in a dual to the death. In my experience, these often eventually crash the system kernel. Finally, if a program doesn't like the interface, it will tell you about it, usually "Can't find /dev/scd0" is about what it says when it doesn't do pure IDE. Oh and don't forget, one hard read error in pure IDE, and DMA is disabled, it can be re-enabled as shown earlier in this document. Doing something simple, such as checking all the MD5 sums on a CD, can take five times as long, if DMA is disabled, or cause Ogle to play, and stall, play, and stall, play, and stall, while playing a DVD, due to the fact that MPEG video empties the data buffer, faster than it can be filled absent the DMA advantage.


-------------------------- Begin burn_prep script --------------------------

#! /bin/bash
echo Enter the letter I for IDE, or the letter S for SCSI emulation.
read -r KEYLINEDATA
if [ "$KEYLINEDATA" == "s" ] || [ "$KEYLINEDATA" == "S" ]
then
/sbin/rmmod ide-scsi
/sbin/rmmod scsi_mod
/sbin/rmmod ide-cd
/sbin/rmmod cdrom
# lsmod
/sbin/modprobe ide-scsi
cdrecord -scanbus
# man cdrecord
# cdrecord -checkdrive dev=0,0,0
# cdrecord -checkdrive dev=0,1,0
rm -f /dev/cdrom
ln -s /dev/scd0 /dev/cdrom
rm -f /dev/cdrom1
ln -s /dev/scd1 /dev/cdrom1
echo Example dry run
echo "cdrecord -dummy -pad -v speed=16 dev=0,1,0 /home/forbin/RH73_x86_3.img"
exit 0
fi

if [ "$KEYLINEDATA" == "i" ] || [ "$KEYLINEDATA" == "I" ]
then
/sbin/rmmod sr_mod
/sbin/rmmod cdrom
/sbin/rmmod sg
/sbin/rmmod ide-scsi
/sbin/rmmod scsi_mod
/sbin/modprobe ide-cd
rm -f /dev/cdrom
rm -f /dev/cdrom1
ln -s /dev/hdc /dev/cdrom
ln -s /dev/hdd /dev/cdrom1
/sbin/lsmod
exit 0
fi

--------------------------  End burn_prep script  --------------------------

One final thing:

If you come from the Winders world, and want a simple mouse click solution I wouldn't look for brand names. Businesses won't ever do DVD backup, it's like the "Third Rail" of software, worse even than Napster of the olden days. Recently Sony was caught deliberately sabotaging their customers' machines with a rootkit Trojan in the name of anti-piracy! So big biz software ain't your friend. The following Google search key dvd movie backup windows turned up tons of shareware for backing up DVD movies under Windows.

You don't adopt Linux for "that one killer app" you adopt Linux to permanently break free from having other people control your computer, as if you were not supposed to have any say in the matter. Living life with them prying into the details of your life, has a chilling effect on what personal information you are willing to place at risk of them stealing it. Think about it, would you put nudes of you and your s.o. on the machine? What's the matter, can't you trust your own machine? If not I think it's high time to get a new OS, but that's just me, I may have a slightly lower threshold than you.


Last updated December 4, 2005

Copyright 2005 floobydust.com

Best Viewed With Any Browser Valid HTML 4.01! check now