Linux에서 DVD+R DL 미디어를 굽는 명령줄?

Linux에서 DVD+R DL 미디어를 굽는 명령줄?

Linux의 Plextor PX-750A는 Growthisofs 및 Schilling cdrecord 프로그램을 사용하여 8GB DVD .iso 파일을 굽는 동안 많은 DVD+R DL 코스터를 생성했습니다.

먼저 Growthisofs를 시도했습니다.

growisofs --version
* growisofs by <[email protected]>, version 7.0,
  front-ending to genisoimage: genisoimage 1.1.8 (Linux)

명령줄은 다음과 같습니다.

growisofs -dvd-compat -Z /dev/sr1=SUU_14.03.00_A00.iso

-dvd-compat또한 해당 옵션을 제거해 보았습니다.

또한 Schilling cdrtools를 사용해 보았습니다.

Cdrecord-ProDVD-ProBD-Clone 3.00 (i686-pc-linux-gnu) Copyright (C) 1995-2010 Jörg Schilling

명령줄은 다음과 같습니다.

/usr/local/bin/cdrecord -v dev=ATAPI:1,0,0 SUU_14.03.00_A00.iso

두 경우 모두 마치 하나의 레이어를 쓴 것처럼 굽기가 중단되고 두 번째 레이어로 이동해야 할 때 덜거덕거리는 소리가 납니다.

증가하다:

 4275175424/8434493440 (50.7%) @1.6x, remaining 22:03 RBU 100.0% UBU  94.4%
:-[ WRITE@LBA=1fdb40h failed with SK=3h/ASC=0Ch/ACQ=00h]: Input/output error
:-( write failed: Input/output error

CD 녹음:

Track 01: 4205 of 8043 MB written (fifo  99%) [buf  97%]   2.4x./usr/local/bin/cdrecord: Input/output error. write_g1: scsi sendcmd: no error
CDB:  2A 00 00 20 DA 10 00 00 10 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 03 00 00 00 00 0A 00 00 95 00 0C 00 00 00 00 00
Sense Key: 0x3 Medium Error, Segment 0
Sense Code: 0x0C Qual 0x00 (write error) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 0.019s timeout 200s

write track data: error after 4409294848 bytes
/usr/local/bin/cdrecord: A write error occured.
/usr/local/bin/cdrecord: Please properly read the error message above.

레코딩 후 미디어를 보면 데이터를 안쪽에서 바깥쪽으로 쓰는 것처럼 보입니다. 이는 한 레이어를 완전히 쓴 다음 해당 레이어 끝에서 오류가 발생하는 것처럼 보입니다. 여러 번의 시도에서 각 실패는 굽기 프로세스의 약 50%에서 발생했습니다.

$ ls -lh SUU_14.03.00_A00.iso
-rw-rw-r-- 1 user group 7.9G 2014-05-14 07:53 SUU_14.03.00_A00.iso

2014/05/23에 편집 시작:

cdrecord 매뉴얼 페이지는 다음과 같이 말합니다:

Cdrecord functional options
  ...
  driveropts=option list
    ...
    layerbreak
      Switch  a  drive  with  DVD-R/DL  medium  into layer jump
      recording recording mode and  use  automatic  layer-break
      position setup.

      By  default,  DVD-R/DL  media  is  written  in sequential
      recording mode that completely fills up both layers.

    layerbreak=value
      Set up  a  manual  layer-break  value  for  DVD-R/DL  and
      DVD+R/DL.   The  specified  layer-break value must not be
      set to less than half of the recorded data size and  must
      not be set to more than the remaining Layer 0 size of the
      medium.  The manual layer-break value needs to be a  mul-
      tiple  of  the  ECC  sector size which is 16 logical 2048
      byte sectors in case of DVD media  and  32  logical  2048
      byte sectors in case of HD-DVD or BD media.

      Cdrecord  does  not  allow to write DL media in case that
      the total amount of data is less then the Layer 0 size of
      the  medium  except  when  a  manual layer-break has been
      specified by using the layerbreak=value option.

중단점을 수동으로 계산하지 않고 Layerbreak를 사용하면 다음과 같은 결과가 발생합니다.

cdrecord -v driveropts=layerbreak dev=ATAPI:1,0,0 SUU_14.03.00_A00.iso
...
cdrecord: Bad layer break value ''.
...

몇 가지 조사 끝에 "최적 레이어 중단 계산"이 포함된 오래된 CDrecord에 대한 패치를 발견했습니다. 몇 번의 실험 끝에 쉘에서 "최고의 레이어 나누기"를 계산할 수 있다는 사실을 발견했습니다.

echo -e "a = $(isosize SUU_14.03.00_A00.iso)\nb = a / 2048 / 2\nb - 1 + 16 - ( b - 1 ) % 16\n" | bc

이는 2059216의 계층화 값을 제공합니다. 실제로 스마일의 경우 그 값을 위아래로 조절해 보았습니다. 특정 계층적 값(예: 2059215)의 경우 cdrecord는 다음을 보고합니다.

cdrecord: Layer break at 2059215 is not properly aligned.

나는 희망을 가득 품고 다음과 같이 노력했습니다.

cdrecord -v driveropts=layerbreak=2059216 dev=ATAPI:1,0,0 SUU_14.03.00_A00.iso

여전히 코스터가 발생하고 쓰기 오류가 발생합니다.

Track 01: 4205 of 8043 MB written (fifo  99%) [buf  97%]   2.4x./usr/local/bin/cdrecord: Input/output error. write_g1: scsi sendcmd: no error
CDB:  2A 00 00 20 DB 60 00 00 10 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 03 00 00 00 00 0A 00 00 95 00 0C 00 00 00 00 00
Sense Key: 0x3 Medium Error, Segment 0
Sense Code: 0x0C Qual 0x00 (write error) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 0.022s timeout 200s

write track data: error after 4409982976 bytes
/usr/local/bin/cdrecord: A write error occured.
/usr/local/bin/cdrecord: Please properly read the error message above.

2014년 5월 23일에 편집을 종료했습니다.

이 문제는 GUI 도구가 설치되지 않은 서버에서 발생합니다. 명령줄에서 듀얼 레이어 DVD를 구울 수 있는 방법을 찾고 있습니다.

답변1

  1. 다른 DVD 버너를 사용해 보십시오.

    실패한 명령은 USB로 연결된 LG M/N GE24LU20 DVD 버너와 함께 사용할 때 제대로 작동합니다.

  2. DVD 레코더 펌웨어 버전을 확인하세요. 새 버전이 있으면 펌웨어를 업그레이드하십시오.

    위의 두 growisofs명령은 cdrecordPlextor PX-750A-UF 1.01 레코더에서 실패했지만 동일한 드라이브에 대한 펌웨어 업데이트 후에는 성공했습니다.PX-750A-UF 1.03.

    /usr/local/bin/cdrecord -v dev=ATAPI:1,0,0 SUU_14.03.00_A00.iso
    
    growisofs -dvd-compat -Z /dev/sr1=SUU_14.03.00_A00.iso
    

    펌웨어 업그레이드에는 다른 이점이 있을 수 있습니다. 예를 들어, PX-750A-UF 1.01 펌웨어 장치는 듀얼 레이어 DVD에 약 2.4x로 기록하지만 1.03 펌웨어는 6x로 미디어에 기록합니다.

cdrecord계층 구분과 관련하여 4023MB 지점(중간)과 4025MB 지점 이전에 긴 일시 중지가 관찰되는 것은 흥미롭습니다. cdrecord이는 이전 펌웨어가 있는 드라이브를 사용할 때 실패합니다. 레이어 전환 작업으로 인해 지연이 발생한 것으로 보입니다.

답변2

cdrecord에 브레이크 위치를 지정하지 않으면 드라이브는 미디어를 100%까지 채웁니다. 이로 인해 오랜 지연이 발생할 수 있습니다.

cdrecord가 실패하면 DVD 지원을 제거하고 원본 코드를 반쯤 구운 코드로 대체하는 다양한 수정 버전의 피해자가 될 수 있습니다. 이러한 결함이 있는 버전은 버전 3을 보고하지 않으며 DVD 쓰기에 대한 올바른 시간 초과를 알지 못합니다. 이것이 cdrecord가 조기에 시간 초과되는 이유일 수 있습니다.

cdrecord의 최신 버전은 3.01a31이며, 3.01-final이 곧 출시될 예정입니다.

최신 버전을 사용하고 있나요?

관련 정보