ddを使用して任意のISOイメージを作成する

ddを使用して任意のISOイメージを作成する

上記の方法でISOファイルを生成して光ドライブをテストしたいと思います。ここ。ランダムデータでいっぱいのISOファイルを作成し、CDに書き込んで再読み込みして元のISOと比較できるようにしたいと思います。私は次のコマンドが私がしたいことをするだろうと思います。

dd if=/dev/urandom of=cd-rom_test.iso bs=2048 count=333000

しかし、いくつかの点についてはよくわかりません。

まず、ブロックサイズはどうすればよいですか? ISOイメージにCDのヘッダーとエラー訂正データが含まれていますか?ブロックサイズは2048(ヘッダーとエラー訂正なし)、または2352(ヘッダーとエラーの修正を含む)でなければなりませんか?

第二に、私が遭遇したいくつかのサイトにはオプションがありません(例syncconvここ)。私が知っている限り、ヘッダーとエラー修正情報をゼロで埋めましたが、これは間違いなく間違っています。

答え1

説明に従って、次のことを行う必要があります。

dd if=/dev/urandom of=testfile bs=1M count=699
mkisofs -o test_cdrom.iso testfile

完了したら、必要に応じて光学メディアを読み書きできます。

私が提案したいことの1つは、光学メディアを事前にテストし、実際のISOに書き込むことを試み、次にターゲットデータISOを一度書き込むことを確認することです。これにより、試したいものとまったく同じ結果が得られます。なしでできる達成するのに時間がかかるWrite->Read->Verify->Format

答え2

ファイルへの書き込みを使用しているため、ddブロックサイズは結果の出力を変更しません。ブロックサイズはデバイスに書き込む場合にのみ重要です。

短い読み取りを決して返さないデバイスから読み取っているので、syncブロックを埋めるために使用する必要はありません。

いずれにせよ、ddエラー訂正データへの読み取りまたは書き込みアクセスはありません。磁気メディアと同様に、ドライブはこのデータを管理し、ユーザーはエラーが修正されたブロックのみを表示できます。

答え3

ランダムバイトで構成される画像を生成すると、明らかに間違ったISO 9660ファイルシステムにつながるので、良い考えではありません。有効なISOファイルシステムに適した大量のランダムファイルを生成する必要があります。その後、このISOイメージを焼いてCDの内容を読み取って、ハードドライブ上の元のファイルと比較することができます(またはmd5sumsha1sum。チェックサムが同じ場合、ドライブは通常CDを書き込んで読み取ることができます。

関連情報