\documentclass[letterpaper]{article}
\nonstopmode
\akai
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage{url}
\usepackage[latin1]{inputenc}
\usepackage{t1enc}
\usepackage[english]{babel}
\usepackage{epsfig}
\usepackage{null}
\def\addbibtoc{
\addcontentsline{toc}{section}{\numberline{\mbox{}}\relax\bibname}
}%end-preamble
\setcounter{page}{1}
\title{CD-Writing HOWTO}
\author{×÷Õß£ºWinfried Tr¡õper {\ttfamily $<$winni@xpilot.org$>$}\\ 
ÒëÕß£º»Æ¸»Ç¿ {\ttfamily $<$wfkwong@net.polyu.edu.hk$>$}}
\date{v2.4.1, 16 December 1997}
\abstract{ÕâÒ»·ÝÎÄ¼þ´¦ÀíÔÚ LINUX ¡õÐ´ CDs µÄÊÂ¶ù£®}


\begin{document}
\maketitle
\tableofcontents

\section{¼ò½é}

ÏÖÔÚÓÐºÜ¶àÈËÊ¹ÓÃ Linux À´ÉÕÂ¼¹âµúÊÇÒòÎªËü±È½ÏÎÈ¶¨ºÍÈÝÒ×¡£Ã»ÓÐÀ¶É«»­ÃæºÍÃ»ÓÐÕÒ³öÈíÓ²Ìå×éºÏµÄÀ§ÄÑ¡£Ö»ÒªÄãÒ»µ©ÕýÈ·Éè¶¨ºÃÖ®áá¾ÍÄÜÊ¹ÓÃ¡£Õâ·Ý CD-Writing HOWTO½âÊÍÁËÔõÑùÉè¶¨£¬ÔõÑù½«×ÊÁÏ·ÅÉÏ¹âµúÉÏÒÔ¼°½éÉÜÒ»Ð©ÓÐÈ¤µÄ³ÌÊ½¡£






\subsection{°æ±¾ÉùÃ÷ ( Õâ¶Î²»Òë )}

Copyright Winfried Tr¡õper 1996,1997,1998,1999. All rights reserved.

Redistribution and use, with or without modification, are permitted
provided that the name of the author may not be used to endorse or
promote products derived from this software without specific prior
written permission.

{\bfseries The author disclaims all warranties with regard to this
document, including all implied warranties of merchantability and
fitness for a certain purpose; in no event shall the author be liable
for any special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether in
an action of contract, negligence or other tortious action, arising
out of or in connection with the use of this document.}

Short: read and use at your own risk.




\subsection{Suggested readings}



ÕâÍøÖ· \nameurl{http://www.fadden.com/cdrfaq/}{CD-R FAQ}
¡õÓÐÒ»°ãµÄ FAQ ¹Øì¶¿Õ°×¹âµú£¬¹âµúÉÕÂ¼Æ÷ºÍÉÕÂ¼¹âµúËùÐèµÄÈí
¼þ¡£

ÒªÁîÄãµÄ¹âµúÄÜ¹»¶ÁÈ¡¹âµú£¬ÄãÆðÂëÒª¿´ {\itshape Linux CD-ROM HOWTO\/}
{\itshape Linux SCSI HOWTO\/} ºÍ {\itshape Linux Kernel HOWTO\/}.






\subsection{Ãû´Ê½âÊÍ ( Õâ¶Î²»Òë )}



{\itshape CD-ROM\/} stands for {\itshape Compact Disc Read Only Memory\/}, a
storage medium utilizing an optical laser to sense microscopic pits on a
silver shimmering disk. The silver shimmering comes from an aluminized
layer which is the carrier. The pits represent the bits of the information
(in some way) and are so petite that some billions of them fit on the
disc. Thus a CD is a mass-storage medium.

The term {\itshape CD-R\/} is a short form of {\itshape CD-ROM recordable\/} and
refers to a CD that doesn't have those "microscopic pits" on it's surface.
Thus it's empty. Instead of the silver aluminium layer a CD-R has a
special film (colored) into which "microscopic pits" can be burned in. This
is done by giving the laser which normally only senses the pits a little
bit more power so he burns the pits. This action can only be taken
{\bfseries once} on a CD-R, although you can leave out some areas for later
writing, creating a so called {\itshape multi-session CD\/}.

The {\itshape CD-ROM rewritable\/} (short: {\itshape CD-RW\/}) was developed to
come around the limitation of CD-R media. Here the laser can not even burn
pits into the media, but it can also melt the media back into it's original
state. This is possible, because the laser does not really burn holes into
the media - you do not see a puff of smoke while burning and no voice from
above tells you "target destroyed". What the laser really does is to
trigger a phase change, thus the name "phase change devices" for
CD-RW-writers. An example for a very similar technique used in daily life is
the cleaning car in an ice-hockey stadion: during the pauses of the game,
the car drives over the ice and fills the scratches in the ice (-{$>$} bits 
containing some sort of information about the game... hehehe) with melted
splinter. 

This HOWTO deals with the task of writing CD-Rs and CD-RWs.  Welcome on board,
captain.






\subsection{Ö§Ô®µÄ¹âµúÉÕÂ¼Æ÷}



Äã¿ÉÒÔÔÚÕâ¡õµÃµ½Ò»¸öÏê¾¡¿ÉÓÃ¼°²»¿ÉÓÃÔÚ¸÷ unix ×÷ÒµÏµÍ³µÄÐÍºÅÁÐ±í
\nameurl{http://www.guug.de:8080/cgi-bin/winni/lsc.pl}{}.



ÒÔÏÂÊÇÒ»¸öÄÜ¹»ÔÚ cdrecord ÏÂÊ¹ÓÃµÄÐÍºÅ´éÐ´ÁÐ±í£º

\begin{tscreen}
\begin{verbatim}
Acer:           CDRW 6206A
BTC:            BCE 621E (IDE)
Compro:         CW-7502, CW-7502B
Dysan:          CRW-1622
Elite:          Elite b444.41
Grundig:        CDR 100 IPW
Guillemot:      Maxi CD-R 4X/8X
HP:             SureStore 4020i, SureStore 6020i,
                C4324, C4325
                CD-Writer+ 7100, CD-Writer+ 7200i,
                CD-Writer+ 8100i, CD-Writer+ 8110i,
Hi-Val:         CDD-3610
JVC:            XR-W2001, XR-W2010, XR-W2042, R-2626
Kodak:          PCD 200, PCD 225, PCD 260, PCD 600
Matsushita:     CW-7502
Memorex:        CRW-620, CRW-1622
Microboards:    PlayWrite 2000, PlayWrite 4000RW, PlayWrite 4001RW
MicroNet:       MasterCD Plus 4x4, MasterCD Plus 4x6
Mitsubishi:     CDRW-226
Mitsumi:        CR-2401-TS, CR-2600 TE,  CR-2801 TE, CR-4801 TE
Nomai:          680.RW
OTI:            CDRW 965
Olympus:        CDS 615E, CDS 620E
Optima:         DisKovery 650 CD-R
OTI:            CDRW 965 
Panasonic:      CW-7502, CW-7582
Philips:        CDD-521/10, CDD-522
                CDD-2000, CDD-2600, CDD-3600, CDD-3610
                Omniwriter 26, Omniwriter 26A
Plasmon:        CDR 480, CDR 4220, RF-4100, RF-4102, CDR 4400
Plextor:        CDR PX-24 CS, PX-412 C, PX-R412 C
                PX-R810Ti, PleXwriter 412C
Procom:         PCDR 4 
Ricoh:          RO-1420C+, MP 1420C, MP 6200S, MP 6201S
Sanyo:          CRD-R24S
Smart and
Friendly:       CD-RW226, CD-R1002, CD-R1002/PRO, CD-R1004,
                CD-R2004, CD-R2006 PLUS, CD-R2006 PRO,
                CD-R4000, CD-R4006, CD-R4012
Sony:           CDU 920S, CDU 924, CDU 926S, CDU-928E,
                CDU 948S, CDRX 100E
Taiyo Yuden:    EW-50 
TEAC:           CD-R50S, CD-R55S, CDR-55S
Traxdata:       CRW 2260, CDR 4120, CDRW 4260,
Turtle Beach:   2040R
WPI (Wearnes):  CDRW-622, CDR-632P
YAMAHA:         CDR-100, CDR 102, CDR-200, CDR-200t, CDR-200tx
                CDR-400, CDR-400c, CDR-400t, CDR-400tx, CDR-400Atx
                CRW-2260, CRW-2260t,
                CRW-4250tx, CRW-4260 t, CRW-4260 tx, CRW-4261,
                CRW-4416 S
\end{verbatim}
{\itshape Table 1: CD-writers supported under Linux\/}
\end{tscreen}




Èç¹ûÄãµÄÓ²¼þ²»±»Ö§Ô®µÄ»°£¬ÄãÈÔÈ»¿ÉÒÔÓÃ Linux À´½¨Á¢¹âµúÓ°Ïñµµ²»¹ýÄãÐèÒªÓÃ DOS µÄÈí¼þÀ´½«Õâ¸ö¹âµúÓ°ÏñµµÉÕÂ¼ÖÁ CD-R £®




\subsection{Ö§Ô®µÄÌØÐÔ}

ÏÖÔÚÓÐÁ½ÀàµÄ¹¤¾ßÓÃ×÷ÉÕÂ¼ CD-Rs £ºÓ²ÌåÇý¶¯³ÌÊ½ºÍ×ÊÁÏ¸ñÊ½»¯¡£Ó²ÌåÇý¶¯³ÌÊ½Ö§Ô®ÒÔÏÂµÄ¹¦ÄÜ£º

\begin{tscreen}
\begin{verbatim}
Supported Feature   cdwrite-2.1     cdrecord-1.6
------------------------------------------------
IDE/ATAPI           no              yes
Parallel Port       no              yes
CD-RW               no              yes
Multisession        only partial    yes
\end{verbatim}
{\itshape Table 2: \/}
\end{tscreen}


{\ttfamily cdwrite} ÊÇÒ»¸ö¾ÉµÄÈí¼þ£¬ÔÚÕâ¡õÌá³öÖ»²»¹ýÊÇÎªÁËÍêÕû¶øÒÑ¡£ÇëÊ¹ÓÃ {\ttfamily cdrecord} À´´úÌæ£¬ÒòÎªËüÄÜÖ§Ô®½Ï¶àµÄ¹âµúÉÕÂ¼Æ÷ºÍËüÓÐ½Ï¶àµÄ¹¦ÄÜ¡£×ÊÁÏ¸ñÊ½»¯µÄÄ¿µÄÊÇÒª×éÖ¯¹âµúÉÏµÄ×ÊÁÏ ( ·ÅÒ»¸öµµ°¸ÏµÍ³ÔÚ¹âµúÉÏ )

\begin{tscreen}
\begin{verbatim}
Feature         mkisofs         mkhybrid
--------------------------------------------
ISO 9660        yes             yes
RockRidge       yes             yes
El Torito       yes             yes
HFS             no              yes
Joliet          no              yes
\end{verbatim}
{\itshape Table 3: \/}
\end{tscreen}


ISO 9660 µµ°¸ÏµÍ³ºÍ Extended-2 µµ°¸ÏµÍ³µÄ×î´ó·Ö±ðÔÚì¶£¬Ò»µ©Äã½«×ÊÁÏÐ´Èë¹âµúÄÚ¾Í²»ÄÜ×÷ÐÞ¸Ä¡£ISO 9660 µµ°¸ÏµÍ³µÄÏÞÖÆÓÐÒÔÏÂ¼¸¸ö£º

\begin{itemize}
\item  Ä¿Â¼Ê÷Ö»ÄÜÓÐ 8 ¸ö×ÓÄ¿Â¼ (ÓÉ¹âµúµÄ¸ùÄ¿Â¼¿ªÊ¼ËãÆð) 
(ÓÃ RockRidge ¾Í¿ÉÒÔÍ»ÆÆÕâ¸öÏÞÖÆ)
\item  µµÃû×î³¤Ö»ÄÜÓÐ 32 ¸ö×ÖÔª
\item  650 MB ÈÝÁ¿
\end{itemize}


{\itshape RockRidge\/} ÊÇÒ»¸öÄÜÁî ISO-9660 µµ°¸ÏµÍ³Ö§Ô®³¤µµÃû¼°½ÏÉî²ãÄ¿Â¼½á¹¹µÄÑÓÉì¡£µ±ÄãÔÚ DOS »ò Windows µ×ÏÂ¶ÁÈ¡¹âµúÊ±ÕâÐ©ÑÓÉì¶¼ÊÇ²»¿ÉÓÃµÄ¡£



{\itshape El Torito\/} ÊÇÒ»¸öÄÜ¹»ÉÕÂ¼¿ª»ú¹âµúµÄÑÓÉì¡£ÄãµÄ¸öÈËµçÄÔ
»ù±¾ÊäÈë/Êä³öÏµÍ³Ò²±ØÐëÖ§Ô®Õâ¸öÌØÐÔ¡£´ÖÂÔµØËµ£¬¹âµúÎ¨¶Á¼Ç
ÒäÌå¿ªÊ¼µÄ 1.44  Mbyte º¬ÓÐÓÉÄã¹©¸øµÄÈí´ÅÆ¬´ÅÅÌÓ°Ïñ¡£»ù±¾Êä
Èë/Êä³öÏµÍ³»á°ÑÕâ¸öÓ°Ïñµ±×÷Èí´ÅÆ¬°ãÆô¶¯Ëü¡£

{\itshape HFS\/} ÄÜÈÃ macintosh ¶ÁÈ¡¹âµúÄÚµÄ×ÊÁÏ£¬Èç¹û¹âµúÄÚµÄ×ÊÁÏ
ÊÇ HFS µµ°¸ÏµÍ³µÄ»°£®( ÕâÊÇ MacOS µÄÔ­Éúµµ°¸ÏµÍ³ )¡£

{\itshape Joliet\/} °Ñ³¤µµÃû´øµ½ Windows µÄÐÂ°æ±¾ÖÐ (95, 98, NT)£®¾Ý×÷
ÕßËùÖª£¬ÔÝÊ±Ã»ÓÐÒ»ÖÖ¹¤¾ßÄÜ¹»Áî DOS ¼° Windows 3.11 Ö§Ô®³¤µµ
Ãû¡£

²¿·Ö 2.8 °ÑÌáµ½µÄÈíÌå¶¼Ò»Ò»ÁÐ³ö¡£




\subsection{Í¨Ñ¶ÂÛÌ³}

Èç¹ûÄãÏë²Î¼Ó¿ª·¢ÍÅ¶Ó (ÓÐÒ»¸öÖ÷¶¯ {\itshape °ïÖú\/} ËûÃÇµÄÐÄ), µçÓÊÖÁ
cdwrite-request@other.debian.org ºÍÔÚµçÓÊÄÚÈÝÐ´ÉÏ {\ttfamily subscribe}¡£




\subsection{¿ÉµÃÐÔ}

Õâ·ÝÎÄ¼þµÄ×îÐÂ°æ±¾¿É¾­³£ÔÚÕâ¡õ»ñµÃ
\nameurl{http://www.guug.de/~winni/linux/}{}.






\section{Éè¶¨ÄãµÄ Linux  ÏµÍ³À´ÉÕÂ¼¹âµú}



Èç¹ûÄã³É¹¦Éè¶¨ÄãµÄÓ²ÌåºÍÄã Linux ÏµÍ³µÄÆäâÅ²¿·Ý£¬ ÃüÁî  
{\ttfamily  cdrecord -  scanbus }  »á¸øÄã¿´µ½Ò»¸ö¿ÉÐ´Èë×°ÖÃµÄÁÐ±í¡£ Õâ¸ö
ÕÂ½ÚµÄÄ¿µÄÊÇÒªÔÚÉè¶¨ÄãµÄ Linux ÏµÍ³Ê±µ¼ÒýÄã£¬Òò´Ë×îááÄã»á¿´µ½
ÈçÏÂµÄÑ¶Ï¢£º

\begin{tscreen}
\begin{verbatim}
shell> cdrecord -scanbus
Cdrecord release 1.7a1 Copyright (C) 1995-1998 J¡õg Schilling
scsibus0:
          0) 'Quantum ' 'XP34300         ' 'F76D' Disk
          1) 'SEAGATE ' 'ST11200N        ' '8334' Disk
          2) *
          3) 'TOSHIBA ' 'MK537FB/        ' '6258' Disk
          4) 'WANGTEK ' '5150ES SCSI-36  ' 'ESB6' Removable Tape
          5) 'EXABYTE ' 'EXB-8500-85QUE  ' '0428' Removable Tape
          6) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
          7) *
scsibus1:
        100) 'Quantum ' 'XP31070W        ' 'L912' Disk
        101) *
        102) *
        103) 'TEAC    ' 'CD-R55S         ' '1.0H' Removable CD-ROM
        104) 'MATSHITA' 'CD-R   CW-7502  ' '4.02' Removable CD-ROM
        105) *
        106) 'YAMAHA  ' 'CDR400t         ' '1.0d' Removable CD-ROM
        107) *
\end{verbatim}
{\itshape Listing 1: Detecting devices on your SCSI-bus\/}
\end{tscreen}


Õâ¸öÀý×ÓÊÇÓÉ J¡õg Schilling ¡õ¹©µÄ£¬ÄãÏÖÔÚ»á¿´µ½Ò»¹²ÓÐËÄ¸ö¿ÉÉÕ
Â¼Æ÷¡£ËäÈ»ÄãÏÖÔÚÊÇ²»ÄÜ·Ö±ðÄÇÒ»¸ö¹âµú»úÊÇ·ñÎªÒ»¸ö¿ÉÐ´Èë¹âµú
»ú£¬²»¹ýÄã¿ÉÒÔÔÚ²úÆ·µÄÊ¶±ðºÅÖÐ¿´³öËüÊÇÒ»¸öÎ¨¶Á¡¢¿ÉÐ´»òÊÇ¿É
ÖØÐ´¹âµú»ú¡£










\subsection{Éè¶¨ Linux ºËÐÄ}

Ò»¸ö Linux ºËÐÄ¿ÉÒÔ°üº¬ºÜ¶àÇý¶¯³ÌÊ½ºÍ¹¦ÄÜ¡£Äã¿ÉÒÔ½«ÄÇÐ©Çý¶¯³ÌÊ½
±àÒë½øºËÐÄÓ°ÏñÖÐ»òÕßÄã¿ÉÒÔ½«ËüÃÇ±àÒë³ÉÄ£×é£¬È»áá´ýÓÐÐèÒªµÄÊ±ºò
²Å½«ËüÃÇÔØÈëºËÐÄÖÐ¡£¶ø½¨ÒéµÄ·½·¨ÊÇ½«±Ø²»¿ÉÉÙµÄÇý¶¯³ÌÊ½±àÒë½øºË
ÐÄ¡£¾ÙÀý£¬Èç¹ûÄãÓÐÒ»¸ö IDE µÄ Harddisk£¬ÄÇÄãÒ»¶¨½«IDE Harddisk
µÄÇý¶¯³ÌÊ½±àÒë½øºËÐÄÖÐ ( ²»Òª±àÒë³ÉÄ£×é )¡£





ÏÖ´æÓÐÈýÀàµÄ¹âµúÉÕÂ¼Æ÷£ºSCSI£¬IDE/ATAPI ºÍÍâÖÃÆ½ÐÐ²º¡£±í¸ñËÄÕ¹Ê¾³ö
ÔõÑùÉè¶¨ Linux µÄºËÐÄÀ´Ö§Ô®Õâ¼¸ÖÖ¹âµúÉÕÂ¼Æ÷¡£±í¸ñµÄµÚÒ»ÁÐÊÇÉè¶¨Ñ¡µ¥
£¬Äã¿ÉÒÔÔÚÕâÑùÕÒµ½ÓÐ¹ØµÄÉè¶¨¡£±í¸ñµÄµÚ¶þÁÐÊÇ¹¦ÄÜËµÃ÷¡£±í¸ñµÄµÚÈýÁÐÊÇ
Ä£×éÃû³Æ¡£



Y ´ú±íÊÇºÍÒâÎ¶ÖøÄãÓ¦¸Ã°ÑÕâ¸ö¹ÖÊÞ·ÅÈëºËÐÄ¡£M ´ú±íÄ£×éºÍÒâÎ¶ÖøÄãÓ¦¸Ã°ÑËü
±àÒë³ÉÄ£×é¡£ Y/M ´ú±íÄã¿ÉÒÔÔÚÁ½ÕßÖ®¼äÈÎÔñÆäÒ»¡£¿ÕµÄÉè¶¨¾ÍÇ§Íò²»Òª¸Ä¶¯£¬
²»¸Ä¶¯Ëü¿ÉÒÔÁîÄãÄÜ³É¹¦±àÒëºËÐÄµÄ»ú»áÔö¼Ó¡£



Òª¼ì²éÄÇÐ©Çý¶¯³ÌÊ½ÔÚÄãµÄºËÐÄÖÐ ( ²»ÂÛÊÇ¾²Ì¬»ò¶¯Ì¬ÔØÈëµÄ )£¬Äã¿ÉÒÔ¿´Õâ¸ö
µµ°¸ /dev/devices ¡£Òª¼ì²éÄÇÐ©Ä£×éÒÑÔØÈë£¬Äã¿ÉÒÔÓÃ 'lsmod'¡£Òª¼ì²éÓÐÄÇÐ©
Ä£ {\itshape  ¿ÉÒÔ \/} ÔØÈëµÄ»°£¬¼üÈë'modprobe -l'¡£Èç¹ûÄãÐèÒªµÄÄ£×é²»ÔÚÄãµÄ
ÏµÍ³µÄ»°£¬Äã¾ÍÒªÖØÐÂ±àÒëºËÐÄ¼°°²×°Ëü¡£Äã¿ÉÒÔ²Î¿¼ Kernel-HOWTO À´°ïÖúÄãÖØ
ÐÂ±àÒëºËÐÄ¡£ÓÐ¹ØÔõÑù´¦ÀíºËÐÄÄ£×éµÄ×îÐÂ×ÊÑ¶£¬¿ÉÒÔ²Î¿¼ Module-HOWTO¡£





\begin{tscreen}
\begin{verbatim}
Sect.  Description                 Module   SCSI  IDE   PP
------------------------------------------------------------
BLOCK  Enhanced IDE/MFM/RLL...                     Y      
BLOCK  IDE/ATAPI CDROM             ide-cd        M/N/Y     
BLOCK  SCSI hostadaptor emulation  ide-scsi        M      
BLOCK  Loopback device             loop       M    M     M

PARIDE Parallel port IDE device    paride               Y/M
PARIDE Parallel port ATAPI CD-ROMs                       M
PARIDE Parallel port generic ATAPI                       M
PARIDE (select a low-level driver)                       Y

SCSI   SCSI support                scsi_mod  Y/M  Y/M    
SCSI   SCSI CD-ROM support         sr_mod    Y/M  Y/M     
SCSI     Enable vendor-specific               Y    Y      
SCSI   SCSI generic support        sg        Y/M  Y/M     
SCSI   (select a low-level driver)            Y

FS     ISO 9660 CDROM filesystem   iso9660    Y    Y     Y
FS     Microsoft Joliet cdrom...   joliet     M    M     M
\end{verbatim}
{\itshape Table 4: \/}
\end{tscreen}


ÈçÀ§Äã³É¹¦½¨Á¢»òÕÒµ½ËùÐèµÄÄ£×éÖ®áá£¬Äã¿É½«ËüÃÇµÄÃû³Æ¼ÓÈë /etc/modules»ò
ÓÉ×Ô¶¯¹¤¾ßÀ´ÔØÈëËüÃÇ (kmod,kerneld)¡£Èç¹ûÄã²»¿Ï¶¨µÄ»°£¬Çë²Î¿¼ Linux Ì×¼þ
ÖÐµÄËµÃ÷µµ¡£



"SCSI hostadaptor emulation" Õâ¸ö¹¦ÄÜÔÚÖ®Ç°µÄ°æ±¾ÊÇ½Ð×ö "SCSI emulation"
( ´ó¸ÅÊÇ 2.0.36 )¡£ÈçÀ§Äã´ò¿ªÕâ¸öÑ¡Ïî£¬Äã¾ÍÒª½«IDE/ATAPI ¹âµúµÄÇý¶¯³ÌÊ½
±àÒë³ÉÄ£×é¡£Òª²»È»Äã¾ÍÒª½«ËüÈ¡ÏûºÍÊ¹ÓÃ SCSI µÄ¹âµúÇý¶¯³ÌÊ½¡£ÒòÎª 2.2 ÏµÁÐ
µÄºËÐÄÒÑ²»ÄÜÍ¬Ê±Ê¹ÓÃ IDE ºÍ SCSI µÄÇý¶¯³ÌÊ½ÔÚÍ¬Ò»¸öÓ²ÌåÉÏ ( ÈçÀ§ÄãÊÇÊ¹ÓÃ
2.0.36 ºËÐÄµÄ»°£¬Çë¿´ÒÔÏÂµÄËµÃ÷ )¡£



Loopback device ÊÇÒ»¸öÑ¡ÔñÐÔµÄ¹¦ÄÜ£¬ËüÄÜ°ïÄãÔÚÉÕÂ¼Ó°ÏñÖ®Ç°²âÊÔÒ»ÏÂÄãµÄ
Ó°Ïñµµ¡£



Èç¹ûÄãÒª¶ÁÈ¡¹âµú£¬ÄÇÄã¾ÍÐèÒª ISO 9660 µµ°¸ÏµÍ³µÄÖ§Ô®¡£Õâ¸öÇý¶¯³ÌÊ½ÒÑ×Ô
¶¯°üº¬RockRidge ÑÓÉì¡£Èç¹ûÄãÐèÒªMS Joliet ¹âµúÑÓÉì£¬Äã±ãÐèÒª±àÒëËüÎªÄ£
×éÈ»ááÔØÈëËü¡£



ÔÚÈÎºÎµÄÇé¿öÏÂÄã¶¼ÐèÒªÒ»¸öµÍ½×µÄÇý¶¯³ÌÊ½¡£µÍ½×ÊÇÖ¸ÄÇ¸öÇý¶¯³ÌÊ½»áÖ±½ÓÓëÓ²
Ìå¹µÍ¨¡£ÖÁì¶ SCSI ºÍÆ½ÐÐ²º£¬ÓÐºÜ¶àµÍ½×µÄÇý¶¯³ÌÊ½¿ÉÓÃ£¬Çë¿´ÒÔÏÂµÄËµÃ÷¡£








\subsubsection{¸ø 2.2 ÏµÍ³µÄÌØ±ðÌáÊ¾}



ÔÚºËÐÄ°æ±¾ 2.2.1 ÖÐ£¬²»ÒªÍ¬Ê±´ò¿ªCONFIG\_SCSI\_MULTI\_LUN ºÍide-scsi support
ÕâÁ½¸öÑ¡Ïî£¬ÒòÎª ide-scsi ÓÐ¡õ¶øÖÁ²»ÄÜÕâÑù×ö¡£ÎÞÂÛÈçºÎ£¬¶¼½¨Òé´ó¼Ò¶¼°ÑºËÐÄ
Éý¼¶Îª 2.2.5 ¡£



Ò»Ð©ÓÃ»§±¨¸æËµÒÑ±àÒëºÃµÄ cdrecord ºÍ 2.2 ºËÐÄÓÐ³åÍ»¡£ÕâÊÇ Linux ºËÐÄµÄ
ÎÊÌâ¡£½â¾öµÄ·½·¨ÈçÏÂ£º

\begin{itemize}
\item ÄãÔÙ´Î±àÒë cdrecord ÒÔÁîËüÊÊÓ¦ÔÚ linux/include/scsi/sg.h ¡õµÄÕæÕý
ÊýÖµáá£¬ÎÊÌâ¾Í¿ÉÄÜ½â¾öÁË¡£
ÒòÎª sg Ê¹ÓÃÕß½éÃæÊÇÑÆµÄ£¬ËùÒÔÄÇÐ©ÊýÖµÒ»¶¨ÒªºÍºËÐÄÖÐµÄÊýÖµÒ»Ñù²ÅÐÐ¡£
\item ÕâÒà¿ÉÄÜÓÉì¶ sg Çý¶¯³ÌÊ½²»ÄÜÈ¡µÃ×ã¹»µÄ¼ÇÒäÌåÀ´¸ø DMA¡£J¡õg Schillings     FTP-site : \nameurl{ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha/}{}  
ÕÒÈ¡ sg\_buffer patch À´½â¾öÕâ¸öÎÊÌâ¡£
\end{itemize}





\subsubsection{¸ø 2.0 ÏµÁÐµÄÌØ±ðÌáÊ¾}



ÔÚºËÐÄ 2.0.31 ÒÔÇ°ÊÇÓÐºÜ¶à¡õÒýÖÁ²»ÄÜ¶ÁÈ¡¹âµúÖÐ×îááÒ»¸öµµ°¸¡£ÇëÉý¼¶µ½ºË
ÐÄ 2.0.36¡£

¶Ôì¶ 2.0.36 »òÒÔÉÏµÄ°æ±¾£¬Äã¿ÉÒÔÑ¡ÔñÄÇÖÖÇý¶¯³ÌÊ½(IDE or SCSI) ÔÚÄÇ¸ö 
ATAPI-deviceÉÏÊ¹ÓÃ¡£¸ü¾«È·µØËµ£¬Äã¿ÉÒÔ¼ÓÈë"SCSI emulation" Õâ¸ö¹¦ÄÜµ½
ÄãµÄºËÐÄÖÐºÍÄã¿ÉÒÔÔÚºËÐÄÃüÁîÁÐÖÐ¸øÌØ¶¨µÄ device Æô¶¯Ä£Äâ ( ÔÚÏµÍ³Æô¶¯
Ç°»òÆô¶¯ÖÐ )¡£¾ÙÀý£¬Èç¹ûÄãµÄ¹âµúÉÕÂ¼Æ÷ÓÐÕâ¸ö devicefile /dev/hdb£¬ÕâÑù
¼ÓÈëÒÔÏÂµÄ¾ä×Ó {\ttfamily hdb=ide-scsi}¡£



\begin{tscreen}
\begin{verbatim}
image=/boot/zImage-2.0.36
  label=Linux
  read-only
  append="hdb=ide-scsi"
\end{verbatim}
{\itshape Listing 2: Example configuration for lilo (/etc/lilo.conf)\/}
\end{tscreen}


\begin{tscreen}
\begin{verbatim}
linux "Linux 2.0.36" {
        image=/boot/zImage-2.0.36
        cmdline= root=/dev/hda5 readonly hdb=ide-scsi
}
\end{verbatim}
{\itshape Listing 3: Example configuration for chos (/etc/chos.conf)\/}
\end{tscreen}







\subsection{Ó²ÌåºÍ devicefiles}

ÔÚÄã°²×°ËùÓÐ±ØÐèµÄÇý¶¯³ÌÊ½ÒÔáá, ÖØÐÂÕâ¸öÐÂºËÐÄ¡£ËüÓ¦¸ÃÓÐÄãÔÚÍùáá²¿·ÝËùÐè
ÒªµÄËùÓÐ¹¦ÄÜ¡£ 

{[} Èç¹ûÄãÊÇ devfs µÄÊ¹ÓÃÕß£¬Äã¾Í²»ÐèÒªÀí»áÒÔÏÂÊÖ¶¯Éè¶¨ device files µÄ²½
Öè£¬ÒòÎª devfs »áÎªÄã°ìÀíÒ»ÇÐµÄÊÂÇé¡£]

½øÈë {\ttfamily /dev} Ä¿Â¼È»áá¼ì²éÒ»ÏÂÄãÓÐÃ»ÓÐ {\itshape loopback devices\/}¡£
ËäÈ»Õâ²»ÊÇÌ«´óÎÊÌâÈç¹ûÄãÃ»ÓÐÕâÐ© devices£¬µ«ÊÇÓÐÁËËüÃÇ¾Í»á·½±ãÒ»Ð© (Çë¿´
3.5 )£® Èç¹ûÄãÓÐËüÃÇµÄ»°Äã»á¿´µ½ {\ttfamily ls} Ö¸ÁîÏÔÊ¾{\ttfamily loop0}-{\ttfamily loop7}£º

\begin{tscreen}
\begin{verbatim}
shell> cd /dev
shell> ls loop*
loop0 loop1 loop2 loop3 loop4 loop5 loop6 loop7
\end{verbatim}
{\itshape Listing: devicefiles for loopback\/}
\end{tscreen}


Èç¹ûÄãÃ»ÓÐÕâÐ© device-files µÄ»°£¬Äã¿ÉÒÔÓÃ{\ttfamily /dev/MAKEDEV}-script 
À´½¨Á¢ËüÃÇ£º

\begin{tscreen}
\begin{verbatim}
shell> cd /dev/
shell> modprobe loop
shell> ./MAKEDEV loop
\end{verbatim}
{\itshape Listing: commands to create loopback devices\/}
\end{tscreen}


Èç¹ûÄãÓÐ{\ttfamily loop} Ä£×é±àÒë½øºËÐÄ£¬×îááµÄÖ¸ÁîÄã²Å¿ÉÒÔ³É¹¦Ö´ÐÐ¡£ÄãÔÚÕâ
¡õ¿´µ½ÓÐ¹ØÔõÑù´¦Àí loop-devicefiles µÄ·½·¨ÄãÍ¬Ñù¿ÉÒÔÓ¦ÓÃÔÚÆäËû devicefiles
ÖÐ(sg*, pg*, hd*, ...) ²»¹ýÔÚÒÔááµÄÕÂ½Ú¾Í²»»áÃ÷È·ËµÃ÷¡£






\subsubsection{IDE/ATAPI ¹âµúÉÕÂ¼Æ÷}



ATAPI ´ú±í "SCSI µÄÃüÁîÔÚ IDE-bus ÉÏÖ´ÐÐ"¡£»»¾ä»°Ëµ£¬ÄãµÄIDE/ATAPI 
¹âµúÉÕÂ¼Æ÷»áËµ SCSI Ð­¶¨(²»¹ý´øÓÐÒ»Ð©ÏÞÖÆ)£¬ÄÇ¼´ÊÇËü»áÄ£Äâ³ÉºÃÏñÒ»¸ö
SCSI¹âµúÉÕÂ¼Æ÷Ò»Ñù¡£

ÔÚ Linux µ×ÏÂÖ»ÒªÄãÔËÓÃ"SCSI (hostadaptor) emulation" Õâ¸öºËÐÄ¹¦ÄÜÄÇÄã
¾Í¿ÉÒÔÁîÄãµÄ IDE ¹âµúÉÕÂ¼Æ÷³öÏÖÈçÍ¬ SCSI-devices ÄÇÑù¡£Èç¹ûÄãÊ¹ ide-scsi
ºËÐÄÄ£×é»î¶¯ÆðÀ´µÄ»°£¬Äã¾Í»áºÃÏñÓµÓÐÒ»¸ö SCSI ¹âµúÉÕÂ¼Æ÷ÄÇÑù¡£






\subsubsection{SCSI ¹âµúÉÕÂ¼Æ÷}



ÇëÈ·¶¨ÄãµÄ¹âµúÉÕÂ¼Æ÷ÄÜ¹»±»ÄãµçÄÔµÄ»ù±¾ÊäÈë/Êä³öÏµÍ³Ö§Ô®¡£ÊÂÇé¾Í±äµÃ¡õÒâË¼
Èç¹ûÄãÓµÓÐÓ²¼þ¶øµçÄÔÓÖ²»ÄÜÖ§Ô®Ëü¡£

ÈçÀ§ÄãÏë½«ÄãµÄ SCSI-drive Á¬½ÓÖÁÄãµçÄÔµÄÆ½ÐÐ²ºÉÏµÄ»°£¬ÄãÐèÒªÌØ±ðµÄÀÂÏß
ºÍÌØ±ðµÄºËÐÄÇý¶¯³ÌÊ½¡£¿´Õâ¸öÍøÖ·\nameurl{http://www.torque.net/parport/parscsi.html}{} ÒÔÈ¡µÃ¸ü¶àµÄ×ÊÁÏ¡£




\paragraph{Ò»°ã SCSI devices}

/dev/sd* ºÍ /dev/sr* ÕâÐ© devicefiles ÊÇÓÃÀ´´æÈ¡ SCSI Ó²µúºÍ SCSI ¹âµú
Çý¶¯Æ÷²»¹ý SCSI ¹âµúÇý¶¯Æ÷µÄ´æÈ¡Ö»ÏÞì¶ block-oriented ×ÊÁÏ´«ËÍ¡£ÕâÊ¹
ËüÃÇÄÇ÷á¿ìËÙºÍÊÊºÏì¶×ÊÁÏ´æ´¢¡£²»¹ýÇý¶¯¹âµúÉÕÂ¼Æ÷µÄÀ×ÉäÊÇÒ»¼þ¸ü¼Ó¸´ÔÓµÄ
ÊÂÇé£¬¶ø²»ÊÇblock-oriented ×ÊÁÏ´«ËÍÄÇ÷á¼òµ¥¡£ÒªÊ¹ sd* ºÍ sr* devices ±£
³ÖÇ¬¾»ºÍ¿ìËÙ£¬Ò»ÖÖÐÂµÄ×°ÖÃ ¡ª {\itshape generic SCSI-devices\/}¾ÍÑÜÉú³öÀ´¡£
ÒòÎªËùÓÐ¶Ô SCSI Ó²ÌåµÄ²Ù×÷¶¼¿ÉÒÔÍ¸¹ý generic devices À´´ï³É¶øËüÃÇÓÖÃ»ÓÐ
ÌØ¶¨µÄÄ¿µÄËùÒÔËüÃÇ¾Í½Ð×ö {\itshape generic\/}£®

Èç¹ûÄãÒªÕÒÕâÐ© device£¬Äã¿ÉÒÔµ½ /dev µÄÄ¿Â¼£º

\begin{tscreen}
\begin{verbatim}
shell> cd /dev
shell> ls sg*
sg0  sg1  sg2  sg3  sg4  sg5  sg6  sg7
\end{verbatim}
\end{tscreen}


Èç¹ûÄãÃ»ÓÐÕâÐ© device-files £¬Äã¿ÉÒÔÔÚÓÃÏÂÁÐµÄ script À´½¨Á¢ËüÃÇthe {\ttfamily /dev/MAKEDEV}-script:

\begin{tscreen}
\begin{verbatim}
shell> cd /dev/
shell> ./MAKEDEV sg
\end{verbatim}
\end{tscreen}







\subsubsection{Æ½ÐÐ²ºµÄ¹âµúÉÕÂ¼Æ÷}



Õæ¶Ô²»Æð£¬ÎÒÃ»ÓÐÕâ·½ÃæµÄ½â¾ö·½°¸¡£ Çë¿´ \nameurl{http://www.torque.net/parport/paride.html}{} »òÄã±¾ÇøµÄµµ°¸/usr/src/linux/Documentation/paride.txt.








\subsection{È¡µÃÈíÌåÀ´ÉÕÂ¼¹âµú}

Äã¿ÉÒÔÔÚÕâ¡õÕÒµ½Ò»ÏµÁÐÉÕÂ¼¹âµúµÄÈí¼þ
\nameurl{http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html}{}.The CD building project for UNIX




\subsubsection{ÃüÁîÁÐ¹¤¾ß}

ÄãÐèÒªÒÔÏÂ³ÌÊ½°üÖ®ÖÐÈÎÔñÆäÒ»À´²úÉú¹âµúÔ­ÐÍ£º

\begin{quotation}
\nameurl{ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/}{} (mkisofs)\nameurl{ftp://ftp.ge.ucl.ac.uk/pub/mkhfs}{} (mkhybrid)

\end{quotation}


ÊÓÄãµÄ¹âµúÉÕÂ¼Æ÷ÐÍºÅ¶ø¶¨£¬ÄãÐèÒªÒÔÏÂÆäÖÐÖ®Ò»¸ö³ÌÊ½À´½«¹âµúÔ­ÐÍÐ´Èë£º 
\begin{quotation}
\nameurl{ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/}{} (cdrecord) 

\end{quotation}


Ç§Íò²»ÒªÏàÐÅ{\ttfamily mkisofs} ¾ÉµÄËµÃ÷µµ£¬ËüËµÄãÐèÒª {\ttfamily cdwrite} °æ±¾ 1.5
£¬ÄãÖ»ÐèÒª cdrecord ¾ÍºÃÁË¡£×¢Òâ£ºcdrecord Ëù°üÀ¨µÄ mkiosfs ÓÐÒ»Ð©¸½¼ÓµÄ¹¦ÄÜ£®






\subsubsection{Graphical user interfaces (optional)}

Front-ends ÔÚ Linux ÖÐÕæµÄÖ»ÊÇ front-ends¡£¼´ÊÇÄãÈÔÈ»ÐèÒª°²×°ÃüÁîÁÐ¹¤¾ß£¬
²»¹ýÄã¿ÉÒÔÓÃÒ»¸ö½ÏºÃµÄ½éÃæ¶øÒÑ¡£

{\itshape X-CD-Roast\/} ÊÇÒ»¸öÔÚ Linux ÏÂÈÝÒ×ÉÕÂ¼¹âµúµÄ³ÌÊ½¼¯¡£Ëü½áºÏÁË {\ttfamily cdrecord} ºÍ {\ttfamily mkisofs} ÔÚÒ»¸öÃÀÀöµÄ½éÃæÒÔÖÐ¡£

\begin{quotation}
\nameurl{http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html}{}
\end{quotation}


{\itshape BurnIT\/} ÊÇÒ»¸ö cdrecord, mksiofs and cdda2wav-0.95 µÄ JAVA front-end £¬£¬ÕâÊ¹Ëü³ÉÎªÒ»¸öÔÚ Unix Æ½Ì¨ÏÂÍêÕûµÄ¹âµúÉÕÂ¼°ü×°£¬Äã¿ÉÒÔÔÚÕâ¡õÈ¡µÃ£º

\begin{quotation}
\nameurl{http://sunsite.auc.dk/BurnIT/}{}
\end{quotation}











\section{ÉÕÂ¼¹âµú}

\begin{quotation}
"If to smoke you turn I shall not cease to fiddle while you burn."
{\itshape (Roman emperor Nero about burning his own classic-CDs, AD64. He
misunderstood it completely.)\/}
\end{quotation}




ÔÚ Linux ÏÂÉÕÂ¼¹âµúÓÐÒÔÏÂÁ½¸ö²½Öè£º

\begin{itemize}
\item  ½«ËùÐèµÄ×Ê¡õ ( µµ°¸£¬ÒôÀÖ»òÈ«²¿ ) °ü×°³ÉÒ»Ð©ÌØ±ð¸ñÊ½µÄµµ°¸¡£
\item  ÓÃ{\ttfamily cdrecord} ½«ÕâÐ©µµ°¸Ð´Èë¹âµúÖÐ¡£
\end{itemize}


ÕâÒ»ÕÂ»áÏê¾¡½²½âÉÕÂ¼×ÊÁÏ¼°ÒôÀÖ¹âµúµÄ²½Öè¡£






\subsection{ÉÕÂ¼¹âµúÆ¬ (´¿×ÊÁÏ)}

ÇëÁôÒâ£¬ÓÉì¶ÊÕ¼¯Èí¼þËùÐèµÄÊ±¼ä×Ü»á±ÈÔ¤¼ÆÖÐµÄ³¤£¬¹Ê´ËÓÐÒ»¸öÐèÒª¿¼ÂÇµÄ
ÎÊÌâ£¬±ãÊÇááÆÚ²ÅÕÒµ½µÄµµ°¸²»ÄÜÐ´ÈëÔ­ÏÈÉÕÂ¼¹ý»òÒÑÍê³ÉÉÕÂ¼µÄ¹âµú¡£

{$<$}!-
¿ÉÖØÐ´¹âµúËæÊ±¶¼¿ÉÒÔÔÚ¿ÕâÅµÄÎ»ÖÃÐ´Èë×ÊÁÏ£¬Ö»ÒªÄãÃ»ÓÐ¹Ø±Õ¹âµú£¬ÔÙÔÚ¹â
µú¿ªÒ»¸öÇøÓò£¬±ä³Émulti-session ¹âµú£¬±ã¿ÉÐ´Èë×ÊÁÏ£¬²»¹ýÕâ¸ö×ö·¨Ò²
ÓÐÈ±µã£¬¾ÍÊÇ»áÀË·Ñµµ°¸Ä¿Â¼±íµÄ¿Õ¼ä¡£
--{$>$}
»¹Òª½ô¼Ç¹âµúÖÐÓÐÒ»¶¨ÈÝÁ¿µÄ¿Õ¼ä»áÓÃ×÷´¢´æISO-9660-µµ°¸ÏµÍ³µÄ×ÊÁÏ£¬Í¨
³£»áÓÃÉÏÊýMB£¬ËùÒÔÒ»Ö»650MBµÄ¹âµú£¬Êµ¼ÊÉÏÖ»ÓÐÔ¼620MB¿ÉÓÃ¡£




\subsubsection{½¨Á¢¹âµúÓ°Ïñµµ}

ÈÎºÎÒ»ÖÖ´¢´æÃ½Ìå£¬²»ÂÛÈíÆ¬£¬Ó²µú£¬ÒÖ»ò¹âµú£¬ÔÚÊ¹ÓÃÇ°¶¼±ØÐëÏÈ½¨Á¢
µµ°¸ÏµÍ³£¬ÔÚDOS¶øÑÔ¼´¸ñÊ½»¯£¬Ê¹ÆäÓµÓÐÒ»¸öµµ°¸ÏµÍ³¡£Õâ¸öµµ°¸ÏµÍ³
½«»áÓÃ×÷×éÖ¯¼°ºÏ²¢´¢´æÃ½ÌåÉÏµÄµµ°¸¡£

Ò»°ãÓÃÀ´¸ñÊ½»¯Ó²µú»ú·Ö¸îÇøµÄ¹¤¾ß¶¼»áÏÈÐ´ÈëÒ»¸ö¿ÕµÄµµ°¸ÏµÍ³µ½Ó²µú·Ö¸îÇøÖÐ£¬
È»ááËü±ã»á±»¹ÒÉÏºÍÔÚÊ¹ÓÃÕßÓÐÐèµÄÊ±²Å³­Ð´µµ°¸ÔÚÆäÖÐ¡£²»¹ýÒ»Ö»¿ÉÉÕÂ¼¹âµúÖ»ÄÜ
Ð´ÈëÒ»´Î£¬Èç¹ûÎÒÃÇÐ´ÈëÒ»¸ö¿ÕµÄµµ°¸ÏµÍ³£¬Ëü¾Í»á±»¸ñÊ½»¯ ¡ª ²»¹ýËüÓÀÔ¶¶¼»áÊÇ
Ò»Ö»¿ÕµÄ¹âµú¡£¿ÉÖØÐ´µÄ¹âµú¶¼ÊÇÒ»ÑùµÄ£¬ÒòÎªÄã²»ÄÜ¸Ä±ä arbritary sectors £¬²»
¹ýÄã¿ÉÒÔÏû³ýÕûÖ»¹âµúµÄÄÚÈÝ¡£



ËùÒÔÎÒÃÇÐèÒªÒ»¸ö¹¤¾ßÄÜ¹»Ò»±ß³­Ð´µµ°¸Ò»±ß½¨Á¢µµ°¸ÏµÍ³ÔÚ
¹âµúÖÐ£®Õâ¹¤¾ß½Ð×ö {\ttfamily mkisofs}£®ÒÔÏÂ¾ÍÊÇÕâ¹¤¾ßµÄÊ¹ÓÃ
Àý×Ó£º

\begin{tscreen}
\begin{verbatim}
mkisofs  -r   -o cd_image   private_collection/
              `---------'   `-----------------'
                   |               |
                Ð´ÈëÖÁ      ÒÔÕâ¸öÄ¿Â¼×öÊäÈë
\end{verbatim}
\end{tscreen}


'-r' Ñ¡ÏîÉè¶¨ËùÓÐÔÚ¹âµúÖÐµÄµµ°¸Îª¹«ÖÚ¿É¶ÁºÍ¿ªÆô Rock Ridge ÑÓÉì¡£
ÕâÊÇºÜ¶àÈËÏëÒªµÄ¶«Î÷²»¹ýÊ¹ÓÃÇ°Äã±ØÐë¿Ï¶¨ÖªµÀÄã×Ô¼ºÔÚ×öÊ²÷á¡£
(ÌáÊ¾£ºÃ»ÓÐ '-r' Ñ¡ÏîµÄ»°ÄÇ¸ö mount-point ¾Í»á±ä³É {\ttfamily private\_collection}!)¡£

{\ttfamily mkisofs} »á³¢ÊÔ½«ËùÓÐµµ°¸µÄ×ªÎª DOS µÄ8.3¸ñÊ½ÒÔÈ·±£×î¸ßµÄ¼æÈÝÐÔ¡£
ÈôÓöÉÏÃüÃû³åÍ» (²»Í¬µµ°¸ÓÐÏàÍ¬µÄÃû³Æ)£¬ÕâÊ±¾Í»áÔÚµµ°¸ÖÐÊ¹ÓÃÊý×Ö¶øÓÐ¹Ø¸Ãµµ
°¸µÄ×ÊÁÏ¾Í»áÔÚ STDERR (Í¨³£¶¼ÊÇÓ©Ä») ÖÐÏÔÊ¾¡£ ²»Òªµ£ÐÄ£ºÔÚ Linux ÖÐÄãÓÀÔ¶
²»»á¿´µ½ 8.3 ¸ñÊ½µÄµµ°¸ÒòÎª Linux »áÊ¹ÓÃ Rock Ridge ÑÓÉì¶øËùÓÐµµ°¸µÄ×ÊÁÏ¶¼
»áÔÚ Rock Ridge ÑÓÉìÖÐ (Ê¹ÓÃÈ¨ÏÞ£¬µµ°¸Ãû³Æ£¬µÈµÈ)¡£

µ½ÏÖÔÚÄã¿ÉÄÜ»áÎÊÎªÊ²÷á {\ttfamily mkisofs} µÄÊä³ö²»Ö±½ÓÐ´Èë¿ÉÐ´¹âµú»úÖÐ¡£ÕâÓÐ
Á½¸öÔ­Òò£º

\begin{itemize}
\item {\ttfamily mkisofs} ²»ÏþµÃÔõÑùÇý¶¯¿ÉÐ´¹âµú¡£
\item Äã¿ÉÄÜÐèÒªÔÚÉÕÂ¼Ç°²âÊÔÒ»ÏÂÓ°Ïñµµ¡£
\item ÔÚÂýµÄ»úÆ÷ÖÐËü»á¿É¿¿Ð© (¿´ÕÂ½Ú 4.).
\end{itemize}


»áÔÚÏÂÃæ½²ÊöÔõÑùÉÕÂ¼Ò»Ö»¹âµú¡£

ÓÐÐ©ÈË¿ÉÄÜ»áÏë²»Èç½¨Á¢Ò»¸ö¶ÀÁ¢µÄ·Ö¸îÇøÀ´Ð´ÈëÓ°ÏñÒÔ´úÌæµµ°¸¡£
ÎÒ²¢²»ÔÞÍ¬ÕâÍ¬·½·¨ÒòÎªÈç¹ûÄãÐ´Èëµ½´íÎóµÄ·Ö¸îÇø(ÓÉ´ò×Ö´íÎóËùÔì³É)µÄ»°
£¬Äã±ã»áÒÅÊ§Õû¸ö Linux ÏµÍ³ (ÎÒ¾ÍÊÔ¹ýÕâÇé¿ö)¡£ÔÙÕß£¬ÕâÑù×ö»áÔì³É´Åµú
¿Õ¼äÀË·ÑÒòÎª¹âµúÓ°ÏñÊÇÒ»ÖÖÔÝÊ±ÐÔµÄ×ÊÁÏ£¬µ±Ëü±»ÉÕÂ¼µ½¹âµúááËü±ã¿ÉÒÔÉ¾
³ý¡£²»¹ýÓÃÓ²µú·Ö¸îÇø¿ÉÒÔ½ÚÊ¡ÄãÉ¾³ýÒ»¸ö 650 MB µµ°¸µÄÊ±¼ä¡£ (²»¹ýÈç¹û
ÄãÓÐÒ»¸ö¶îÍâµÄ·Ö¸îÇø¿ÉÒÔÁîÄã½ÚÊ¡É¾³ýÓ°ÏñµµµÄÊ±¼ä¡£)






\subsubsection{²âÊÔ¹âµúÓ°Ïñµµ}

Linux ¿ÉÒÔºÃËÆ´Åµú·Ö¸îÇø°ã½«µµ°¸¹ÒÉÏ¡£ÕâÊÇÒ»¸öºÜºÃÓÃµÄ¹¦ÄÜËü¿ÉÒÔÓÃÀ´
¼ì²éÄ¿Â¼ÅäÖÃºÍµµ°¸Ê¹ÓÃÈ¨ÏÞÊÇ²»ÊÇÄãËùÒªÇóÄÇÑù¡£ËäÈ»ÏÖÔÚµÄ¹âµúºÜ±ãÒË£¬
µ«ÊÇÉÕÂ¼¹ý³ÌÒÀÈ»ÊÇºÜ·ÑÊ±µÄ£¬ËùÒÔÄãÆðÂëÐèÒª×öÒ»¸ö¿ìËÙµÄ²âÊÔ¡£

Òª½« {\ttfamily ¹âµúÓ°Ïñµµ} ¹ÒÉÏ {\ttfamily /cdrom} £¬ÇëÓÃÒÔÏÂµÄÖ¸Áî

\begin{tscreen}
\begin{verbatim}
mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom
\end{verbatim}
\end{tscreen}


ÄãÏÖÔÚ¿ÉÒÔÔÚ {\ttfamily /cdrom} µ×ÏÂ¼ì²éÏÂÄãµÄµµ°¸ ¡ª ÏÖÔÚµÄÎ»ÖÃ±ãÊÇËü
ÃÇÔÚÕæÕý¹âµúÖÐµÄÎ»ÖÃ¡£ÒªÐ¶³ý¹âµúÓ°Ïñµµ£¬ÄãÖ»ÐèÒª´ò {\ttfamily umount /cdrom}
¡£(¾¯¸æ£ºÈç¹ûÄãÊÇÊ¹ÓÃ Linux ºËÐÄ 2.0.31 »òÒÔÇ°µÄ°æ±¾£¬Äã¾ÍÓÐ¿ÉÄÜ¿´²»¼û
×îááµÄ¼¸¸öµµ°¸¡£ ÇëÊ¹ÓÃ½ÏÐÂµÄºËÐÄ¡£ The option -pad for cdrecord applies to 
audio-CDs only and the optional option -pad for mkisofs requires a patch, which is as much work to apply than to upgrade to a bug-free Linux-kernel.)

×¢Òâ:
\begin{quotation}
±È½Ï¾ÉµÄ {\ttfamily mount} ÊÇ²»ÄÜ´¦Àí loopback-devices¡£Èç¹ûÄãÊÇÊ¹ÓÃ¾ÉµÄ {\ttfamily mount} µÄ»°ÏÖÔÚÊÇÊ±ºò¸üÐÂÄãµÄ Linux ÁË¡£

ÓÐºÜ¶àÈË¶¼½¨ÒéÎÒÔö¼ÓÒ»Ð©¹Øì¶ÈçºÎÈ¡µÃ×îÐÂ mout ¹¤¾ßµÄ×ÊÁÏ
ÔÚÕâ·Ý mini-HOWTO ÖÐ¡£µ«ÎÒ¶¼Ò»Ò»¾Ü¾ø¡£ÈçÀ§ÄãµÄ Linux Ì×¼þ
¸½ËÍÁË¾É°æ±¾µÄ {\ttfamily mount}£º±¨¸æÕâÊÇÒ»¸ö³ô¡õ¡£Èç¹ûÄãµÄ
ÄãµÄ Linux Ì×¼þÊÇ²»ÄÜÇáÒ×Éý¼¶£¬±¨¸æÕâÊÇÒ»¸ö³ô¡õ¡£

Èç¹ûÎÒ½«ËùÓÐÓÐ¹ØÔõÑù¸üÕýÉè¼Æ²»Á¼ Linux Ì×¼þµÄ×ÊÁÏ£¬Õâ·Ý
mini-HOWTO ¾Í»á±äµÃºÜ³¤¼°ºÜÄÑÔÄ¶Á¡£

\end{quotation}







\subsubsection{Ð´Èë¹âµúÓ°Ïñµ½¹âµúÖÐ}

Ã»ÓÐÌ«¶àµÄ¶«Î÷Òª×ö¡£Èç¹ûÄãÎ´ÊÔ¹ýÕâ¸öÖ¸Áî£¬ÏÖÔÚÊÇÊ±ºòÊÔÏÂÊÔÁË

\begin{tscreen}
\begin{verbatim}
cdrecord -scanbus
\end{verbatim}
\end{tscreen}


Õâ¸öÖ¸Áî»á¸æËßÄãÄãµÄ¿ÉÐ´¹âµú»úÊÇ¹ÒÔÚÄÇ¸ö SCIS-device ÖÐ¡£ËùÓÐ
ÆäËûµÄ³¢ÊÔ·½·¨¶¼ÒÑ¾­±»É¾³ý (ÓÈÆäÊÇ¹Øì¶ generic SCSI devices Ãü
Ãû¹æÔò (naming scheme) µÄÎ£ÏÕ·½·¨)¡£

²»¹ýÔÚ½éÉÜ×îááÒ»¸öÖ¸½ñÇ°ÏÈÈÃÎÒÌáÐÑÄã¼þÊÂ£¬ÒòÎª¿ÉÐ´Èë¹âµú»úµÄ»º
³åÇøÊÇºÜÉÙ£¬ËùÒÔËüÒªÇóËùÊäÈëµÄ×ÊÁÏÁ÷ÊÇÁ¬ÐøµÄ¡£ÕýÒòÈç´Ë£¬ÔÚÉÕÂ¼
µÄ¹ý³ÌÖÐÊÇ²»¿ÉÖÐ¶ÏµÄ£¬·ñÔò»áÉÕÂ¼Ê§°Ü¡£Èç¹ûÄãÉ¾³ýÒ»¸öºÜ´óµÄµµ°¸
¾Í»áºÜÈÝÒ×ÖÐ¶Ï×ÊÁÏÁ÷¡£ÀýÈç£ºÄãÉ¾³ýÒ»¸ö 650 MB ´óÐ¡µµ°¸µÄÊ±ºò£¬
ºËÐÄ±ãÐèÒª¸üÐÂÓ²µú´óÔ¼ 650,000 ¸ö blocks (¼ÙÉèÄãµÄµµ°¸ÏµÍ³ÊÇ 
1k Ò»¸ö block µÄ»°) ÕâÐèÒªºÜ³¤µÄÊ±¼äºÍºÜ¿ÉÄÜ»áÁî×ÊÁÏÁ÷ÑÓ³Ù¼¸
Ãë¡£²»¹ý£¬Èç¹ûÔÚÒ»²¿ºÜ¿ìµÄµçÄÔÉÏ¿´µçÓÊ£¬ä¯ÀÀÍøÒ³»òÉõÖÁ±àÒëºËÐÄ
¶¼²»»áÓ°ÏìÉÕÂ¼³ÌÐò¡£

Çë×¢ÒâÊÀÉÏÊÇÃ»ÓÐÒ»¸öÉÕÂ¼Æ÷¿ÉÒÔÖØÖÃÀ×ÉäµÄÎ»ÖÃºÍËü²»ÄÜ·µ»Ø
ÊÜ¸ÉÈÅµÄµãÉÏÔÙ´Î½øÐÐÉÕÂ¼¡£ËùÒÔºÎÈÎµÄÕð¶¯»ò×²»÷¶¼ÄÜÊ¹ÄãÕý
ÔÚÉÕÂ¼µÄ¹âµúÊÜµ½ÆÆ»µ¡£



Èç¹ûÄã×¼±¸ºÃµÄ»°£¬Äã¿ÉÒÔÏÂÒÔÏÂµÄÖ¸½ñ£º

\begin{tscreen}
\begin{verbatim}
shell> SCSI_BUS=0   # taken from listing 1 "scsibus0:"
shell> SCSI_ID=6    # taken from listing 1 "TOSHIBA XM-3401"
shell> SCSI_LUN=0
shell> cdrecord -v speed=2 dev=$SCSI_BUS,$SCSI_ID,$SCSI_LUN \
                   -data  cd_image

# Í¬ÉÏÃæÒ»Ñù£¬²»¹ý¶ÌÐ©£º
shell> cdrecord -v speed=2 dev=0,6,0  -data  cd_image
\end{verbatim}
\end{tscreen}


ÎªÁËÔö¼Ó¿É¶ÁÐÔ£¬¿ÉÐ´Èë¹âµú»úµÄ×ÊÑ¶¶¼´¢´æÔÚÕâÈý¸ö»·¾³±äÊýÖÐ£º
SCSI\_BUS, SCSI\_ID, SCSI\_LUN¡£¶øÑ¡Ïî -data ÔòÊÇÓÃÀ´ÉÕÂ¼×ÊÁÏ¹â
µúÓÃµÄ¡£

Èç¹ûÄãÊÇÊ¹ÓÃ cdrecord À´¸²Ð´ CD-RW£¬ÄãÒ»¶¨ÒªÓÃ "blank= . . ." 
À´É¾³ýËùÓÐ¾ÉÓÐÄÚÈÝ¡£Çë¿´ man-page À´Ñ§Ï°ÓÐÊ²÷á·½·¨À´Çå³ýËùÓÐ
CD-RW µÄËùÓÐÄÚÈÝ¡£

Èç¹ûÄãÓÐÒ»²¿ 400 Mhz µçÄÔ£¬Äã¿ÉÒÔ½« mkisofs µÄÊä³öÖ±½ÓÊä³öÖÁ
cdrecord ÖÐ£º

\begin{tscreen}
\begin{verbatim}
shell> IMG_SIZE=`mkisofs -R -q -print-size private_collection/`
shell> mkisofs -r  private_collection/  \
|cdrecord  speed=2  dev=0,6,0
            tsize=${IMG_SIZE}s  -data  -
#       don't forget the s --^         ^-- read data from STDIN
\end{verbatim}
\end{tscreen}

µÚÒ»¸öÖ¸ÁîÖ»ÊÇÓÃÀ´¼ì²éÒ»ÏÂ¹âµúÓ°ÏñµÄÄÚÈÝ²¢Ã»ÓÐÊµÖÊÓÃÍ¾ (ÄãÐèÒªÓÃ
cdrecord-distribution ÖÐµÄ mkisofs ²Å¿ÉÊ¹ÓÃÕâ¸öÖ¸Áî)¡£ÄãµÄ¿ÉÐ´Èë
¹âµú¿ÉÄÜ²»ÐèÒªÖªµÀ¹âµúÓ°ÏñµµµÄ´óÐ¡£¬ÕâÑùÄã±ã²»ÐèÒªÏÂÕâ¸öÖ¸Áî¡£Êä
³öµÄ´óÐ¡±ØÐèÓÃ tsize-parameter À´´«µÝ¸ø cdrecord¡£ (Õâ¸öÊý×ÖÊÇ´¢
´æ IMG\_SIZE Õâ¸ö»·¾³±äÊýÖÐ)¡£×îááµÄÖ¸ÁîÊÇÓÃ pipe À´´®Á¬ mkisofs 
ºÍ cdrecord ÕâÁ½¸öÖ¸Áî¡£






\subsection{ÉÕÂ¼ÒôÀÖ¹âµú}

ÒªÉÕÂ¼Ò»Ö»ÒôÀÖ¹âµúµÄ²½ÖèÓëÉÕÂ¼×ÊÁÏ¹âµúµÄ²½Öè¶¼´óÍ¬Ð¡Òì¡£
×îÖ÷ÒªµÄ¶þ¸ö·Ö±ðÖ®Ò»ÊÇÒôÀÖ¹âµú°üº¬Òô¹ì£¬¶øÕâÐ©Òô¹ì±ØÐè×éÖ¯³É
¶ÀÁ¢µÄÓ°Ïñ¡£ËùÒÔÈç¹ûÄãÏëÉÕÂ¼Ê®ÌõÒô¹ìµÄ»°£¬Äã¾ÍÒª½¨Á¢Ê®¸öÓ°Ïñ
µµ¡£ÁíÒ»¸ö·Ö±ðÊÇ¹âµúÓ°ÏñµÄ¸ñÊ½²»ÊÇ ISO-9660 (»òÕßÄãÏëÒªµÄ¸ñ»ò)£¬
²»¹ýËüÊÇ "16 bit stereo samples in PCM coding at 44100 samples/second (44,1 kHz)".

ÆäÖÐÒ»¸öÈí¼þ½Ð×ö sox Ëü¿ÉÒÔ½«ÒôÀÖµµ°¸×ªÎªËùÐèµÄ¸ñÊ½¡£
ËüµÄÓÃ·¨ÊÇºÜ¼òµ¥Ö±½Ó£º

\begin{tscreen}
\begin{verbatim}
shell> sox  killing-my-software.wav  killing-my-software.cdr
\end{verbatim}
\end{tscreen}


Õâ¸öÖ¸Áî»á½« killing-my-software ÕâÊ×¸èÓÉ WAV ¸ñÊ½×ªÎª CDR ¸ñÊ½¡£
Çë¿´ man-page À´È¡µÃ¸ü¶àÓÐ¹Ø sox ËùÈ·ÈÏµÄ¸ñÊ½¼°ÑÓÉìµµÃû¡£ÒòÎª×ª±ä
¹ý³ÌÐèÒªºÄÓÃÓ²µú¿Õ¼ä£¬ËùÒÔ cdrecord ÒÑÄÚ½¨Ö§Ô® WAV ºÍ AU ¸ñÊ½ÁË¡£
ËùÒÔÈç¹ûÄãµÄÒôÀÖµµ°¸ÓÐ .wav »ò .au (and the samplerate "stereo, 16 bit, 44,1 kHz")ÑÓÉìµÄ»°£¬Äã±ã²»ÐèÒª×öÈËÊÖ×ª»»¡£

Èç¹ûÄãÓÐÓÃ -audio Ñ¡Ïî£¬cdrecord ¾Í»á½«Ó°ÏñµµÉÕÂ¼³ÉÒô¹ì¡£¶øÆäËûµÄÑ¡Ïî
¾ÍÈçÍ¬ÉÕÂ¼Ò»°ã×ÊÁÏÒ»Ñù (³ý·ÇÄãÓÐ·ÇÌØ±ðµÄÒªÇó)¡£ÒÔÏÂÈý¸öÖ¸Áî¶¼ÊÇÏàÍ¬µÄ²»
¹ýËüÃÇ¶ÁÈ¡²»Í¬ÒôÀÖµµ°¸¸ñÊ½£º

\begin{tscreen}
\begin{verbatim}
shell> cdrecord -v speed=2 dev=0,6,0  -audio  track1.cdr track2.cdr...
shell> cdrecord -v speed=2 dev=0,6,0  -audio  track1.wav track2.wav...
shell> cdrecord -v speed=2 dev=0,6,0  -audio  track1.au  track2.au...
\end{verbatim}
\end{tscreen}


ÆäÖÐÒ»¸öÌØ±ðÀý×ÓÊÇ MPEG-3 µµ°¸£¬Ëü¿ÉÒÔÓÃ "mpg123 -s track1.mp3 {$>$} track.cdr"
À´×ª»»³ÉËùÐèÒªµÄ¸ñÊ½¡£ÁíÒ»¸ö·½·¨ÊÇÓÃ "8hz-mp3" À´×ª»»³É WAV µµ°¸¸ñÊ½¡£

Èç¹ûÄãÏÖÔÚÉÕÂ¼ÒôÀÖ¹âµúµÄ»°£¬Äã»á·¢ÏÖÒô¹ìÖ®¼ä»áÓÐ 2 ÃëµÄÑÓ³Ù¡£
Èç¹ûÄãµÄ¿ÉÐ´Èë¹âµú»úÖ§Ô® "disc at once" (DAO) µÄ»°£¬Äã¿ÉÒÔ³¢ÊÔÓÃ×îÐÂµÄ cdrecord
À´½â¾ö´ËÒ»ÎÊÌâ¡£






\subsection{»ìºÏÊ½¹âµú}



Ã»ÓÐÌ«¶àÒªËµ¡£Ö»Ê¾¡õÁËÔõÑù»ìºÏÊ¹ÓÃ -data¡¡ºÍ¡¡-audio Ñ¡ÏîÒÔ´ïµ½ÉÕÂ¼»ìºÏ¹âµú£º

\begin{tscreen}
\begin{verbatim}
cdrecord  -v dev=0,6,0  -data  cd_image  -audio  track*.cdr
\end{verbatim}
\end{tscreen}









\section{³£ÎÊÎÊÌâ¼°´ð°¸}




\subsection{"ÉÕÂ¼³ÌÐòÓÐ¶àÃô¸Ð"}

´ð°¸£ºÕâ¾ÍÒª¿´ÄãµÄÉÕÂ¼Æ÷ÁË¡£Í¨³£½ÏÐÂµÄÐÍºÅ¶¼»áÓÐ 1MB »ò¸ü¶à£¬ÕâÑùËü±ã¿ÉÒÔ
Ö§³Ö 1-2 ÃëÃ»ÓÐ×ÊÁÏ¡£Èç¹ûÄãÏëµÃµ½¸ü¶àµÄ×ÊÁÏÄã¿ÉÒÔÎÊÉú²úÉÌ»ò¿´¿´Ó²ÌåÊÖ²á¡£

²»¹ÜÄÇÐ©×ÊÁÏ»º³åÆ÷µÄ´óÐ¡ÈçºÎÄã¶¼ÐèÒª±£Ö¤Ò»¸ö³¤Ê±¼ä 300 kb/s »ò 600 kb/s µÄ¾­³£
Êä³ö¡£

Ò»Ð©Ó²µúÃÜ¼¯µÄ¹¤×÷ÀýÈç¸üÐÂ {\itshape locate\/}-×ÊÁÏ¿â¡£
¼õµÍ maxium flow rate ¾Í¿Ï¶¨»áËð»µÄãµÄ¹âµú£»Äã×îºÃÔÚÉÕÂ¼¹âµúÇ°ÓÃ
{\ttfamily cron}£¬ {\ttfamily at} »ò
{\ttfamily anacron} À´¼ì²éÒ»ÏÂÄãÓÐ·ñÖ´ÐÐÕâÐ©¹¤×÷¡£

ÁíÒ»·½Ãæ£¬ÓÐÐ©ÈËËµËûÃÇÄÜÒ»Ãæ±àÒëºËÐÄÒ»ÃæÉÕÂ¼¹âµú¶¼Ã»ÓÐÈÎºÎÎÊÌâ¡£
µÄÈ·ÄãÒªÒ»²¿ºÜ¿ìµÄ»úÆ÷²ÅÄÜ×öÕâ¸öÊµÑé¡£








\subsection{"fragmentation »á·ñÓ°ÏìÊä³öÄØ£¿"}

Fragmentation Í¨³£¶¼²»»áÓ°ÏìÊä³ö¡£²»¹ýÄã¿ÉÒÔºÜÈÝÒ×ÖÆÔì pathological cases of fragmentation À´¼õµÍÄãµÄÓ²µúÊä³ö´óÔ¼ 100 kbyte/second¡£ËùÒÔÇ§Íò²»ÒªÕâÑù×ö¡£:-)

ÊÇµÄ£¬ÄãµÄÓ²µú»á fragmented ¾­¹ý¾­ÄêµÄÊ¹ÓÃ¡£Èç¹ûÔ½¿ìfragmented£¬ÄÇµµ°¸ÏµÍ³±ãÔ½
Âú¡£¾­³£±£³Ö 10\% »ò 20\% µÄ¿Õ¼ä£¬ÕâÑùÉÕÂ¼¹âµú±ãÃ»ÓÐÎÊÌâÁË¡£

Èç¹ûÄã²»¿Ï¶¨µÄ»°Äã¿ÉÒÔ¿´¿´Æô¶¯Ê±µÄÑ¶Ï¢£¬Äã¾Í¿ÉÒÔ¿´µ½ÄãµÄµµ°¸ÏµÍ³ÓÐ¼¸¶à´Åµú¿Õ¼ä fragmentation µÄ°Ù·Ý±È¡£Äã¿ÉÒÔÓÃÒ»¸ö·Ç³£Î£ÏÕµÄÖ¸Áî

\begin{tscreen}
\begin{verbatim}
shell> e2fsck -n  /dev/sda5        # '-n' is important!
[stuff deleted - ignore any errors]
/dev/sda5: 73/12288 files (12.3% non-contiguous)
\end{verbatim}
\end{tscreen}


ÔÚÕâ¸ö¡õÀýÖÐ´Åµú¿Õ¼äËÆºõ·Ç³£ËÉÉ¢ ¡ª ²»¹ýÕâ¡õÖ»ÓÐ 73 ¸ö·Ç³£Ð¡µÄµµ°¸ÔÚÕâ
¸öµµ°¸ÏµÍ³ÖÐ£¬ËùÒÔÕâ¸öÖ»²»¹ýÊÇÒ»¸öºÜÉÙµÄÖµ¡£

ÏÖÔÚÓÐÒ»¸öÊµÑéÐÔµÄ¹¤¾ßÈí¼þ½Ð×ö e2defrag Ëü¿ÉÒÔÓÃÀ´ defragment extended-2 
µµ°¸ÏµÍ³¡£²»¹ýÏÖÔÚµÄ°æ±¾ÔÚË½ÈË»·¾³ÖÐ»¹ÊÇ²»¹»ÎÈ¶¨¡£Èç¹ûÄãÕæÏë defragment Äã
µÄµµ°¸ÏµÍ³£¬ÇëÏÈ±¸·Ý (×îºÃ£ºÁ½·Ý)£¬³¢ÊÔ restore ±¸·Ý£¬È»áá½¨Á¢Ò»¸öÐÂµÄµµ°¸Ïµ
Í³ (»áÆÆ»µ¾ÉÓÐµÄ) ×îááÔÙ restore ±¸·Ý¡£×ÜÖ®ÕâÊÇ×î°²È«µÄ¼¼ÇÉ¡£






\subsection{"ÊÇ·ñ¿ÉÒÔ½«¹âµúÓ°Ïñµµ´¢´æÔÚ UMSDOS µµ°¸ÏµÍ³ÖÐÄØ£¿ "}

¿ÉÒÔ¡£Ö»ÓÐÒ»¸öµµ°¸ÏµÍ³ÊÇ²»ÄÜ¿É¿¿ºÍ¿ìËÙÀ´ÉÕÂ¼¹âµúµÄ£¬Õâ¾ÍÊÇ
{\itshape network filesystem\/} ({\itshape NFS\/})¡£

ÎÒÏÖÔÚÊÇÔÚÒ»²¿ (486/66) PC ÖÐÊ¹ÓÃ UMSDOS À´ÈÃLinux ºÍ DOS/Win ¹²Ïí´Åµú
¿Õ¼ä£¬¶øÕâ²¿ 486 ÊÇ×¨ÃÅÀ´ÉÕÂ¼¹âµúÓÃµÄ¡£






\subsection{"ÓÐÎÞ·½·¨¿ÉÒÔ¿Ë·þ iso9660 µÄÏÞÖÆ£¿"}

¿ÉÒÔ¡£Äã¿ÉÒÔÓÃÈÎºÎÒ»¸öµµ°¸ÏµÍ³À´ÉÕÂ¼¹âµú¡£²»¹ýÄã²»ÄÜÔÚÆäËûµÄ²Ù×÷ÏµÍ³ÖÐÊ¹
ÓÃÕâÖ»¹âµú¡£

ÓÃÕâ¸ö·½·¨¾ÍÐÐÁË£º

\begin{itemize}
\item ½¨Á¢Ò»¸ö 650 MB µÄ¿Õµµ°¸¡£
\begin{tscreen}
\begin{verbatim}
dd if=/dev/zero of="empty_file" bs=1024k count=650
\end{verbatim}
\end{tscreen}

\item È»áá½¨Á¢Ò»¸öextended-2 µµ°¸ÏµÍ³ÔÚÕâ¸öµµ°¸Ö®ÉÏ
\begin{tscreen}
\begin{verbatim}
bash> /sbin/mke2fs  empty_file
empty_file is not a block special device.
Proceed anyway? (y,n) y
\end{verbatim}
\end{tscreen}

\item ÓÃloopback-devices À´¹ÒÉÏÕâ¸öµµ°¸
\begin{tscreen}
\begin{verbatim}
mount -t ext2 -o loop=/dev/loop1 empty_file /mnt
\end{verbatim}
\end{tscreen}

\item ³­Ð´Ò»Ð©µµ°¸µ½ /mnt È»ááÐ¶³ý¡£
\item ÓÃ {\ttfamily cdwrite} »ò {\ttfamily cdrecord} À´¿´¿´Õâ¸öµµ°¸ ( ËüÏÖÔÚ¸Ã²»ÊÇ¿ÕµÄ ) ÊÇ²»ÊÇ iso9660-Ó°Ïñ¡£
\end{itemize}


ÈçÀ§ÄãÏëÔÚ{\ttfamily /etc/fstab} ¼ÓÒ»¸ö³öÈë¿Ú¸øÄÇÖ»¹âµúµÄ»°£¬Äã±ãÐèÒªÈ¡Ïû¶ÔÄÇÖ»¹â
µúµÄ¼ì²é£¬ÀýÈç£º

\begin{tscreen}
\begin{verbatim}
/dev/cdrom  /cdrom  ext2  defaults,ro  0 0
\end{verbatim}
\end{tscreen}


µÚÒ»¸öÁã´ú±í "²»Òª°üº¬ÔÚ dumps" £¬µÚ¶þ¸öÁã´ú±í "ÔÚÆô¶¯Ê±²»Òª¼ì´íÎó" ( fsck 
½«²»»á¼ì²é¹âµúÄÚµÄ´í´¦ ) ¡£






\subsection{"ÔõÑù¶ÁÈ¡¼°Ð´ÈëÒôÀÖ¹âµú£¿"}

ÏÖÔÚÓÐ¶à¸öÈí¼þ¡£×îÐÂµÄ½Ð×÷ "cdpranoia" Ëü¿ÉÒÔÔÚÒÔÏÂµØ·½ÏÂÔØ

\begin{quotation}
\nameurl{http://www.mit.edu/afs/sipb/user/xiphmont/cdparanoia/index.html}{}

\end{quotation}


»òÕßÄã¿ÉÒÔ³¢ÊÔ "cdda2wav" ºÍ "sox" µÄ×éºÏ£¬¿ÉÒÔÔÚ sunsite ºÍËüµÄ mirror ÖÐÈ¡µÃ

\begin{quotation}
\nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gz}{}\nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-cb3.tar.gz}{}

\end{quotation}


{\ttfamily cdda2wav} ÁîÄã¿ÉÒÔÓÉ¹âµúÖÐ×¥È¡µ½Ò»¶ÎÌØ¶¨µÄ(»òÒ»ÕûÌõ)Òô¹ìÈ»áá¿ÉÒÔ
½«Ëü×ªÎª .wav µµ°¸¡£ {\ttfamily sox} ¿ÉÒÔ½« wav µµ°¸×ª»ØÒôÀÖ¹âµúµÄcdda ¸ñÊ½£¬
È»áá¿ÉÒÔÓÃ {\ttfamily cdwrite} ½«ËüÉÕÂ¼ÔÚ¹âµúÉÏ¡£ Èç¹ûÄãÊÇÊ¹ÓÃ×îÐÂ°æ±¾µÄ{\ttfamily cdrecord} £¬Äã±ã²»ÐèÒªÊ¹ÓÃ {\ttfamily sox} ÒòÎª {\ttfamily cdrecord}
ÒÑÄÚÖÃÖ§Ô® .au ºÍ .wav µµ°¸¡£






\subsection{"Æô¶¯ÏµÍ³ááÔõÑùÕÒÑ°SCSI-devices?"}

{\ttfamily drivers/scsi/scsi.c} ÓÐËùÐèÒªµÄ×ÊÁÏ¡£

\begin{tscreen}
\begin{verbatim}
/*
 * 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.
 */
\end{verbatim}
\end{tscreen}


Please note that this should only be used if your add SCSI-devices at the
end of the chain. Inserting new SCSI-devices into an existing chain
disturbs the naming of devices (directory /dev) and may destroy the
complete content of your harddisk.






\subsection{"¿ÉÒÔ½øÐÐÒ»¶ÔÒ»µÄ¹âµú¸´ÖÆ£¿"}

¿ÉÒÔ¡£²»¹ýÄãÒª×¢ÒâµÄÊÇÈç¹ûµ±¶ÁÈ¡¹âµúÊ±ÓÐÈÎºÎµÄ´íÎó·¢Éú£¬¶¼¿ÉÄÜÁîèÂÐ´Ê§°Ü¡£

µÚÒ»¸öÇé¿ö£ºÄãÓÐÒ»¸ö¿ÉÐ´¹âµú»úºÍÒ»¸öÎ¨¶Á¹âµú»ú¡£Äã¿ÉÒÔÓÃÒÔÏÂµÄÖ¸Áî

\begin{tscreen}
\begin{verbatim}
cdwrite -v -D /dev/sgc --pad -b  $(isosize  /dev/scd0) /dev/scd0
or
cdrecord -v dev=3,0 speed=2 -isosize /dev/scd0
\end{verbatim}
\end{tscreen}


Äã¿ÉÒÔ´Ó{\ttfamily /dev/scd0} ¶ÁÈ¡×ÊÁÏÁ÷È»ááÖ±½Ó¾­ÓÉ{\ttfamily /dev/sgc}
Ð´Èë¹âµúÖÐ¡£

µÚ¶þ¸öÇé¿ö£ºÄãÃ»ÓÐÁíÒ»¸öÎ¨¶Á¹âµú¡£Äã±ãÐèÒªÓÃ¿ÉÐ´¹âµú»úÀ´¶ÁÈ¡¹âµú£º

\begin{tscreen}
\begin{verbatim}
dd if=/dev/scd0 of=cdimage bs=1c count=`isosize  /dev/scd0`
\end{verbatim}
\end{tscreen}


Õâ¸öÖ¸ÁîµÈÍ¬ì¶ {\ttfamily mkisofs} £¬ËùÒÔÄã¿ÉÒÔÓÃµÚÈýÕÂËùÌá¼°µÄ·½·¨¼ÌÐø
âÅÏÂµÄ¹¤×÷¡£Çë×¢ÒâÕâ¸ö·½·¨ÊÇ²»ÊÊÓÃì¶ÒôÀÖ¹âµú¡£






\subsection{"Linux ¿É²»¿ÉÒÔ¶ÁÈ¡ Joliet ¹âµú£¿"}

¿ÉÒÔ¡£×îÐÂµÄºËÐÄ (2.0.36 ºÍÒÔáá) ÒÑÄÚÖÃÖ§Ô® joliet ¸ñÊ½¡£Çë¼ÇÖøÄãÒªÔÚ
/etc/fstab ÖÐÊ¹ÓÃ iso9660 ºÍ joliet Á½¸öÑ¡Ïî¡£ÒªÈ¡µÃ¸ü¶à×ÊÁÏ£¬Äã¿ÉÒÔ¿´
\nameurl{http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html}{}.






\subsection{"ÔõÑùÓÃ¿ÉÐ´¹âµú»ú¶ÁÈ¡¹âµú£¿"}

¾ÍÈçÍ¬ÄãÊ¹ÓÃÆÕÍ¨Î¨¶Á¹âµú»úÒ»Ñù¡£Ã»ÓÐÈÎºÎµÄÌØ±ð¡£×¢ÒâÄãÒªÊ¹ÓÃscd-devices (Î¨¶Á¹âµú»ú) À´¶ÁÈ¡¹âµú¡£ÒÔÏÂ±ãÊÇÔÚ/etc/fstab ÖÐµÄ¡õÀý£º

\begin{tscreen}
\begin{verbatim}
/dev/scd0  /cdrom  iso9660  ro,user,noauto  0  0
\end{verbatim}
\end{tscreen}







\subsection{"ÔõÑù·Å¶àÐ©×ÊÁÏµ½¹âµúÖÐ£¿"}

ÓÃ {\ttfamily bzip2} ÒÔÈ¡´úÆäËûµÄÑ¹ËõÆ÷ºÃÏñ {\ttfamily  gzip} »ò
{\ttfamily pkzip}¡£Õâ»á½ÚÊ¡30\%µÄ´Åµú¿Õ¼ä¡£Äã¿ÉÒÔÔÚÒÔÏÂµØ·½ÏÂÔØ

\begin{quotation}
\nameurl{http://www.muraroa.demon.co.uk/}{}

\end{quotation}


Instead of writing a true audio-CD, you can optionally convert your
wav-audio-files into mp3-audio-files and store them on a ISO-9660
filesystem as regular files. Usually MPEG III gives you a compression
of 1:10.

Of course, most CD-players are not able to read files... this is the
drawback. On the other hand, why not running the music for your next
party from harddisk? 18 Gbyte are enough for 3000-4000 titles. :-)

A software MPEG III-encoder is available from
\begin{quotation}
\nameurl{http://www.stud.ifi.uio.no/~larsi/other/8hz-mp3-cheng.tar.gz}{}

\end{quotation}


A MPEG III-player is available from
\begin{quotation}
\nameurl{http://homepages.uni-tuebingen.de/student/michael.hipp/mpg123/}{}

\end{quotation}


For recorded speech, you may want to try to reduce its size using
{\ttfamily shorten} or "GSM lossy speech compression":

\begin{quotation}
\nameurl{ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/}{}\nameurl{http://kbs.cs.tu-berlin.de/~jutta/toast.html}{}



\end{quotation}







\subsection{"How to make bootable CD-ROMs?"}

You must have an 1.44 MB bootable floppy-disk. Create an exact image of
this floppy-disk by issuing the command

\begin{tscreen}
\begin{verbatim}
dd if=/dev/fd0 of=boot.img bs=18k
\end{verbatim}
\end{tscreen}


Place this floppy-image into the directory holding the collection of your
files (or into a subdirectory of it, just as you like). Tell mkisofs about
this file with the option '-b' and also use '-c'. For details read the file
README.eltorito in the mkisofs-distribution.

An interesting application for a custom bootable CD is as a virus-safe
DOS- or Windows-system. It saves you the money for the harddisks (if you
have a network and use samba to put the user-data on a
fileserver). However, this is purely theoretical as nobody reported an
actual recipe to me.

Some details about the bootable RedHat CD-ROM is available from \nameurl{http://www.channel1.com/users/rodsmith/rhjol-technical.html}{}.






\subsection{"How to make CD-ROMs writable somehow?"}

There is an {\itshape overlay-filesystem\/} available for Linux, which is
mounted over the CD-ROM and intercepts all writing operations. New and
modified files are stored elsewhere, but for the user it looks like the
CD-ROM is modified. For more information, see \nameurl{http://home.att.net/~artnaseef/ovlfs/ovlfs.html}{}.

If that is not enough for your needs: wait for the UDF-filesystem to be
supported by Linux or help developing it (see \nameurl{http://trylinux.com/projects/udf/}{}.




\subsection{"Is it possible to use several writers at once?"}

Yes. However, it has been only tested with two writers yet. And
you need a kernel patch for more buffers in the SCSI-generic driver
(\nameurl{ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha}{}).






\subsection{"Which media is the best?"}

The german computer magazine "c't" had a list of tips regarding the blank
CD-Rs in their november 1996 issue:

\begin{itemize}
\item  "No-name" discs are generally not of highest quality
and should better not be used.
\item  If a recordable CD is defective, this is likely to apply to the
whole batch (if you bought more than one at a time); maybe you are lucky
and can at least use the first 500MB of such CD-Rs ...
\item  Don't touch the CD-Rs at their shimmering side before writing.
\end{itemize}







\section{ÎÊÌâ½â¾ö}

Always remember, that you can still use corrupt CD-ROMs as coasters. :-)




\subsection{ÔÚ Linux ÏÂ²»ÐÐ}

ÇëÏÈ¼ì²éÄãµÄ¿ÉÐ´¹âµú»úÄÜ²»ÄÜÔÚÆäËû²Ù×÷ÏµÍ³ÖÐÊ¹ÓÃ

È»áá¼ì²éÒÔÏÂµÄÊÂÇé£º

\begin{itemize}
\item ¿ØÖÆÆ÷ÄÜ·ñÈ·ÈÏÄãµÄ SCSI device?
\item Çý¶¯³ÌÊ½ÄÜ·ñÈ·ÈÏÄãµÄ¿ÉÐ´¹âµú»ú£¿
\item ¿É²»¿ÉÒÔÓÃ¸½ËÍµÄÈí¼þÉÕÂ¼¹âµú£¿
\end{itemize}


Èç¹ûÄãµÄ¿ÉÐ´²»ÄÜÔÚÆäËûµÄ²Ù×÷ÏµÍ³ÖÐÊ¹ÓÃµÄ»°£¬ºÜ¿ÉÄÜÄãÓÐÓ²¼þ³å
Í»»òÄãÂòÁËÒ»¸ö»µµÄÓ²¼þ¡£

If it works under the other operating system and you use loadlin to boot
Linux, then that is your problem. Loadlin makes a warm-boot with most of
the hardware already initialized and that confuses the Linux-kernel.




\subsection{Error-message: No read access for 'dev=2,0'.}

Under Linux, some versions of the C-library are incompatible (buggy), so
that an application linked against one version will not work with
another. An example for an error triggered by pre-compiled binaries is the
following: 

\begin{tscreen}
\begin{verbatim}
[root@Blue /dev]# cdrecord -eject dev=2,0
cdrecord: No such file or directory. No read access for 'dev=2,0'.
\end{verbatim}
\end{tscreen}





\subsection{Ëü²»ÄÜÔÚ DOS Ò»Ê¹ÓÃ}

³¢ÊÔÊ¹ÓÃ Linux ¡£ÔÚ DOS µ×ÏÂ°²×°¼°Éè¶¨ SCSI Çý¶¯³ÌÊ½ÊÇÒ»¼þºÜÀ§ÄÑµÄ
¹¤×÷¡£ Linux Ò²²»ÊÇºÜ¸´ÔÓµÄÂð£¿¹þ£¡






\subsection{ÉÕÂ¼¹ý³ÌÖÐÓÐ SCSI ´íÎó}

Í¨³£ÕâÐ©´íÎó¶¼ÊÇÓÉÒÔÏÂµÄ×´¿öËù×ö³ÉµÄ

\begin{itemize}
\item SCSI bus È±·¦dis-/reconnect ¹¦ÄÜ
\item Ó²¼þÉ¢°¾²»×ã
\item Ó²¼þËð»µ (Ó¦¸Ã¿ÉÒÔÓÃ5.1. µÄ·½·¨Õì²é)
\end{itemize}


ÔÚºÜ¶àÇé¿öÏÂ SCSI devices ÐèÒªÓÉ SCSI bus ÖÐ dis- and reconnect ×Ô¼º¡£
Èç¹ûÈ±ÉÙÕâ¸ö¹¦ÄÜµÄ»°£¬ÓÐÐ©¿ÉÐ´Èë¹âµú»ú¿ÉÄÜÔÚÈÆÂ¼¹âµúÊ±·¢ÉúÎÊÌâ¡£

ÓÈÆäÊÇNCR 53c7,8xx SCSI Çý¶¯³ÌÊ½»áÔ¤ÉèÏû³ýÕâ¸ö¹¦ÄÜ£¬Äã×îºÃÏÈ¼ì²éÒ»ÏÂ£º

\begin{tscreen}
\begin{verbatim}
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
\end{verbatim}
\end{tscreen}







\section{ÎØÐ» (Õâ¶Î²»Òë)}

\begin{description}


\item[Alan Brown $<$alan@manawatu.net.nz$>$] \mbox{}



\item[Art Stone $<$stone@math.ubc.ca$>$] \mbox{}

had the idea to put non-ISO-9660 filesystems on a CD



\item[Bartosz Maruszewski $<$B.Maruszewski@zsmeie.torun.pl$>$] \mbox{}

reported spelling mistakes



\item[Bernhard Gubanka $<$beg@ipp-garching.mpg.de$>$] \mbox{}

noticed the need of a recent version of mount to
utilize the loopback device



\item[Robert Doolittle $<$bob.doolittle@sun.com$>$] \mbox{}

good arguments for dropping cdwrite from the HOWTO



\item[Brian H. Toby] \mbox{}

polished the wording.



\item[Martin Schulze $<$joey@Infodrom.North.DE$>$] \mbox{}

gave information about the cdwrite-mailinglist



\item[Dale Scheetz $<$dwarf@polaris.net$>$] \mbox{}

helped improving the section about creating the cdimage.



\item[Don H. Olive $<$don@andromeda.campbellsvil.edu$>$] \mbox{}

URL of the mkhybrid tool



\item[Erwin Zoer $<$ezoer@wxs.nl$>$] \mbox{}



\item[Gerald C Snyder $<$gcsnyd@loop.com$>$] \mbox{}

tested writing of an ext2 CD-ROM (see 4.4)



\item[Janne Himanka $<$shem@oyt.oulu.fi$>$] \mbox{}

pointer to kernel patch to read Joliet CD-ROMs



\item[Joerg Schilling $<$schilling@fokus.gmd.de$>$] \mbox{}

information about cdrecord



\item[Jos van Geffen $<$jos@tnj.phys.tue.nl$>$] \mbox{}

noted the problem in 4.9.



\item[Markus Dickebohm $<$m.dickebohm@uni-koeln.de$>$] \mbox{}



\item[Jesper Pedersen $<$jews@imada.ou.dk$>$] \mbox{}



\item[Pierre Pfister $<$pp@uplift.fr$>$] \mbox{}

helped to develop the recipe on 1:1 copies.



\item[Rick Cochran $<$rick@msc.cornell.edu$>$] \mbox{}

hint about dis-/reconnect disabled by default in
the ncr driver



\item[Stephan Noy $<$stnoy@mi.uni-koeln.de$>$] \mbox{}

information and experience about writing audio-CDs



\item[Stephen Harris $<$sweh@mpn.com$>$] \mbox{}

contributed hint about writing audio-CDs



\item[The Sheepy One $<$kero@escape.com$>$] \mbox{}

suggested using defective CD-ROMs as coasters for drinks



\item[Martti.Rahkila@hut.fi] \mbox{}

Reported problem with pre-initialized writers when booting via loadlin.



\end{description}

End of the Linux CD-Writing HOWTO

\end{document}
