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

どちらの場合も、1つのレイヤーを書き込んだかのように、書き込みが中断され、2番目のレイヤーに移動する必要があるときにガタガタ音がします。

増加する:

 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.

記録後にメディアを見ると、データを内側から外側に書き込むように見えます。これは、1つのレイヤーを完全に書き込んだ後、そのレイヤーの最後にエラーが発生するようです。複数の試みで、各失敗は書き込みプロセスの約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レコーダーのファームウェアのバージョンを確認してください。新しいバージョンがある場合は、ファームウェアをアップグレードしてください。

    上記の2つの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階層の区分に関しては、4023 MBポイント(中間)と4025 MBポイントの前に長い一時停止が観察されるのは興味深いものです。cdrecordこれは、古いファームウェアを搭載したドライブを使用すると失敗します。レイヤー切り替え操作により遅延が発生したようです。

答え2

cdrecordにブレーキ位置を指定しないと、ドライブはメディアを最大100%充填します。これは長い遅延を引き起こす可能性があります。

cdrecordが失敗した場合は、DVDのサポートを削除し、元のコードを半分焼いたコードに置き換えるさまざまな修正バージョンの犠牲者になる可能性があります。これらの欠陥のあるバージョンはバージョン3を報告せず、DVDの書き込みの正しいタイムアウトを知りません。これがcdrecordが早期にタイムアウトする理由である可能性があります。

cdrecordの最新バージョンは3.01a31で、3.01-finalがまもなくリリースされる予定です。

最新バージョンを使用していますか?

関連情報