리눅스에서 CD-WRITER 의 사용

이성주 /

 

     

    리눅스에서 CD-Writer를 사용하는 사람은 그렇게 많지 않은 것같다. 그러나 다른 OS에서 잘 되는 일을 리눅스에서 못하는 것 봤는가?

    지금부터 리눅스에서 CD-Writer를 사용할 수 있도록 알아보자. 먼저 여러 가지 준비 사항이 있겠지만 자신의 CD-Writer기 리눅스에서 지원이 되는지 확인하는 과정이 먼저일 것이다. 이것은 하드웨어적인 점검도 중요하고 사용할 프로그램에서의 점검도 필요할 것이다.

    리눅스에서 지원하는 CD-Writer는 다음의 홈페이지에서 확인할 수 있다.

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

    내용을 보면 현재 사용하는 OS와 SCSI 어댑터와 CD-Writer 사이의 지원여부를 표 형식으로 나타내주고 있으니 자신이 가지고 있는 사양을 비교해보기 바란다. 또한 만약 여기에 없는 사양을 가지고 있고 사용을 하고 있다면 이 페이지의 리스트에 추가시킬 수도 있다. 대부분의 SCSI CD-Writer가 지원되고 ATAPI CD-Writer 도 지원이 되는 것을 볼 수 있다. 만약에 리눅스에서 지원하지 않는 CD-Writer를 가지고 있다면 리눅스에서 이미지를 만들고 그 이미지를 복사할 때에는 DOS 프로그램을 이용하면 된다. 도스에서의 이미지를 만드는 작업은 시디에 리눅스의 특성을 적용하지 못하게 되기 때문에 반드시 이미지의 제작은 리눅스에서 해야 한다.

    이미지를 시디에 제작할 때 리눅스에서는 다은과 같은 프로그램을 주로 이용하게 되는데 이 프로그램들 사이의 차이점은 다음과 같다. 이 버전은 가장 최신버전이고 현재 흔하게 구할 수 있는 버전은 cdwrite-2.0과 cdrecord-1.5 이다.
     

    Feature                cdwrite-2.1            cdrecord-1.7              xcdroast-0.96d


    ATAPI support       no                        yes                             no
    Multisession          only partial            yes                             no
    RockRidge            yes(mkisofs)          yes(mkisofs)               yes
    EI Torito               yes(mkisofs)          yes(mkisofs)                no
    HFS                     yes(mkhybrid)        yes(mkhybrid)              yes(mkhybrid)
    Joliet                   yes(mkhybrid)         yes(mkhybrid)             yes

     

    iso9660 형식은 대부분의 시디제작자라면 다 알고 있고 가장 많이 사용되는 표준 시지 포맷이다. RockRidge 형식은 리눅스에서처럼 파일에 대한 여러 가지 추가 사항이 필요한 경우를 위한 확장형식이다. 이 경우에 퍼미션이나 소유자등을 모두 포함하여 작성할 수 있고 깊은 계층의 디렉토리구조도 만들어낼 수 있다. 이 형식은 이러한 형식을 지원하지 않는 OS 에서도 읽을 수 있도록 만들어진다. 가끔 시디를 시디롬에 넣고 리눅스를 부팅할 때 다음과 같은 메시지가 나오는 것을 본 적이 있다.

      ISO9660 Extensions : RRIP_1991A

    이때 ISO9660 뒤에 Extensions 라는 말이 보이는데 바로 이 시디가 RockRidge 형식으로 만들어졌다는 것을 의미하는 것이다.

    EI Torito 는 부팅 시디를 만들 때 사용한다.

    HFS는 맥킨토시 기종에서 읽을 수 있도록 만들어 준다.

    Joliet 형식은 윈도우 시리즈에서 긴 파일이름을 사용할 수 있게 만들어진 형식이다.

     

1. 장치와 프로그램의 준비

    리눅스에서 CD-Writer를 사용하는 경우에 SCSI 장치는 보통 표준 장치(즉, /dev/sda - /dev/sdh)를 사용하지 않는다. 대부분의 경우 일반 SCSI 장치(즉, generic SCSI device)ㅡㄹ 사용하게 되므로 혹시 커널 소스의 SCSI 분분(즉, drivers/scsi/scsi.c)의 다음과 같은 줄에 대해 신경을 쓸 필요가 없다. 이 내용은 CD나 WORM 이 표준장치를 통해서 기록을 할 수 없다는 것을 지정하는 것이다.

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

     

    1.1  SCSI 와 CD-Writer 의 설정

    CD-Writer 의 설치엔 먼저 SCSI 어댑터에 대해서 세세히 알고 있어야 한다. 일단 CD-Writer는 generic 장치를 사용하므로 커널 설정에 support generic SCSI device 항목이 설정되어 있어야 한다. 알짜 레드햇 5.0에는 이것이 모듈로 포함되어 있다. 그리고 SCSI 어댑터와 CD-Writer의 터미네이트나 id등을 확인한다. 만약 부팅시에 전원이 켜있지 않아서 현재 사용할 수 없는 SCSI 장치는 다음과 같은 방법으로 사용할 수 있다. 이 방법을 사용하기 위해서는 해당장치의 SCSI 호스트 숫자와 채널숫자, 장치 ID, LUN 값을 알고 있어야 한다. 이것들을 확인하려면 정상적으로 전원이 켜진 상태에서 부팅을 하였을 때 커널에 의해서 자동으로 인식되어지는 값들을 다음의 명령을 입력하여 확인해 보면 된다.

    다음은 필자의 장치들이다.

      [root@nikea cdtools]# cat /proc/scsi/scsi
      Attached devices :
      Host : SCSI0 Channel : 00 Id : 01 Lun:  00
         Vendor : YAMAHA      Model :cdr400t                       Rev : 1.0g
         Type : CD-Rom                                          ANSI SCSI revision : 02
      Host : SCSI0 Channel : 00 Id : 03 Lun:  00
         Vendor : SONY          Model :CD-ROM CDU-415       Rev : 1.0g
         Type : CD-Rom                                          ANSI SCSI revision : 02

    내용을 보면 호스트숫자와 채널, id, Lun 순으로 표시되어있는 것을 알 수 있다. 이 수치들을 작 기억하고 있다가 만약 인식이 안된 장치를 인식시키고 쉽다면 다음 명령을 사용한다. 다음은 필자가 YAMAHA CD-Writer를 인식 시키기 위한 명령이다.

      [root@nikea cdtools]# echo "scsi add-single-device 0 0 1 0" >/proc/scsi/scsi

    '0 0 1 0' 의 내용은 바로 위에서 말한 호스트숫자와 채널, Id, Lun 값임을 알 수 있다. 이와같이 하면 부착되어 있는 장치로서 잘 인식이 될 것이다. 그러나 가끔씩은 제대로 작동을 안하는 경우가 있으므로 자신의 경우에 대해서 잘 알아보고 사용하기 바란다.

    다음으로 generic SCSI 장치들에 대한 장치파일이 존재하는지 확인해야 한다. 리눅스 SCSI-HOWTO 에 보면 generic SCSI 장치라는 것은 모든 SCSI 장치-예를 들면, 디스크, 테이프, 시디롬-드에 SCSI 명령어를 보낼 수 있는 인터페이스를 제공하는 것이라고 말하고 있다. 다시 말하면 이것은 표준적인 장치를 통해서 SCSI 하드웨어를 접근하는 다른 방법을 제공하는 인터페이스라고 말 할 수 있다.

    generic 장치가 있는지 확인하는 것은 무척 쉽다. 자신의 /dev 디렉토리에서 sg 라고 시작하는 파일명이 있는지를 확인하면 된다.

      [root@nikea cdtools]# cd /dev
      [root@nikea dev]# ls -1 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 스크립트로 장치를 만들어 주면 된다.

      [root@nikea cdtools]# cd /dev
      [root@nikea dev]# ./MAKEDEV sg

    마지막으로 실제로 generic SCSI 장치를 사용하려면 커널에서 sg 장치를 사용할 수 있게 되어 있는지를 확인할 필요가 있다.

      [root@nikea cdtools]# cat /proc/devices
      Character devices :
      1  mem
      2  pty
      3  ttyp
      4  ttyp
      5  cua
      7  vcs
      10  misc
      14  sound
      21  sg      <---- SCSI generic 장치
      Block devices :
      1  ramdisk
      2  fd
      3  ide0
      9  md
      11  sr      <---- SCSI CD-ROM 드라이브
      22  idel

    만약 이 내용이 없다면 커널을 컴파일을 다시 해야 한다. 혹시 모듈로 설정되어 있는 경우에는 insmod sg 명령을 사용하여 로딩을 시켜주면 된다.

     

    1.2 loopback 장치 설정

    loopback 장치는 시디이미지 파일을 마치 하나의 장치처럼 사용할 수 있게 하기 위해서 사용된다. 커널에서 Loopback device support 설정을 해주면 이 장치를 사용할 수 있다. mkisofs을 이용하여 만든 이미지 파일을 새로운 장치처럼 mount 해서  사용할 수 있다. mkisofs에서 자세히 설명한다. 이것역시 장치이므로 /proc/devices를 확인함으로 설정이 되어있는지 확인할 수 있다.

    그리고 /dev 디렉토리에 loopback 장치파일이 존재하는지도 확인하여 없으면 위에서 처럼 MAKEDEV 스크립트를 사용하여 만들어 주면 된다.

      [root@nikea cdtools]# cd /dev
      [root@nikea dev]# ls -1 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

    loopback 장치의 작성방법은 다음과 같다.

      [root@nikea cdtools]# cd /dev/
      [root@nikea dev]# ./MAKEDEV loop

     

    1.3  사용프로그램의 정리

    시디 이미지 만드는 프로그램으로는 다음과 같은 명령행 유틸리티들이 있다.

      mkisofs
           ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs

      mkhfs
          ftp://ftp.ge.ucl.ac.uk/pub/mkhfs

    이미지로부터 CD를 제작하는 프로그램으로는 다음과 같은 명령행 유틸리티가 있다.

    cdrecorder : 최소 1.5 버전이상의 프로그램을 사용한다.

      ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/

    cdwrite : 최소 2.0 이상의 프로그램을 사용한다.
                 이 버전에서도 지원하지 않는 CD-Writer 들이 많다.

      ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/

    X 용 프로그램으로는 다음 프로그램을 사용한다.

    X-CD-Roast : 가장 최신버전은 0.96d 이다. 이 버전에서는 지원하는 CD-Writer 가 많다.
                         필자도 이 프로그램을 사용하고 있다.

    http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/ e_overview.html

     

     

     

     

     

     

     




▲ top

home으로...