   CD-Writing HOWTO
  Winfried Trmper <winni@xpilot.org>
  v2.4.1, 16  1997

          CDs  
  Linux.
  ______________________________________________________________________

  Table of Contents

























































  1. 

     1.1  
     1.2  
     1.3 ... lasers at maximum ... fire (. )!
     1.4  CD-Writers
     1.5  ""
     1.6 Mailinglists
     1.7 
     1.8    

  2.   Linux-    CD-ROMs

     2.1    (hardware)
     2.2    CDs   Linux
     2.3    
     2.4    
     2.5     
     2.6        .
     2.7   
     2.8       CDs
        2.8.1  -
        2.8.2   user interface ().

  3. "       ,         ."

     3.1      scsi (scsi device)    
     3.2   
     3.3     CD.
     3.4     iso9660
     3.5   CD-image
     3.6      CD-Recordable
     3.7   CD-image   CD
     3.8    ...

  4.     

     4.1 "      ;"
     4.2 "   (fragmentation)     ;"
     4.3 "     CD-image     UMSDOS;"
     4.4 "         iso9660;"
     4.5 "      CD ;"
     4.6 "      SCSI   ;"
     4.7 "    1:1   CD;"
     4.8 "  Linux   Joliet CDs;"
     4.9 " / CD-ROMs   CD-writer;"

  5.  

     5.1  :   Linux
     5.2  :   DOS   
     5.3   SCSI      ()

  6. 



  ______________________________________________________________________

  1.  


        CD (CD Writers)   
  "Linux CD Writer mini-HOWTO"  Matt Cutts <cutts@cs.unc.edu>.
   Matt!

             , 
     ,      
   1994.



  1.1.   


   ( Winfried Truemper)     
    ,      
        .   
         ,  
   ,       
   ,   E,    , 
              
    .

   :         .



  1.2.   

   CD-R FAQ <http://www.cd-info.com/CDIC/Technology/CD-R/FAQ.html>
     FAQ  compact-disk recordables (CD-R).



   Linux CD-ROM HOWTO         
    CD-ROM   Linux.  ,   
       Linux SCSI HOWTO   Linux Kernel HOWTO.




  1.3.  ... lasers at maximum ... fire (. )!

   CD-ROM    Compact Disc Read Only Memory (
     ),    
     laser      
     . (    
         (carrier).)  
    bits   (  )  
            .
  ,  CD      (mass-storage medium).

    CD-R      CD-ROM recordable ( CD)
      CD      " "
    ...   '   .

       (),  CD-R  
    (film) ()    " "
      .      laser, 
       ,   
      .         
   a CD-R.

          , 
  ,   multi-session CD.

    mini-HOWTO       CD-R.
   " , ".



  1.4.   CD-Writers

          () 
     

       <http://www.shop.de/cgi-bin/winni/lsc.pl>


           mini-
  HOWTO.    SCSI cd-writers    
    cdrecord    ATAPI cd-writers.

       ,    
    Linux      (image) 
   CD       DOS  
      CD-R. [      ,
       DOS    
      (long filenames)    Linux.]

             
    (    SCSI    
  cdwrite/cdrecord).


  1.5.   ""

    ,      CDs   Linux ()
       :



       Feature         cdwrite-2.1     cdrecord-1.7
       --------------------------------------------
       ATAPI support   no              yes
       Multisession    only partial    yes
       RockRidge       yes (mkisofs)   yes (mkisofs)
       El Torito       yes (mkisofs)   yes (mkisofs)
       HFS             yes (mkhybrid)  yes (mkhybrid)
       Joliet          yes (mkhybrid)  yes (mkhybrid)




   RockRidge        
      directory .  El Torito  
       (bootable) CDs. 
          
    .  HFS    macintosh 
    CD-ROM      (volume)  HFS.  
  Joliet     (  ) 
    Windows (95, NT).

    2.8      .


  1.6.  Mailinglists

         (   
  __ ),   e-mail 

       cdwrite-request@pixar.com


      subscribe    (body)   mes
  sage.

  1.7.  

           

       <http://www.shop.de/~winni/linux/cdr/>




  1.8.     

   , , ,    
     HOWTO,  email    :
  voulariba@hellug.gr     : evris@hellug.gr 
   : ep@rocketmail.com



  2.    Linux-    CD-ROMs

      1997,    Linux   ATAPI
  cd-writers.  ,      HOWTO
       SCSI.

     ,      ATAPI  
          HOWTO 
    " SCSI  ".

         ATAPI    
   cdrecord -scanbus.

      HOWTO   
      ATAPI cd-writers.


  2.1.     (hardware)

    / ,      CD writer 
   SCSI.      SCSI  
  (terminated)        SCSI
  (SCSI-ID)   .   Linux SCSI-HOWTO  
   .        , 
   .

            BIOS 
   (controller) SCSI       .

      writer ,      ().
        

  [   ;      (screenshot)
   ;]


  2.2.     CDs   Linux

      ,    Linux-kernel __ 
   (patch)     CDs.    
  drivers/scsi/scsi.c        



       case TYPE_WORM:
       case TYPE_ROM:
        SDpnt->writeable = 0;

       CDs   WORMs    
     (devices) /dev/sda-/dev/sdh -   
   .

           CDs 
      SCSI    
     -      CDs.


  2.3.     

  The Linux SCSI-HOWTO says about generic SCSI-devices:


           SCSI   interface 
         SCSI     SCSI - ,
       , CDROMs,     (media
       changer robots), .


       (devices)  interfaces 
         SCSI , 
     devices.

         devices 
        (block-wise)   ,
    cd-rom    ,     cd-writer (
    (scanner))   , ..    
     laser .      ( '  )
      (devices),    
          SCSI.

         SCSI    
  ,        - '  
     (generic).

    /dev-directory      SCSI.
    ls     sga-sgh:



       bash> cd /dev
       bash> ls -l sg*
       crw-------   1 root   sys     21,   0 Jan  1  1970 sga
       crw-------   1 root   sys     21,   1 Jan  1  1970 sgb
       crw-------   1 root   sys     21,   2 Jan  1  1970 sgc
       crw-------   1 root   sys     21,   3 Jan  1  1970 sgd
       crw-------   1 root   sys     21,   4 Jan  1  1970 sge
       crw-------   1 root   sys     21,   5 Jan  1  1970 sgf
       crw-------   1 root   sys     21,   6 Jan  1  1970 sgg
       crw-------   1 root   sys     21,   7 Jan  1  1970 sgh





      -,   
   /dev/MAKEDEV-script:


       bash> cd /dev/
       bash> ./MAKEDEV sg




         .



  2.4.        SCSI   
   loopback

     Linux   module    
     SCSI .     
     ,     
  - /proc/devices:



       bash> cat /proc/devices
       Character devices:
        1 mem
        2 pty
        3 ttyp
        4 ttyp
        5 cua
        7 vcs
       21 sg          <----- stands for "SCSI Generic device"
       30 socksys

       Block devices:

        2 fd
        7 loop        <----- we even can use the loop-devices
        8 sd
       11 sr          <----- stands for "SCSI cd-Rom"




        insmod sg, insmod loop  insmod
  sr_mod     modules  .     
  .       ,   
         (re-compile).


       bash> cd /usr/src/linux
       bash> make config
       [..]
       *
       * Additional Block Devices
       *
       Loopback device support (CONFIG_BLK_DEV_LOOP) [M/n/y/?] M
       [..]
       *
       * SCSI support
       *
       SCSI support (CONFIG_SCSI) [Y/m/n/?] Y
       *
       * SCSI support type (disk, tape, CD-ROM)
       *
       SCSI disk support (CONFIG_BLK_DEV_SD) [Y/m/n/?] Y
       SCSI tape support (CONFIG_CHR_DEV_ST) [M/n/y/?] M
       SCSI CD-ROM support (CONFIG_BLK_DEV_SR) [M/n/y/?] M
       SCSI generic support (CONFIG_CHR_DEV_SG) [M/n/y/?] M
       [..]
       ISO9660 cdrom filesystem (CONFIG_ISO9660_FS) [Y/m/n/?] M




         .


  2.5.      

       ,  Linux Kernel-HOWTO  
    . ,   Linux ,   
         .

  [:    compile,     
   2.7-2.9]



  2.6.         .

        Linux   
       ,   
    SCSI       dmesg:



       scsi0 : NCR53c{7,8}xx (rel 17)
       scsi : 1 host.
       scsi0 : target 0 accepting period 100ns offset 8 10.00MHz
       scsi0 : setting target 0 to period 100ns offset 8 10.00MHz

         Vendor: FUJITSU   Model: M1606S-512        Rev: 6226
         Type:   Direct-Access                      ANSI SCSI
       Detected scsi disk sda at scsi0, channel 0, id 0, lun 0

         Vendor: NEC       Model: CD-ROM DRIVE:84   Rev:  1.0a
         Type:   CD-ROM                             ANSI SCSI
       Detected scsi CD-ROM sr0 at scsi0, channel 0, id 4, lun 0

       scsi : detected 1 SCSI disk total.
       SCSI device sda: hdwr sector= 512 bytes. Sectors= 2131992




          
           SCSI.


  2.7.     loopback

    directory /dev     loopback.  
   ,      ,    
   (  3.5).     ,   ls   
   loop0-loop7:



       bash> cd /dev
       bash> ls -l loop*
       brw-rw----   1 root  disk    7,   0 Sep 23 17:15 loop0
       brw-rw----   1 root  disk    7,   1 Sep 23 17:15 loop1
       brw-rw----   1 root  disk    7,   2 Sep 23 17:15 loop2
       brw-rw----   1 root  disk    7,   3 Sep 23 17:15 loop3
       brw-rw----   1 root  disk    7,   4 Sep 23 17:15 loop4
       brw-rw----   1 root  disk    7,   5 Sep 23 17:15 loop5
       brw-rw----   1 root  disk    7,   6 Sep 23 17:15 loop6
       brw-rw----   1 root  disk    7,   7 Sep 23 17:15 loop7


        ,   
   script /dev/MAKEDEV:



       bash> cd /dev/
       bash> ./MAKEDEV loop




          loop-module 
    (  2.4     modules).   insmod loop 
  ,         
    (  2.5).




  2.8.        CDs


  2.8.1.   -

           CD-Rs:


       <ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/> (mkisofs)

       <ftp://ftp.ge.ucl.ac.uk/pub/mkhfs> (mkhybrid)


       cd-writer  ( 1.3),   
          CD-Rs:


       <ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/> (cdrecord)

       <ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/>
       (cdwrite)


     mirror    ftp-Servers 
     CD.         
  2.0  cdwrite,   .       
   !    - (man-page) 
  () mkisofs      

  1.5  cdwrite.

        (ports)  cdwrite 
  Irix  AIX   URL :


       <http://lidar.ssec.wisc.edu/~forrest/>


        2.0.31,    
    mkisofs     bug   
     Linux.     Debian  
   (patch)    1.05  mkisofs ( 1.11  
   , )      '-K' (  3.4).
     

       <ftp://ftp.debian.org/pub/debian/bo/source/oth
       erosfs/mkisofs_1.11-1.diff.gz>
             CD-
  image    loopback (  3.5.).


  2.8.2.    user interface ().

   X-CD-Roast     CD  
   X,      cdwtools-0.93.   


       <http://www.fh-muenchen.de/home/ze/rz/services/pro
       jects/xcdroast/e_overview.html>


      X-CD-Roast      
  cdwrite-2.0  '       
  (  1.4).        
    cdrecord.



  3.  "       ,     
     ."

  (         CDs [AD64]. 
    ).


      CD   Linux   2 :


           ,
       mkisofs/mkhybrid-utility

          the CD-R   cdwrite  
     cdrecord

        2    (pipe)
            
  .  .



  3.1.       scsi (scsi device) 
    

  [ :       scsi devices
   Linux         
  .         ,  
          .   
   ATAPI cd-writer     "cdrecord -scanbus" 
            
   .]

            
            
   CDs.           
     .

     dmesg.        
   Linux,       
   (:    l200)    
     CD-Writer      SCSI.

   :

    Vendor: YAMAHA  Model: CDR100       Rev: 1.11
    Type:   WORM                        ANSI SCSI revision: 02
  Detected scsi CD-ROM sr1 at scsi0, channel 0, id 3, lun 0




      4  SCSI    ( 
          ),   (SCSI-id)  0
   3.     4    SCSI  ' 
     /dev/sgd (    SCSI, 
       a).    ,  :



       cdwrite  --eject  --device /dev/sgd




     (tray)         
   .     :



       scsi0 : AdvanSys SCSI 1.5: ISA (240 CDB)
       scsi1 : Adaptec 1542
       scsi : 2 hosts.

         Vendor: HP      Model: C4324/C4325  Rev: 1.20
         Type:   CD-ROM                      ANSI SCSI revision: 02
       Detected scsi CD-ROM sr0 at scsi0, channel 0, id 2, lun 0

         Vendor: IBM     Model: DPES-31080   Rev: S31Q
         Type:   Direct-Access               ANSI SCSI revision: 02
       Detected scsi disk sda at scsi1, channel 0, id 0, lun 0

       scsi : detected 1 SCSI cdrom 1 SCSI disk total.
       SCSI device sda: hdwr sector= 512 bytes.




        SCSI   1  SCSI
   .    ((       7
    ).       , 
         . ...   , 
       ,   
    . :-)

      CD-Writer   SCSI 2  
        SCSI /dev/sga   
       SCSI   Linux .   
        SCSI  ,   
       .

    :      ; 
       "--<MANUFACTURER>"    
  ,        
    ::






  bash> cdwrite  --eject  --device /dev/sgb
  Unknown CD-Writer; if this model is compatible with any
  supported type, please use the appropriate command line
  flag.

  Manufacturer:  IBM
  Model:         DPES-31080
  Revision:      S31Q




        /dev/sbg    
  SCSI ( IBM).

       ,     
          . 
  ,      .


  3.2.    

       .   
            CD. :-)

  ,         CD
          
  iso9660 (  MB).


  3.3.      CD.

    iso9660   format     
    CD.     :   
    CD.

  ,          format
       Linux     
   , .  ,    CD   
  directory,           
  ...       ...     
  root. :-)

  (        
        (virtual filesystem),
     VFS.)

       iso9660   
          extended-2 
      Linux.   ,  CD 
            
    .       iso9660 :


     8   -  (  
       directory  CD) (  RockRidge
     Extensions      )

           : 32 

    650 MB 





  3.4.      iso9660

         (..
    (floppy disk),   (harddisk)  CD), 
       (  DOS :   format).
            
   ,      .

  ,   CD     ,   
        ,    format -
        . :-)

  ,         
         CD.   
   mkisofs.          
  :



       mkisofs  -r   -o cd_image   private_collection/
                     `---------'   `-----------------'
                          |               |
                       directory




    '-r'        CD  
          Rock Ridge.
            
          (:  
  '-r'    (mount-point)  
  _ (private_collection)!).

     Linux   2.0.31,     
   '-K'         
  .       mkisofs.   
        '-P'  cdwrite.  
        mkisofs  .  
       Linux     
     .

   mkisofs         
  8.3-format     DOS    
    .     
  ((     8.3-name),  
            
  STDERR (  ).



   :


         Linux       8.3  ,
         Linux     Rock Ridge 
             (,
        , .).


           mkisofs  
     .     :


     mkisofs        CD-writers ( 
      2.3.)
        (   4.)

      CD-writer    ,  
      mkisofs (   Linux 
        (real-time operating
  system)       ).  ,
        mkisofs   
     .      1:1   CD
        CD    cdwrite  
  .

  H 1:1         
             
    .    .

         (partition) 
              
  .          
   (   ),   
    Linux  .  ,   
  ,   CD-image      
       CD.



  3.5.    CD-image

   Linux         
   .       
            CD (CD-
  image).      cd_image  
     /cdrom,   


       mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom




         /cdrom - 
           CD.  
    CD-image,   umount /cdrom.  :
       '-K'  mkisofs  o 
    /cdrom      .

  :

           mount    
         loopback-devices.    
          mount     
         Linux  .

               
             mount    mini-
       HOWTO.  .     Linux   
         mount:     (bug).   
        Linux      : 
          (bug).

               
          (bugs)  
        Linux,   mini-HOWTO    
           .



  3.6.       CD-Recordable

       "c't"    
      CDs     1996:


     " (no-name)"      
           

       CD  ,    
       (    , ).  
              500MB
      CDs ...

       CDs       .


  3.7.    CD-image   CD

        .     
  ,        CD-writers  
          
  buffers .  ,        CD
   CD    ,      
     () CD.

            ,
            
   ethernet ...    Bastard operator fromhell   
    ,     . ;-)

     ,    , 
    SCSI-id  CD-writer     
  SCSI,      ,    
   ASR-FAQ   :



       cdwrite  --device /dev/sgd  cd_image
       or
       cdrecord -v speed=2 dev=4,0 cd_image




         .   
     SCSI       
     .     
        laser     
      CD,  .  ' ,    
        CD  .


  3.8.     ...

  ...          CDs
   . :-)


  4.      


  4.1.  "      ;"

  :    CD-writer.      
  buffer   1MB        1-2
    .       
  ,      .

       buffers     
     300kb/s  600kb/s     .

            
     locate       
      CD;      
    cron, at  anacron   CD-Rs.    ,
      compile      CD
    .       
  .


  4.2.  "   (fragmentation)    
  ;"

             
  .      ,   
      ,     
       .      
        



       bash> e2fsck -n  /dev/sda5        # '-n' is important!
       [stuff deleted - ignore any errors]
       /dev/sda5: 73/12288 files (12.3% non-contiguous)




            , 
    73       
  (  /tmp)       .


  4.3.  "     CD-image    
  UMSDOS;"

  .          
     CDs  ,     
  (NFS).      UMSDOS      
     Linux   DOS/Win   PC (486/66) 
     CDs.



  4.4.  "        
  iso9660;"

  .         CD. 
       Linux    
    CD.

     :


          650MB.


       dd if=/dev/zero of="empty_file" bs=1024k count=650



        extended-2   


       bash> /sbin/mke2fs  empty_file
       empty_file is not a block special device.
       Proceed anyway? (y,n) y





           loopback


       mount -t ext2 -o loop=/dev/loop1 empty_file /mnt




        /mnt    (umount) .

      cdwrite   cdrecord  empty_file ( 
       )     iso9660-image.

         /etc/fstab    CD,
     , ..:



       /dev/cdrom  /cdrom  ext2  defaults,ro  0 0




    0  "   dumps",  
  (=)  "      " (
  fsck      CD  ).


  4.5.  "      CD ;"

     "cdda2wav"  "sox",    sunsite  
  mirrors :

       <ftp://sun
       site.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gz>

       <ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-
       cb3.tar.gz>


   cdda2wav        (
     (track))   CD      
   .wav.   sox    wav   (CD  ) cdda-
  format       CD-R  
  cdwrite.


  4.6.  "      SCSI   ;"

    drivers/scsi/scsi.c   





  /*
   * Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
   * with  "0 1 2 3" replaced by your "Host Channel Id Lun".
   * Consider this feature BETA.
   *     CAUTION: This is not for hotplugging your peripherals. As
   *     SCSI was not designed for this you could damage your
   *     hardware !
   * However perhaps it is legal to switch on an
   * already connected device. It is perhaps not
   * guaranteed this device doesn't corrupt an ongoing data transfer.
   */





  4.7.  "    1:1   CD;"

  .           
      (   ) 
     .

   :   CD-writer  CD-ROM .  
  :


       cdwrite -v -D /dev/sgc --pad -b  $(isosize  /dev/scd0) /dev/scd0
       or
       cdrecord -v dev=3,0 speed=2 -isosize /dev/scd0




         CD-ROM   
   /dev/scd0      /dev/sgc  CD-R.

   :     CD-ROM.   
          CD-ROM:


       dd if=/dev/scd0 of=cdimage bs=1c count=`isosize  /dev/scd0`




           mkisofs,  
         3.    
       CD !


  4.8.  "  Linux   Joliet CDs;"

  .         
  .    , 

       <http://www-plateau.cs.berkeley.edu/people/chaf
       fee/joliet.html>




  4.9.  " / CD-ROMs   CD-writer;"

        CD-ROM.  .   
       scd (SCSI CD-ROM)  
   CDs  .  -  /etc/fstab:
       /dev/scd0  /cdrom  iso9660  ro,user,noauto  0  0





  5.   


  5.1.   :   Linux

           
  . :

      SCSI       SCSI;

        ;

        CD    ;

      " "     .  
       (hardware conflict)   .


  5.2.   :   DOS   

     Linux.     
   SCSI  DOS   .   Linux  ;
  !


  5.3.    SCSI      ()

  ,     

        dis-/reconnect   SCSI

       

      (      5.1.)

     ,   SCSI  
   ()    SCSI.   
      (   
     )     
      CD-R.

  ,   NCR 53c7,8xx SCSI   
   ,        
  :


       NCR53c7,8xx SCSI support                  [N/y/m/?] y
          always negotiate synchronous transfers [N/y/?] (NEW) n
          allow FAST-SCSI [10MHz]                [N/y/?] (NEW) y
          allow DISCONNECT                       [N/y/?] (NEW) y





  6.  


      Andreas Erdmann <erdmann@zpr.uni-koeln.de>
              YAMAHA-writer
      Art Stone <stone@math.ubc.ca>
              -iso9660    CD

      Bartosz Maruszewski <B.Maruszewski@zsmeie.torun.pl>
            

      Bernhard Gubanka <beg@ipp-garching.mpg.de>
                mount  
            loopback

      Brian H. Toby
            .

     Bruce Perens <bruce@pixar.com>
             cdwrite-mailinglist

      Dale Scheetz <dwarf@polaris.net>
                cdimage.

     
        URL   mkhybrid

      Edwin H. Kribbs
            '-K'     mkisofs

      Gerald C Snyder <gcsnyd@loop.com>
             ext2 CD-ROM (see 4.4)

      Ingo Fischenisch <ingo@mi.uni-koeln.de>
                 
         .

      Janne Himanka <shem@oyt.oulu.fi>
                 Joliet CDs

      Joerg Schilling <schilling@fokus.gmd.de>
            cdrecord

      Jos van Geffen <jos@tnj.phys.tue.nl>
             4.9.

      Pierre Pfister <pp@uplift.fr>
                1:1.

      Rick Cochran <rick@msc.cornell.edu>
              / 
          default   ncr

      Stephan Noy <stnoy@mi.uni-koeln.de>
              CD .

      Stephen Harris <sweh@mpn.com>
             CD .

      Sheepy One <kero@escape.com>
              CDs  
        

      Volker Kuhlmann <kuhlmav@elec.canterbury.ac.nz>
             "cdwrite"    mkisofs

     CD-Writing mini-HOWTO




