Welcome to Linux Knowledge Base and Tutorial
"The place where you learn linux"
Linux Magazine - Missing Anything?

 Create an AccountHome | Submit News | Your Account  

Tutorial Menu
Linux Tutorial Home
Table of Contents

· Introduction to Operating Systems
· Linux Basics
· Working with the System
· Shells and Utilities
· Editing Files
· Basic Administration
· The Operating System
· The X Windowing System
· The Computer Itself
· Networking
· System Monitoring
· Solving Problems
· Security
· Installing and Upgrading
· Linux and Windows

Man Pages
Linux Topics
Test Your Knowledge

Site Menu
Site Map
Copyright Info
Terms of Use
Privacy Info
Masthead / Impressum
Your Account

Private Messages

News Archive
Submit News
User Articles
Web Links


The Web

Who's Online
There are currently, 93 guest(s) and 0 member(s) that are online.

You are an Anonymous user. You can register for free by clicking here




       readcd dev=device [ options ]


       Readcd is used to read or write Compact Discs.

       The device refers to scsibus/target/lun of the drive. Com­
       munication on SunOS is done with the SCSI  general  driver
       scg.   Other operating systems are using a library simula­
       tion of this  driver.   Possible  syntax  is:  dev=  scsi­
       bus,target,lun  or  dev=  target,lun.  In the latter case,
       the drive has to be connected to the default SCSI  bus  of
       the machine.  Scsibus, target and lun are integer numbers.
       Some operating systems or SCSI  transport  implementations
       may  require  to  specify a filename in addition.  In this
       case the correct syntax for the device  is:  dev=  device­
       name:scsibus,target,lun or dev= devicename:target,lun.  If
       the name of the device node that  has  been  specified  on
       such  a system refers to exactly one SCSI device, a short­
       hand  in  the  form  dev=  devicename:@  or  dev=  device­
       name:@,lun  may  be  used instead of dev= devicename:scsi­

       To access remote SCSI devices, you  need  to  prepend  the
       SCSI  device name by a remote device indicator. The remote
       device  indicator  is   either   REMOTE:user@host:   or
       A  valid remote SCSI device name may be: REMOTE:user@host:
       to    allow    remote     SCSI     bus     scanning     or
       REMOTE:user@host:1,0,0  to  access the SCSI device at host
       connected to SCSI bus # 1,target 0 lun 0.

       To access SCSI devices via alternate transport layers, you
       need  to prepend the SCSI device name by a transport layer
       indicator.  The transport layer indicator may be something
       like  USCSI: or ATAPI:.  To get a list of supported trans­
       port layers for your platform, use dev= HELP:

       To make readcd portable to all UNIX platforms, the  syntax
       dev=  devicename:scsibus,target,lun  is  preferred  as  is
       hides OS specific knowledge about device  names  from  the
       user.  A specific OS must not necessarily support a way to
       specify a real device file name nor a way to specify scsi­

       Scsibus  0  is  the default SCSI bus on the machine. Watch
       the boot  messages  for  more  information  or  look  into

              Sets the SCSI  target  for  the  drive,  see  notes
              above.  A typical device specification is dev=6,0 .
              If a filename must be provided  together  with  the
              numerical  target  specification,  the  filename is
              implementation specific.  The correct  filename  in
              this case can be found in the system specific manu­
              als of the target operating system.  On  a  FreeBSD
              system  without  CAM  support,  you need to use the
              control device (e.g.   /dev/rcd0.ctl).   A  correct
              device   specification   in   this   case   may  be
              dev=/dev/rcd0.ctl:@ .

              On Linux,  drives  connected  to  a  parallel  port
              adapter are mapped to a virtual SCSI bus. Different
              adapters are mapped to different  targets  on  this
              virtual SCSI bus.

              If  no  dev option is present, cdrecord will try to
              get the device from the CDR_DEVICE environment.

              If the argument to the dev= option does not contain
              the  characters  ',', '/', '@' or ':', it is inter­
              preted as an label name that may be  found  in  the
              file /etc/default/cdrecord (see FILES section).

              Set  the  default  SCSI  command timeout value to #
              seconds.  The default SCSI command timeout  is  the
              minimum timeout used for sending SCSI commands.  If
              a SCSI command fails due to a timeout, you may  try
              to raise the default SCSI command timeout above the
              timeout value of the failed command.  If  the  com­
              mand  runs correctly with a raised command timeout,
              please report the better timeout value and the cor­
              responding  command  to  the author of the program.
              If no timeout option is present, a default  timeout
              of 40 seconds is used.

       debug=#, -d
              Set  the  misc  debug  value to # (with debug=#) or
              increment the misc debug level by one (with -d). If
              you  specify -dd, this equals to debug=2.  This may
              help to find problems while opening  a  driver  for
              libscg.   as  well  as with sector sizes and sector
              types.  Using -debug slows down the process and may
              be the reason for a buffer underrun.

       kdebug=#, kd=#
              Tell  the  scg-driver  to  modify  the kernel debug
              value while SCSI commands are running.
              output.  -VV will show data buffer content in addi­
              tion.  Using -V or -VV slows down the process.

       f=file Specify  the  filename  where  the output should be
              written or the inout should be  taken  from.  Using
              '-'  as  filename  will  cause readcd to use stdout
              resp. stdin.

       -w     Switch to write mode. If this option  is  not  pre­
              sent, readcd reads from the specified device.

              Scans  the  whole  CD or the range specified by the
              sectors=range for C2 errors. C2 errors  are  errors
              that  are  uncorrectable  after the second stage of
              the 24/28 + 28/32 Reed Solomon correction system at
              audio  level  (2352 bytes sector size). If an audio
              CD has C2 errors, interpolation is needed  to  hide
              the  errors.  If  a  data  CD  has C2 errors, these
              errors are in most cases corrected by  the  ECC/EDC
              code  that makes 2352 bytes out of 2048 data bytes.
              The ECC/EDC code should be able  to  correct  about
              100 C2 error bytes per sector.

              If  you  find  C2 errors you may want to reduce the
              speed using the speed= option as C2 errors may be a
              result of dynamic unbalance on the medium.

              Specify  a  sector  range that should be read.  The
              range is specified by the starting sector number, a
              minus  sign  and the ending sector number.  The end
              sector is not included in the list, so  sectors=0-0
              will not read anything and may be used to check for
              a CD in the drive.

              Set the speed factor of the read or  write  process
              to  #.  # is an integer, representing a multiple of
              the audio speed.  This is about 150 KB/s for CD-ROM
              and  about  172  KB/s  for  CD-Audio.   If no speed
              option is present, readcd will use  maximum  speed.
              Only  MMC  compliant  drives will benefit from this
              option.   The  speed  of  non  MMC  drives  is  not

              Using a lower speed may increase the readability of
              a CD or DVD.

       ts=#   Set the maximum SCSI transfer size to #.  The  syn­
              tax  for the ts= option is the same as for cdrecord
              fs=# or sdd bs=#.

              Retrieve a full TOC from the current disk and print
              it in hex.

       -clone Do  a  clone read. Read the CD with all sub-channel
              data and a full TOC.  The full TOC data will be but
              into a file with similar name as with the f= option
              but the suffix .toc added.

              Do not abort if the high level  error  checking  in
              readcd  found  an  uncorrectable  error in the data

              Switch the drive into a mode where it ignores  read
              errors  in data sectors that are a result of uncor­
              rectable ECC/EDC errors before reading.  If  readcd
              completes,  the error recovery mode of the drive is
              switched back to the remembered old mode.

              Set the retry  count  for  high  level  retries  in
              readcd  to  #.   The  default  is to do 128 retries
              which may be too much if you like to read a CD with
              many unreadable sectors.

              Meter the SCSI command overhead time.  This is done
              by executing several commands 1000 times and print­
              ing  the  total  time  used. If you divide the dis­
              played times by 1000, you get the average  overhead
              time for a single command.

              Print  read-speed  at  # locations.  The purpose of
              this option is to create a list of read speed  val­
              ues  suitable  for e.g.  gnuplot.  The speed values
              are calculated assuming that  1000  bytes  are  one
              kilobyte  as  documented in the SCSI standard.  The
              ouput data created for this purpose is  written  to

              Output  the speed values for meshpoints=# as factor
              based on single speed of the current medium.   This
              only  works if readcd is able to determine the cur­
              rent medium type.


       For all examples below, it will be assumed that the  drive
       is  connected  to the primary SCSI bus of the machine. The

           readcd dev=2,0 -w f=cdimage.raw


       RSH    If  the RSH environment is present, the remote con­
              nection will not be  created  via  rcmd(3)  but  by
              calling  the  program  pointed to by RSH.  Use e.g.
              RSH=/usr/bin/ssh to create a secure  shell  connec­

              Note  that this forces cdrecord to create a pipe to
              the  rsh(1)  program  and  disallows  cdrecord   to
              directly  access  the  network socket to the remote
              server.  This makes it impossible to set up perfor­
              mance parameters and slows down the connection com­
              pared to a root initiated rcmd(3) connection.

       RSCSI  If the RSCSI environment  is  present,  the  remote
              SCSI    server    will    not    be   the   program
              /opt/schily/sbin/rscsi but the program  pointed  to
              by RSCSI.  Note that the remote SCSI server program
              name will be ignored if you log in using an account
              that  has  been  created  with a remote SCSI server
              program as login shell.



       cdrecord(1), mkisofs(1), scg(7), fbk(7), rcmd(3),  ssh(1).


       If  you  don't  want to allow users to become root on your
       system, readcd may safely be  installed  suid  root.  This
       allows  all  users or a group of users with no root privi­
       leges to use readcd.  Readcd in this case will only  allow
       access  to  CD-ROM type drives- To give all user access to
       use readcd, enter:

            chown root /usr/local/bin/readcd
            chmod 4711 /usr/local/bin/readcd

       To give a restricted  group  of  users  access  to  readcd

            chown root /usr/local/bin/readcd
            chgrp cdburners /usr/local/bin/readcd
            chmod 4710 /usr/local/bin/readcd

       and add a group cdburners on your system.

       Never  give  write  permissions  for non root users to the
              at all.

       ·      It cannot get the SCSI  status  byte.   Readcd  for
              that  reason cannot report failing SCSI commands in
              some situations.

       ·      It cannot get real DMA count of  transfer.   Readcd
              cannot  tell you if there is an DMA residual count.

       ·      It cannot get number of bytes valid in  auto  sense
              data.   Readcd  cannot tell you if device transfers
              no sense data at all.

       ·      It fetches  to  few  data  in  auto  request  sense
              (CCS/SCSI-2/SCSI-3 needs >= 18).


       A typical error message for a SCSI command looks like:

              readcd: I/O error. test unit ready: scsi sendcmd: no error
              CDB:  00 20 00 00 00 00
              status: 0x2 (CHECK CONDITION)
              Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00
              Sense Key: 0x5 Illegal Request, Segment 0
              Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0
              Sense flags: Blk 0 (not valid)
              cmd finished after 0.002s timeout 40s

       The  first  line  gives information about the transport of
       the command.  The text after the  first  colon  gives  the
       error  text  for the system call from the view of the ker­
       nel. It usually is: I/O error unless other  problems  hap­
       pen.  The  next  words contain a short description for the
       SCSI command that fails. The rest of the line tells you if
       there  were  any problems for the transport of the command
       over the SCSI bus.  fatal error means that it was not pos­
       sible  to transport the command (i.e. no device present at
       the requested SCSI address).

       The second line prints the SCSI command  descriptor  block
       for the failed command.

       The  third  line gives information on the SCSI status code
       returned by the command, if the transport of  the  command
       succeeds.  This is error information from the SCSI device.

       The fourth line is a hex dump of the  auto  request  sense
       information for the command.

       The  fifth  line  is  the  error text for the sense key if
       available, followed by the segment  number  that  is  only
       The eight line reports the timeout set up for this command
       and the time that the command really needed to complete.




       If you want to actively take part on  the  development  of
       cdrecord, you may join the cdwriting mailing list by send­
       ing mail to:


       and include the word subscribe  in  the  body.   The  mail
       address of the list is:



       Joerg Schilling
       Seestr. 110
       D-13353 Berlin

       Additional information can be found on:

       If you have support questions, send them to:

       or other-cdwrite@lists.debian.org

       If you have definitely found a bug, send a mail to:

       or schilling@fokus.fhg.de

       To subscribe, use:

       or  http://lists.berlios.de/mailman/listinfo/cdrecord-sup­

Joerg Schilling            Version 2.0                  READCD(1)



Security Code
Security Code
Type Security Code

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Help if you can!

Amazon Wish List

Did You Know?
You can help in many different ways.


Tell a Friend About Us

Bookmark and Share

Web site powered by PHP-Nuke

Is this information useful? At the very least you can help by spreading the word to your favorite newsgroups, mailing lists and forums.
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters. Articles are the property of their respective owners. Unless otherwise stated in the body of the article, article content (C) 1994-2013 by James Mohr. All rights reserved. The stylized page/paper, as well as the terms "The Linux Tutorial", "The Linux Server Tutorial", "The Linux Knowledge Base and Tutorial" and "The place where you learn Linux" are service marks of James Mohr. All rights reserved.
The Linux Knowledge Base and Tutorial may contain links to sites on the Internet, which are owned and operated by third parties. The Linux Tutorial is not responsible for the content of any such third-party site. By viewing/utilizing this web site, you have agreed to our disclaimer, terms of use and privacy policy. Use of automated download software ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and are therefore expressly prohibited. For more details on this, take a look here

PHP-Nuke Copyright © 2004 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.10 Seconds