mkisofs 와 cdrecord 를 이용한 레코딩
1. 리눅스 레코딩 개요
본 문서의 최신판은 http://redhat.okwecan.com/bbs/read.php?table=linux&no=85&page=1 에서 볼 수 있습니다.
커맨드 라인에서 CD를 굽는 일은 상당히 힘들고 귀찮은 작업이지만 리눅스에서는 조금만 생각해 보면 그리 어려운 작업은 아니다. 많은 리눅스 소프트웨어가 ISO 파일로 제공이 되고 있는데, 여러분들도 CD 레코딩을 할 줄 알다면 레드햇과 같은 배포본 ISO 파일을 다운받아 CD 로 레코딩 한 후 리눅스 설치 작업을 쉽게 할 수 있다.
CD-writing 프로그램은 리눅스와 윈도우즈에서 모두 이용할 수 있지만 리눅스 버전이 훨씬 강력한 기능을 제공하고 있다. 본 강좌에서는 mkisofs 로 ISO 파일을 생성하고, cdrecord 로 레코딩을 하는 방법을 설명하도록 한다. 여러분의 리눅스에 최신의 버전이 설치되어 있는지 확인해 보도록 한다. 최소한 둘 모두 1.10 보다는 최신이어야 한다.
[root@linux root]# mkisofs --version mkisofs 2.0 (i686-pc-linux-gnu) [root@linux root]# cdrecord --version Cdrecord 2.0 (i686-pc-linux-gnu) Copyright (C) 1995-2002 J rq Schilling
만약 bash: mkisofs: command not found 와 같이 나온다면 필요한 패키지가 설치되지 않았으므로 먼저 mkisofs 패키지와 cdrecord 패키지를 설치하도록 한다.
2. CD-RW 인식시키기
CD-RW 가 리눅스 설치전 부착되어 있다면 큰 문제는 없지만 리눅스 설치후 CD-RW를 장착하였다면 레코딩이 가능하도록 인식시켜주어야 한다. CD-RW 로 IDE/ATAPI 방식 또는 SCSI 방식의 장치를 사용할 수 있는데 IDE/ATAPI
라면 좀 복잡한 설정을 해주어야 한다. 대부분의 사용자들이 IDE/ATAPI 방식일 거라 생각된다.
리눅스에서는 SCSI 에뮬레이션 서브시스템(SCSI emulation subsystem) 을 사용하므로 IDE/ATAPI 방식의 CD-RW 를 사용하기 위해서는 ide-scsi 가상 장치 드라이버를 사용해야만 한다.
여러분의 시스템에서 CD-RW 를 사용할 수 있는지 확인해 보도록 하자. 아래의 명령을 실행하였을 때 CD-RW 드라이브가 보이는지 확인한다. 만약 있다면 3번으로 바로 건너뛴다.[root@linux root]# cdrecord -scanbus
1) 장치 및 ide-scsi 모듈 확인
자, 그럼 지금부터 작업을 하도록 한다. 우선 자신의 CD-ROM 과 CD-RW 과 시스템에서 사용하는 드라이브를 확
인하도록 한다.
[root@linux root]# dmesg | grep '^hd.:' ... hdc: RICOH DVD/CDRW MP9200, ATAPI CD/DVD-ROM drive hdd: SAMSUNG CD-ROM SC-152N, ATAPI CD/DVD-ROM drive ...
그리고 SCSI 에뮬레이션을 사용하도록 커널에서 지원가능하여야 한다. 레드햇 배포본을 사용한다면 대부분 모듈의 형태로 제공될 것이다.
[root@linux root]# modprobe -lt scsi | grep ide /lib/modules/{kernel-version}/kernel/drivers/scsi/ide-scsi.o
만약 위와 같이 나오지 않았다면 커널 컴파일의 과정이 필요할 지 모른다. 커널 컴파일은 본 강좌의 내용이 아니므로 다른 문서를 참고하도록 한다.
2) ide-scsi 드라이버 사용
ide-scsi 드라이버를 시스템에서 사용하기 위해서는 /etc/modules.conf 와 /boot/grub/grub.conf ( 또는
/etc/lilo.conf ) 두 개의 파일을 수정하여야 한다. 만약 여러분의 시스템에 CD-ROM 이 /dev/hdc 이고, CD-RW 가 /dev/hdd 라고 한다면 /etc/modules.conf 파일에 다음 라인을 추가하도록 한다.options ide-cd ignore=\"hdc hdd\"
기본적으로 IDE 서브시스템은 모든 ATA 장치를 자신의 것으로 사용하려 하는데 위의 설정은 CD-ROM 과 CD-RW 를 SCSI 서브시스템으로 사용하기 위해 ide-cd 를 무시하라는 내용이다.
이제 부트로더 설정파일을 편집한다. GRUB 사용자는 /boot/grub/grub.conf 파일에서 kernel 라인의 맨 끝에 다음과 같이 추가한다.hdc=ide-scsi hdd=ide-scsi
LILO 사용자는 /etc/lilo.conf 의 맨 끝에 다음 두 줄을 추가한다.
append="hdc=ide-scsi" append="hdd=ide-scsi"
이제 리부팅을 실시한 후 lsmod 명령을 실행해 보고 ide-scsi 모듈이 올라왔나 확인해 보자. 만약 올라오지 않았다면, 지금까지의 작업을 잘 확인해 보도록 하자.
[root@linux root]# lsmod | grep ide-scsi ide-scsi 12208 0 scsi_mod 107544 4 [sd_mod sr_mod sg ide-scsi]
3. 데이터 레코딩
1) ISO 파일 만들기
레코딩을 원하는 파일과 디렉토리가 있다면, 먼저 mkisofs 를 이용해 ISO 파일을 생성하고 cdrecord 를 이용해
레코딩을 할 수 있다.[root@linux root]# mkisofs -o test.iso -J -V TESTISO /mnt/movie/ani/
- -o : 생성될 ISO 이미지 파일 이름
-J : 윈도우즈 호환 Joliet Filesystem 으로 64자의 파일이름을 허용
-V : Volume ID 생성
이제 생성된 ISO 파일을 확인해보기 위해 임시폴더 /mnt/test 를 생성하고 다음 명령을 실행하도록 한다.
[root@linux root]# mkdir /mnt/test [root@linux root]# mount -t iso9660 -o ro,loop test.iso /mnt/test
/mnt/test 디렉토리로 이동하여 파일과 디렉토리가 있는지 확인하고 읽기 가능성도 체크하도록 한다.
만약 /mnt/movie/ani/ 에 있는 내용과 다르다면 정상적으로 ISO 파일이 생성되지 않은 것이다.
정상적으로 ISO 가 만들어 졌다면 cdrecord 을 이용해 레코딩을 실시한다.
2) 데이터 레코딩
레코딩을 하기 전에 여러분의 CD-RW 의 SCSI address 를 알고 있어야 한다. cdrecord -scanbus 명령을 이용하여 확인한다.
[root@linux root]# cdrecord -scanbus Cdrecord 2.0 (i686-pc-linux-gnu) Copyright (C) 1995-2002 Jrg Schilling Linux sg driver version: 3.1.24 Using libscg version 'schily-0.7' scsibus0: 0,0,0 0) 'RICOH ' 'DVD/CDRW MP9200 ' '1.10' Removable CD-ROM 0,1,0 1) 'SAMSUNG ' 'CD-ROM SC-152N ' 'C002' Removable CD-ROM 0,2,0 2) * 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) *
각 항목에 대한 처음 세자리 수는 SCSI bus, device ID 그리고 LUN(Logical Unit Number) 이며, CD-RW 의 경우 0,0,0 의 주소를 가지는데 맨 앞의 '0'을 생략하고 간단하게 0,0 으로 사용할 수 있다. 여러분이 사용하는 CD-RW
의 address 를 확인하고 꼭 기억하기 바란다.
[root@linux root]# cdrecord -v -eject speed=8 dev=0,0 test.iso
- -v : 레코딩 정보를 상세 출력
-eject : 레코딩 후 디스크 배출
speed : 레코딩 배속
dev : cdrecord -scanbus 결과 나온 device number(0,0,0) 처음 0 은 생략가능
test.iso 는 레코딩할 이미지의 이름
위에서 speed 옵션을 지정하지 않으면 최대 속도로 레코딩을 시도하지만 에러율, 버퍼언더런 등이 발생할 확률이 높아 그리 안정적인 방법이라고는 볼 수 없다.
시스템에서 /dev/hdc 로 인식되던 CD-RW 는 /dev/scd0 으로, /dev/hdd 로 인식되던 CD-ROM 은 /dev/scd1 로 인식된다. 필요하다면 /etc/fstab 파일을 수정해야 한다.[root@linux root]# mount -t iso9660 -o ro /dev/scd1 /mnt/cdrom
디스크 복사를 하고자 한다면 아래와 같이 하면 되지만 좀더 안정적인 레코딩을 하고자 한다면 언저 소스 디시크를 하드 드라이브로 복사한 후 하드 드라이브에 있는 데이터를 레코딩 하도록 한다.[root@linux root]# cdrecord -v dev=0,0,0 speed=4 -isosize /dev/scd1
아래 명령에서는 -dummy 옵션을 추가하였다. 이 옵션을 사용하게 되면 실제 레코딩을 하지 않고 정상적으로 레코딩이 되는지 여부를 확인할 수 있도록 한다.[root@linux root]# cdrecord -v -eject -dummy speed=8 dev=0,0 test.iso
4. 마무리
이것으로 mkisofs 와 cdrecord 를 이용한 레코딩을 간략하게 살펴 보았다. mkisofs 와 cdrecord 명령에 대한 좀더 상세한 내용은 본 강좌에서는 다루지 않는다. 리눅스에서 레코딩 가능한 GUI 인터페이스 툴이 gtoaser 등 몇가
지가 있으므로 명령어 방식에 익숙하지 않은 유저분들은 그래픽 툴을 찾아보기 바란다.
본 강좌의 주 목적은 CD-RW 를 인식시킨 후 기본적인 레코딩을 하는 것이다. 부족한 내용이 있다면 향후 업그레이드를 통해 보강하도록 하겠다.
참고자료
http://www-106.ibm.com/developerworks/linux/library/l-cdburn.html
정말 유용한 자료였습니당.^^ 감사합니다.
음..제가 알고싶어 하는 부분은 꼭꼭~!! 찝어서 설명해주셨네요...
감사합니다.
문재식님 덕분에 많은 시간을 절약했네요.^____________^;;
.
마음을 가꾸는 방법은??
댓글 달기