18.6 ´´½¨ºÍʹÓùâѧ½éÖÊ(CD)

Contributed by Mike Meyer.

18.6.1 ½éÉÜ

¡¡¡¡CD ÓëÆÕͨµÄ´ÅÅÌÏà±ÈÓкܶ಻ͬµÄÌØÐÔ¡£×î³õËüÃÇÊDz»Äܱ»Óû§Ð´ÈëµÄ¡£ ÓÉÓÚûÓдÅÍ·ºÍ´ÅµÀÒÆ¶¯Ê±µÄÑÓ³Ù£¬ËùÒÔËüÃÇ¿ÉÒÔÁ¬ÐøµÄ½øÐжÁÈ¡¡£ ·½±ãµÄÔÚÁ½¸öϵͳ֮¼ä½øÐÐÊý¾ÝµÄ´«Ê䣬±ÈÆðÏàͬ´óСµÄ´æ´¢½éÖÊÀ´Ëµ¡£

¡¡¡¡CD ÓдŵÀ£¬Õâ¹ØÏµµ½Êý¾Ý¶ÁȡʱµÄÁ¬ÐøÐÔ¶ø²»ÊÇÎïÀí´ÅÅ̵ÄÐÔÄÜ¡£ ÒªÔÚ FreeBSD ÖÐÖÆ×÷Ò»¸ö CD£¬ÄúҪ׼±¸ºÃҪдµ½ CD ÉϵÄÊý¾ÝÎļþ£¬ È»ºó¸ù¾Ýÿ¸ö tracks дÈëµ½ CD¡£

¡¡¡¡ISO 9660 Îļþϵͳ±»Éè¼ÆÓÃÀ´´¦ÀíÕâЩ²îÒì¡£ µ«ÁîÈËÒź¶µÄÊÇ£¬ ËüÒ²ÓÐһЩÆäËûÎļþϵͳËùûÓеÄÏÞÖÆ£¬ ²»¹ýÐÒÔ˵ÄÊÇ£¬ ËüÌṩÁËÒ»ÏîÀ©Õ¹»úÖÆ£¬ ʹµÃÕýȷдÈëµÄ CD Äܹ»³¬Ô½ÕâЩÏÞÖÆ£¬ ¶øÓÖÄÜÔÚ²»Ö§³ÖÕâЩÀ©Õ¹µÄϵͳÉÏÕý³£Ê¹Óá£

¡¡¡¡sysutils/ port °üÀ¨ÁË mkisofs(8)£¬ ÕâÊÇÒ»¸ö¿ÉÒÔÓÃÀ´Éú³É°üº¬ ISO 9660 ÎļþϵͳµÄÊý¾ÝÎļþµÄ³ÌÐò¡£ ËûÒ²ÌṩÁ˶ÔÓÚһЩÀ©Õ¹µÄÖ§³ÖÑ¡ÏÏÂÃæ½«Ïêϸ½éÉÜ¡£

¡¡¡¡Ê¹ÓÃÄĸö¹¤¾ßÀ´¿Ì¼ CD È¡¾öÓÚÄúµÄ CD ¿Ì¼»úÊÇ ATAPI µÄ£¬ »¹ÊÇÆäËûÀàÐ͵ġ£ ¶ÔÓÚ ATAPI CD ¿Ì¼»ú£¬ ¿ÉÒÔʹÓûù±¾ÏµÍ³¸½´øµÄ burncd ³ÌÐò¡£ SCSI ºÍ USB CD ¿Ì¼»ú£¬ ÔòÐèÒªÅäºÏ cdrecord ³ÌÐòʹÓ㬠Ëü¿ÉÒÔͨ¹ý sysutils/cdrtools port °²×°¡£ ³ý´ËÖ®Í⣬ ÔÚ ATAPI ½Ó¿ÚµÄ¿Ì¼»úÉÏ£¬ Ò²¿ÉÒÔÅäºÏ ATAPI/CAM Ä£¿é À´Ê¹Óà cdrecord ÒÔ¼°ÆäËüΪ SCSI ¿Ì¼»ú׫дµÄ¹¤¾ß¡£

¡¡¡¡Èç¹ûÄúÏëʹÓôøÍ¼ÐνçÃæµÄ CD ¿Ì¼Èí¼þ£¬ ¿ÉÒÔ¿¼ÂÇһϠX-CD-Roast »ò K3b¡£ ÕâЩ¹¤¾ß¿ÉÒÔͨ¹ýʹÓÃÔ¤±àÒë°²×°°ü£¬ »òͨ¹ý sysutils/xcdroast ºÍ sysutils/k3b ports À´°²×°¡£ X-CD-Roast ºÍ K3b ÐèÒª ATAPI/CAM Ä£¿é ÅäºÏ ATAPI Ó²¼þ¡£

18.6.2 mkisofs

¡¡¡¡mkisofs(8) ³ÌÐò×÷Ϊ sysutils/cdrtools port µÄÒ»²¿·Ö£¬ ½«Éú³É ISO 9660 Îļþϵͳ£¬ÆäÖаüº¬ UNIX® ÃüÃû¿Õ¼äÖеÄÎļþÃû¡£ ×î¼òµ¥µÄÓ÷¨ÊÇ£º

# mkisofs -o imagefile.iso /path/to/tree

¡¡¡¡Õâ¸öÃüÁ´´½¨Ò»¸ö°üº¬ ISO9660 ÎļþϵͳµÄ imagefile.iso Îļþ£¬ËüÊÇĿ¼Ê÷ /path/to/tree µÄÒ»¸ö¸±±¾¡£ ÔÚ´¦Àí¹ý³ÌÖУ¬ Ëü½«ÎļþÃû³ÆÓ³ÉäΪ±ê×¼µÄ ISO9660 ÎļþϵͳµÄÎļþÃû£¬½«ÅųýÄÇЩ²»µäÐ굀 ISO ÎļþϵͳµÄÎļþ¡£

¡¡¡¡ÓкܶàÑ¡ÏîÄܹ»ÓÃÀ´¿Ë·þÄÇЩÏÞÖÆ¡£ÌرðµÄ£¬-R Ñ¡ÏîÄܹ»ÆôÓà Rock Ridge À©Õ¹Ò»°ãµÄ UNIX ϵͳ£¬-J Ñ¡ÏîÄÜÆôÓÃÓÃÓÚ Microsoft ϵͳµÄ Joliet À©Õ¹£¬-hfs Ñ¡ÏîÄÜÓÃÀ´´´½¨ÓÃÓÚ Mac OS® ϵͳµÄ HFS Îļþϵͳ¡£

¡¡¡¡¶ÔÓÚÄÇЩ¼´½«ÒªÔÚ FreeBSD ϵͳÖÐʹÓà CD µÄÈËÀ´Ëµ£¬-U Ñ¡ÏîÄÜÓÃÀ´Ïû³ýËùÓÐÎļþÃûµÄÏÞÖÆ¡£µ±Ê¹Óà -R Ñ¡Ïîʱ£¬Ëü»á²úÉúÒ»¸ö ÎļþϵͳӳÏñ£¬ËüÓëÄú´ÓÄǶùÆô¶¯ FreeBSD Ê÷ÊÇÒ»ÑùµÄ£¬ËäÈ»ËüÔÚÐí¶à·½ÃæÒ²Î¥·´ÁË ISO 9660 µÄ±ê×¼¡£

¡¡¡¡×îºóÒ»¸ö³£ÓõÄÑ¡ÏîÊÇ -b¡£ ËüÓÃÀ´Ö¸¶¨Æô¶¯Ó³ÏñµÄλÖ㬠ÓÃÒÔÉú³É ¡°El Torito¡± Æô¶¯ CD¡£ Õâ¸öÑ¡ÏîʹÓÃÒ»¸ö²ÎÊý£¬ ÓÃÒÔÖ¸¶¨½«Ð´Èë CD µÄĿ¼µÄ¸ù¡£ ĬÈÏÇé¿öÏ£¬ mkisofs(8) »áÒÔ³£ËµµÄ ¡°ÈíÅÌÄ£Ä⡱ ·½Ê½À´´´½¨ ISO£¬ Òò´ËËüÏ£ÍûÒýµ¼Ó³ÏñÎļþµÄ³ß´çÇ¡ºÃÊÇ 1200£¬ 1440 »ò 2880 KB¡£ ijЩÒýµ¼¼ÓÔØÆ÷£¬ ÀýÈç FreeBSD ·¢Ðаæ´ÅÅÌ£¬ ²¢²»Ê¹ÓÃÄ£Äâģʽ£» ÕâÖÖÇé¿öÏ£¬ ÐèҪʹÓà -no-emul-boot Ñ¡Ïî¡£ Òò´Ë£¬ Èç¹û /tmp/myboot ÊÇÒ»¸ö°üº¬ÁËÆô¶¯Ó³ÏñÎļþ /tmp/myboot/boot/cdboot µÄ¿ÉÒýµ¼µÄ FreeBSD ϵͳ£¬ Äú¾Í¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁîÉú³É ISO 9660 ÎļþϵͳӳÏñ /tmp/bootable.iso£º

# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot

¡¡¡¡Íê³ÉÕâЩ¹¤×÷Ö®ºó£¬ Èç¹ûÄúµÄÄÚºËÖÐÅäÖÃÁË md£¬ ¾Í¿ÉÒÔÓÃÏÂÁÐÃüÁîÀ´¹Ò½ÓÎļþϵͳÁË£º

# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
# mount -t cd9660 /dev/md0 /mnt

¡¡¡¡¿ÉÒÔ·¢ÏÖ /mnt ºÍ /tmp/myboot ÊÇÒ»ÑùµÄ¡£

¡¡¡¡»¹¿ÉÒÔʹÓà mkisofs(8) µÄÆäËüÑ¡ÏîÀ´µ÷ÕûËüµÄÐÐΪ¡£ÌرðÊÇÐÞ¸Ä ISO 9660 µÄ»®·Ö¸ñʽ£¬´´½¨ Joliet ºÍ HFS ¸ñʽµÄ´ÅÅÌ¡£²é¿´ mkisofs(8) Áª»úÊÖ²áµÃµ½¸ü¶àµÄ°ïÖú¡£

18.6.3 burncd

¡¡¡¡Èç¹ûÓõÄÊÇ ATAPI µÄ CD ¿Ì¼»ú£¬¿ÉÒÔʹÓà burncd ¡¡ÃüÁîÀ´¿Ì¼ÄúµÄ CD ISO Ó³ÏñÎļþ¡£ burncd ÃüÁîÊÇ»ù±¾ ¡¡ÏµÍ³µÄÒ»²¿·Ö£¬ÖÐÒÔʹÓà /usr/sbin/burncd À´°²×°¡£ ¡¡Ó÷¨ÈçÏ£º

# burncd -f cddevice data imagefile.iso fixate

¡¡¡¡ÔÚ cddevice ÉϿ̼һ·Ý imagefile.iso µÄ¸±±¾¡£ ĬÈϵÄÉ豸ÊÇ /dev/acd0¡£ Çë²Î¿¼ burncd(8) ÒÔÁ˽âÉèÖÃдÈëËٶȵIJÎÊý£¬ÈçºÎÔڿ̼Íê³ÉÖ®ºó×Ô¶¯µ¯³öCD£¬ÒÔ¼°¿Ì¼ÒôƵÊý¾Ý¡£

18.6.4 cdrecord

¡¡¡¡Èç¹ûûÓÐÒ»¸ö ATAPI CD ¿Ì¼»ú£¬±ØÐëʹÓà cdrecord À´¿Ì¼ÄúµÄ CD ¡£ cdrecord ²»ÊÇ»ù±¾ÏµÍ³µÄÒ»²¿·Ö;±ØÐë ´Ó sysutils/cdrtools »òÊʵ±µÄ package °²×°Ëü¡£»ù±¾ÏµÍ³µÄ±ä»¯¿ÉÄÜ»áÒýÆðÕâ¸ö³ÌÐòµÄ´íÎ󡣿ÉÄÜÊÇÓÉ ¡°coaster¡± ÒýÆðµÄ¡£µ±Éý¼¶ÏµÍ³Ê±£¬Í¬Ê±ÐèÒªÉý¼¶ port£¬ »òÕßÈç¹ûÄú ʹÓà -STABLE£¬ ÄÇôÔÚÉý¼¶µ½Ð°汾ʱҲҪÉý¼¶ port¡£

¡¡¡¡cdrecord ÓÐÐí¶àÑ¡Ï»ù±¾Ó÷¨Óë burncd ÏàËÆ¡£¿Ì¼һ¸ö ISO 9660 Ó³ÏñÎļþÖ»ÐèÕâÑù×ö£º

# cdrecord dev=device imagefile.iso

¡¡¡¡Ê¹Óà cdrecord µÄ±È½ÏÇÉÃîµÄ·½·¨ÊÇÕÒµ½Ê¹ÓÃµÄ dev ¡£ÒªÕÒµ½ÕýÈ·µÄÉèÖ㬿ÉÒÔʹÓà cdrecord µÄ -scanbus ±ê¼Ç£¬Õâ»á²úÉúÕâÑùµÄ½á¹û£º

# cdrecord -scanbus
Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
        0,0,0     0) 'SEAGATE ' 'ST39236LW       ' '0004' Disk
        0,1,0     1) 'SEAGATE ' 'ST39173W        ' '5958' Disk
        0,2,0     2) *
        0,3,0     3) 'iomega  ' 'jaz 1GB         ' 'J.86' Removable Disk
        0,4,0     4) 'NEC     ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *
scsibus1:
        1,0,0   100) *
        1,1,0   101) *
        1,2,0   102) *
        1,3,0   103) *
        1,4,0   104) *
        1,5,0   105) 'YAMAHA  ' 'CRW4260         ' '1.0q' Removable CD-ROM
        1,6,0   106) 'ARTEC   ' 'AM12S           ' '1.06' Scanner
        1,7,0   107) *

¡¡¡¡Õâ¸öÁбíÁгöÁËÉ豸µÄµÄÊʵ±µÄ dev Öµ¡£ÕÒµ½ÄúµÄ CD burner ,ʹÓÃÈý¸öÓöººÅ·Ö¸ôµÄÊýÖµÀ´±íʾ dev.ÔÚ Õâ¸öÀý×ÓÖУ¬CRW ÊÇ dev=1,5,0£¬ËùÒÔÕýÈ·µÄÊäÈëÓ¦ÊÇ dev=1,5,0 ¡£ÓÐÒ»¸öºÜÈÝÒ׵ķ½·¨¿ÉÒÔÖ¸¶¨Õâ¸öÖµ;¿´¿´ cdrecord(1) µÄ½éÉÜÁ˽âÓйØÒô¹ì£¬¿ØÖÆËÙ¶ÈºÍÆäËûµÄ¶«Î÷¡£

18.6.5 ¸´ÖÆÒôƵ CD

¡¡¡¡Äú¿ÉÒÔÕâÑù¸´ÖÆ CD£¬°Ñ CD ÉÏÃæµÄÒôƵÊý¾Ý½âѹËõ³öһϵÁеÄÎļþ£¬ ÔÙ°ÑÕâЩÎļþдµ½Ò»ÕÅ¿Õ°× CD ÉÏ¡£ Õâ¸ö¹ý³Ì¶ÔÓÚ ATAPI ºÍ SCSI Çý¶¯Æ÷À´ËµÓÐЩ΢µÄ²»Í¬¡£

SCSI Çý¶¯Æ÷

  1. ʹÓà cdda2wav À´½âѹËõÒôƵ¡£

    % cdda2wav -vall -D2,0 -B -Owav
    
  2. ʹÓà cdrecord À´Ð´ .wav Îļþ¡£

    % cdrecord -v dev=2,0 -dao -useinfo  *.wav
    

    È·±£ 2,0 ±»Êʵ±µØÉèÖÃÁË£¬ ¾ßÌå·½·¨ÔÚ µÚ 18.6.4 ½Ú ÖÐÓÐËùÃèÊö¡£

ATAPI Çý¶¯Æ÷

×¢Òâ: ½èÖúÓÚ ATAPI/CAM Ä£¿é£¬ cdda2wav ͬÑùÒ²ÄÜÔÚ ATAPI É豸ÉÏʹÓᣠ´Ë¹¤¾ß±ÈÆðÏÂÃæÍÆ¼öµÄ·½·¨Í¨³£ÊǸö¸üºÃµÄÑ¡Ôñ(¶¶¶¯ÐÞÕý£¬ ×Ö½ÚÐòÎÊÌ⣬ µÈµÈ)¡£

  1. ATAPI CD Çý¶¯Óà /dev/acddtnn±íʾÿ¸ö¹ìµÀ£¬ ÕâÀï d ÊÇÇý¶¯Æ÷ºÅ£¬ nn ÊǹìµÀºÅ£¬ÓÉÁ½Î»Ð¡Êýλ×é³É£¬Ê¡ÂÔǰ׺Áã¡£ ËùÒÔµÚÒ»¸öÅÌÆ¬ÉϵĵÚÒ»¸ö¹ìµÀ¾ÍÊÇ /dev/acd0t01£¬µÚ¶þ¸ö¾ÍÊÇ /dev/acd0t02£¬µÚÈý¸ö¾ÍÊÇ /dev/acd0t03£¬µÈµÈ¡£

    ÇëÎñ±ØÈ·ÈÏÔÚ /dev ÖгöÏÖÁ˶ÔÓ¦µÄÎļþ¡£ Èç¹ûÄú·¢ÏÖÓÐijЩÏîĿȱʧ£¬ ÔòÓ¦Ç¿ÖÆÏµÍ³ÖØÐÂʶ±ð½éÖÊ£º

    # dd if=/dev/acd0 of=/dev/null count=1
    
  2. ʹÓà dd(1) ½âѹËõÿ¸ö¹ìµÀ¡£µ±½âѹËõÎļþµÄʱºòÄúÒ²±ØÐëʹÓà һ¸öÌØÊâµÄ¿é´óС¡£

    # dd if=/dev/acd0t01 of=track1.cdr bs=2352
    # dd if=/dev/acd0t02 of=track2.cdr bs=2352
    ...
    
  3. ʹÓà burncd °Ñ½âѹËõµÄÎļþ¿Ì¼µ½¹âÅÌÉÏ¡£Äú±ØÐëÖ¸¶¨ ÕâЩÎļþÊÇÒôƵÎļþ£¬ÕâÑù burncd »áÔڿ̼Íê³Éʱ ½áÊø¹âÅÌ¡£

    # burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate
    

18.6.6 ¸´ÖÆÊý¾Ý CD

¡¡¡¡Äú¿ÉÒÔ°ÑÊý¾Ý CD ¸´ÖƳÉÒ»¸öÓëÖ®µÈ¼ÛµÄÓ³ÏñÎļþ£¬ ¿ÉÒÔʹÓà mkisofs(8) ´´½¨ÕâÖÖÎļþ£¬ »òʹÓÃËüÀ´¸´ÖÆÈκÎÊý¾Ý CD¡£ ÕâÀï¸ø³öµÄÀý×Ó¼Ù¶¨ÄúµÄ CDROM É豸ÊÇ acd0£¬ ÄúÓ¦½«ÆäÌæ»»ÎªÄúʵ¼ÊʹÓÃµÄ CDROM É豸¡£

# dd if=/dev/acd0 of=file.iso bs=2048

¡¡¡¡ÏÖÔÚÄúÓÐÒ»¸öÓ³ÏñÎļþÁË£¬Äú¿ÉÒÔÏñÉÏÃæÃèÊöµÄÄÇÑù°ÑËü¿Ì¼³É CD¡£

18.6.7 ʹÓÃÊý¾Ý CD

¡¡¡¡ÏÖÔÚÄúÒѾ­´´½¨ÁËÒ»Õűê×¼µÄÊý¾Ý CDROM£¬Äú»òÐíÏëÒª ¹ÒÔØÀ´¶ÁÈ¡ÉÏÃæµÄÉ豸¡£ ĬÈÏÇé¿öÏ£¬mount(8) ¼Ù¶¨ÎļþϵͳÊÇ ufs ÀàÐ͵ġ£Èç¹ûÄú³¢ÊÔÏÂÃæµÄÃüÁ

# mount /dev/cd0 /mnt

¡¡¡¡Äú»áµÃµ½Ò»Ìõ ¡°Incorrect super block¡± µÄ´íÎóÐÅÏ¢£¬Ã»ÓйÒÔØ³É¹¦¡£CDROM ²»ÊÇ UFS Îļþϵͳ£¬ËùÒÔÊÔͼÕâÑù¹ÒÔØËüÊÇ ÊDz»Ðеġ£ÄúÐèÒª¸æËß mount(8) ÎļþϵͳÊÇ ISO9660 ÀàÐ͵ģ¬ÕâÑù ¾Í¿ÉÒÔÁË¡£Ö»ÐèÒªÖ¸¶¨ mount(8) µÄ -t cd9660 Ñ¡Ïî¡£ÀýÈ磬 Èç¹ûÄúÏëÒª¹ÒÔØ CDROM É豸£¬ /dev/cd0 µ½ /mnt Ŀ¼£¬ÄúÐèÒªÖ´ÐУº

# mount -t cd9660 /dev/cd0 /mnt

¡¡¡¡×¢ÒâÄúµÄÉ豸Ãû (ÔÚÕâ¸öÀý×ÓÖÐÊÇ /dev/cd0)¿ÉÄÜ ÓÐËù²»Í¬£¬È¡¾öÓÚÄúµÄ CDROM ʹÓõĽӿڡ£ÁíÍ⣬ -t cd9660 Ñ¡ÏîµÈͬÓÚÖ´ÐÐ mount_cd9660(8)¡£ÉÏÃæµÄÀý×Ó¿ÉÒÔËõ¶Ì Ϊ£º

# mount_cd9660 /dev/cd0 /mnt

¡¡¡¡ÓÃÕâÖÖ·½·¨Äú»ù±¾¿ÉÒÔʹÓÃÈκÎÂòµ½µÄÊý¾Ý CDROM¡£ È»¶øÄ³Ð©ÓÐ ISO 9660 À©Õ¹µÄ¹âÅÌ¿ÉÄÜ»áÐÐΪ¹Å¹Ö¡£ ÀýÈ磬joliet ¹âÅÌÓÃÁ½¸ö×Ö½ÚµÄ unicode ×Ö·û´æ´¢ËùÓеÄÎļþÃû¡£ FreeBSD Äں˲¢²»Ê¹Óà Unicode£¬ µ« FreeBSD CD9660 Çý¶¯¿ÉÒÔ½« Unicode ×Ö·û×Ô¶¯×ª»»ÎªÄں˿ÉÒÔʶ±ðµÄÐÎʽ¡£ Èç¹ûÄú·¢ÏÖÓÐЩ·ÇÓ¢ÎÄ×Ö·ûÏÔʾΪÎʺţ¬ ¾ÍÐ÷ҪʹÓà -C Ñ¡ÏîÀ´Ö¸¶¨×Ö·û¼¯ÁË¡£ ÓûÁË½â½øÒ»²½µÄÏêÇ飬 Çë²Î¼ûÁª»úÊÖ²á mount_cd9660(8)¡£

×¢Òâ: Èç¹ûÏ£Íûͨ¹ý -C Ñ¡ÏîÀ´½øÐÐ×Ö·û¼¯×ª»»£¬ ÔòÄں˻áÐèÒª¼ÓÔØ cd9660_iconv.ko Ä£¿é¡£ ÕâÏ×÷¿ÉÒÔͨ¹ýÔÚ loader.conf ÖмÓÈëÏÂÁÐÅäÖãº

cd9660_iconv_load="YES"

²¢ÖØÐÂÆô¶¯¼ÆËã»úÀ´Íê³É£¬ ³ý´ËÖ®Í⣬ Ò²¿ÉÒÔͨ¹ý kldload(8) À´ÊÖ¶¯¼ÓÔØ¡£

¡¡¡¡ÓÐʱºò£¬µ±ÄúÊÔͼ¹ÒÔØ CDROM µÄʱºò£¬»áµÃµ½Ò»Ìõ ¡°Device not configured¡± µÄ´íÎóÐÅÏ¢¡£Õâͨ³£ ±íÃ÷ CDROM Çý¶¯ÈÏΪÍÐÅÌÀïûÓйâÅÌ£¬ »òÕßÇý¶¯Æ÷ÔÚ×ÜÏßÉϲ»¿É¼û¡£ ÐèÒª¼¸ÃëÖÓʱ¼äµÈ´ý CDROM Çý¶¯Æ÷±æ±ðÒѾ­½Óµ½·´À¡µÄÐÅÏ¢£¬ ÇëÄÍÐĵȴý¡£

¡¡¡¡ÓÐʱºò£¬SCSI CDROM ¿ÉÄÜ»áÕÒ²»µ½£¬ÒòΪûÓÐ×ã¹»µÄ ʱ¼äÀ´Ó¦´ð×ÜÏßµÄ reset Ðźš£Èç¹ûÄúÓÐÒ»¸ö SCSI CDROM Ç뽫ÏÂÃæµÄÑ¡ÏîÌí¼Óµ½ÄúµÄÄÚºË ÅäÖÃÎļþ²¢Öؽ¨ÄúµÄÄںˡ£

options SCSI_DELAY=15000

¡¡¡¡Õâ¸ö¸æËßÄúµÄ SCSI ×ÜÏ߯ô¶¯Ê±ÔÝÍ£ 15 ÃëÖÓ£¬ ¸øÄúµÄ CDROM Çý¶¯Æ÷×ã¹»µÄ»ú»áÀ´Ó¦´ð ×ÜÏß reset Ðźš£

18.6.8 ¿Ì¼ԭʼÊý¾Ý CD

¡¡¡¡Äú¿ÉÒÔÑ¡Ôñ°ÑÒ»¸öÎļþĿ¼¿Ì¼µ½ CD É϶ø²»Óà ´´½¨ ISO 9660 Îļþϵͳ¡£ÓÐЩÈËÕâô×öÊÇΪÁ˱¸·ÝµÄ Ä¿µÄ¡£Õâ¸öÔËÐеıȿ̼һ¸ö±ê×¼ CD ËÙ¶ÈÒª¿ìµÃ¶à£º

# burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate

¡¡¡¡ÒªÖØÐÂÕÒ»ØÕâÑù¿Ì¼µ½ CD ÉϵÄÊý¾Ý£¬ Äú±ØÐë´ÓԭʼÉ豸½Úµã¶ÁÈ¡Êý¾Ý£º

# tar xzvf /dev/acd1

¡¡¡¡Äú²»ÄÜÏñ¹ÒÔØÒ»¸öͨ³£µÄ CDROM Ò»Ñù¹ÒÔØÕâÕŹâÅÌ¡£ ÕâÑùµÄ CDROM Ò²²»ÄÜÔÚ³ýÁË FreeBSD Ö®ÍâµÄÈκβÙ×÷ϵͳÉ϶Á³ö¡£ Èç¹ûÄúÏëÒª¿ÉÒÔ¹ÒÔØ CD£¬»òÕß ºÍÁíÒ»ÖÖ²Ù×÷ϵͳ¹²ÏíÊý¾Ý£¬Äú±ØÐëÏñÉÏÃæÃèÊöµÄÄÇÑùʹÓà mkisofs(8)¡£

18.6.9 ʹÓà ATAPI/CAM Çý¶¯

Contributed by Marc Fonvieille.

¡¡¡¡Õâ¸öÇý¶¯ÔÊÐí ATAPI É豸(CD-ROM, CD-RW, DVD Çý¶¯Æ÷µÈ...)ͨ¹ý SCSI ×Óϵͳ·ÃÎÊ£¬ ÕâÑùÔÊÐíʹÓÃÏñ sysutils/cdrdao »òÕß cdrecord(1) ÕâÑùµÄ³ÌÐò¡£

¡¡¡¡ÒªÊ¹ÓÃÕâ¸öÇý¶¯£¬ ÄúÐèÒª°ÑÏÂÃæÕâÐÐÌí¼Óµ½ /boot/loader.conf ÎļþÖУº

atapicam_load="YES"

¡¡¡¡½ÓÏÂÀ´£¬ ÖØÐÂÆô¶¯¼ÆËã»ú¡£

×¢Òâ: Èç¹ûÄúÏ£Íû½« atapicam(4) ÒÔ¾²Ì¬Áª±àµÄÐÎʽ¼ÓÈëÄںˣ¬ ÔòÐèÒªÔÚÄÚºËÅäÖÃÎļþÖмÓÈëÕâÐУº

device atapicam

´ËÍ⻹ÐèÒªÔÚÄÚºËÅäÖÃÎļþÖмÓÈ룺

device ata
device scbus
device cd
device pass

ÕâЩӦ¸ÃÒѾ­ÓÐÁË¡£ È»ºó£¬ ÖØÐÂÁª±à²¢°²×°ÐÂÄںˣ¬ ²¢ÖØÐÂÆô¶¯¼ÆËã»ú¡£

¡¡¡¡ÔÚÒýµ¼¹ý³ÌÖУ¬ ÄúµÄ¿Ì¼»ú½«»á³öÏÖÔÚÄں˵ÄÌáʾÐÅÏ¢ÖУ¬ ¾ÍÏñÕâÑù£º

acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4
cd0 at ata1 bus 0 target 0 lun 0
cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device
cd0: 16.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed

¡¡¡¡Çý¶¯Æ÷ÏÖÔÚ¿ÉÒÔͨ¹ý /dev/cd0 É豸Ãû·ÃÎÊÁË£¬ÀýÈçÒª ¹ÒÔØ CD-ROM µ½ /mnt£¬Ö»ÐèÒª¼üÈëÏÂÃæµÄ ÃüÁ

# mount -t cd9660 /dev/cd0 /mnt

¡¡¡¡×÷Ϊ root£¬Äú¿ÉÒÔÔËÐÐÏÂÃæµÄ ÃüÁîÀ´µÃµ½¿Ì¼»úµÄ SCSI µØÖ·£º

# camcontrol devlist
<MATSHITA CDRW/DVD UJDA740 1.00>   at scbus1 target 0 lun 0 (pass0,cd0)

¡¡¡¡ÕâÑù 1,0,0 ¾ÍÊÇ SCSI µØÖ·ÁË£¬¿ÉÒÔ±» cdrecord(1) ºÍÆäËûµÄ SCSI ³ÌÐòʹÓá£

¡¡¡¡ÓÐ¹Ø ATAPI/CAM ºÍ SCSI ϵͳµÄ¸ü¶àÐÅÏ¢£¬ ¿ÉÒÔ²ÎÔÄ atapicam(4) ºÍ cam(4) ÊÖ²á Ò³¡£

±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.