ddを使用してDVDをコピーできないのはなぜですか?

ddを使用してDVDをコピーできないのはなぜですか?

私はddを試しました。dd_rescueそして救う、すべて失敗しました。私はこれらのツールがファイルシステムをバイパスし、ビット単位のコピーを実行すると思います。

ddはだまされて完了しましたが、小さなファイルだけが作成され、完了したと宣言しました。

dd_rescuse と ddrescue は、読取りエラーについて文句を言い、耐え難いほど遅い。これらのツールは10分以内に数MBしかコピーできません。

重要:VLCはDVDを開くことができません。

なぜこれが起こるのですか?このツールはなぜ失敗するのですか?


すべてのDVDWin7ホストからCDをすばやくコピーできます。 UDFファイルシステムがパッチされたと出てきて、奇妙なことにバッドセクタがないと出てきます。ディスク全体を10分でコピーできます。


修正する:解決策については、マイドキュメントを参照してください。スーパーユーザーに関する同様の質問

答え1

人々はVLC(DVDメニュー表示)でDVDを開くと魔法のようにデータにアクセスできると言っていましたが、ddなぜこれが起こるのか、そしてVLCがどのようにこの機能を実行するのか説明していません。

テレビに接続されているKodiデバイスで自分のコンピュータのDVDを再生しようとすると、SMBを使用してネットワーク経由でDVDドライブのルートを共有することで、この動作を正常に複製しました。成功しませんでした。〜しない限り最初にVLCでDVDを開いていましたが、その時点でKodiは魔法のようにファイルを再生しました。

この魔法が私の感性を傷つけて掘り始めました。問題の根本原因はDVDドライブが健康に悪い。 ~によるとウィキペディア:

ただし、ドライブがCSSでコンパイルされたディスクを検出すると、著作権であるとマークされた論理ブロックへのアクセスが拒否されます(§6.15.3 [2])。プレイヤーはまず認証ハンドシェイクを実行する必要があります(§4.10.2.2 [2])。

したがって、DVDを読み取ると、再生できない暗号化されたデータが得られるだけでなく、データの損失も発生します。ドライブはビットを再送信しません。コンピュータの一部のプログラムが、Linuxカーネルによって公開された一部のDVD関連IOCTLを使用してドライブに対して自己認証されていない場合(この場合DVD_AUTH)。これがI/Oエラーとして現れる理由です。

これらのIOCTLの仕組みの詳細については、以下を参照してください。このメーリングリストは、実装者の投稿からのものです。ただし、デフォルトでは、ユーザーレベルのソフトウェアがDVDドライブハードウェアと秘密のハンドシェイクを実行する方法を提供します。

VLCは秘密のハンドシェイクを実行してこれを行いますlibdvdcssGetBusKey()存在するcss.clibdvdcssおそらく、VLCにまったく依存せずにファイルにアクセスするためにドライブのロックを解除するために、リンクされたスタンドアロンプ​​ログラムを書くことができます。ロックが解除されると、ドライブはどのプログラムがデータを読み取っているかを知ることができないため、(まだ暗号化されていますが、今は読み取ることができる)ビットを、またはを含むdd誰にでも送信しますcp

(興味深いことに、DVD IOCTLはディスクからデータを読み取った後にディスクからデータを復号化するために使用される復号化キーを取得する唯一の実際の方法でもあります。ファイルディレクトリのコピーを再生する場合はIOCTLにアクセスできるため、キーを取得します。libdvdcss統計的暗号分析による暗号クラッキング.)

答え2

最も簡単な答えは、dd、dd_rescue、およびddrescueがコピー防止スキームを無効にするように設計されていないことです。これらはデータ型について何の前提もせず、ディスク上の元のデータの全体的な整合性を維持しようとします。

この場合、ddコピープロテクトスキームの一部であるディスクの意図的な読み取りエラーが原因で終了したと考えられます。dd質問にコマンドライン出力を含めると、これを確認するのに役立ちます。コマンド出力にいくつかの読み取りエラーが記録されている可能性がありますdmesg

コマンドラインからddファイルにフラグを渡すと、より多くのファイルをコピーできます。noerrorただし、これにより最終画像のみが破損する可能性があります。

答え3

なぜこれが起こるのかわかりませんが、最初にメニューを見ることができるようにVLCでDVDを開き、一時停止してddが機能するようにします。

答え4

人々はVLC(DVDメニュー表示)でDVDを開くと魔法のようにddにデータにアクセスできると言ったが、これがなぜそうなのか、そしてVLCがどのようにこの偉業を達成したのかまだ誰も説明していない。

「初めてVLCを使ったDVDを開く」も経験しました。したがって、私のスクリプトでddを使用するときは、次の順序を使用します。

cvlc --run-time 6 --start-time 16 /dev/sr0 vlc://quit 

`dd if=/dev/sr0 of=/home/user/Videos/name.iso`

関連情報