web-dev-qa-db-ja.com

ddでcdに生の書き込みを行うにはどうすればよいですか?

CDドライブに未加工の書き込みを行う方法/dev/scd0?ブートローダー(2つのセクターを取る)を直接CDに書き込みたいのですが、これは可能ですか?

3
Ajtgarber

CDは従来のブロックデバイスではないため、ddを使用した書き込みでは使用可能なCDは得られない可能性があります。イメージをCDに書き込む場合は、wodimツール(以前はcdrecordと呼ばれていたもの)を使用します。

wodim dev=/dev/cdrom file.iso

または、グラフィカルなBrasero Disc Burnerアプリケーションは、Ubuntuのデフォルトインストールに含まれています。

また、ハードディスクなどのブロックデバイスから起動する場合とは異なるプロセスがCDから起動するために使用されることに注意してください。イメージの最初のセクターにあるコードを実行するだけでなく、 El Torito Bootable CD Specification と呼ばれるプロセスを利用します。実際、CDイメージには、1つ以上のCPUアーキテクチャのブートローダーの場所を示す表があります。ブートローダーは、CD自体に直接存在するか、フロッピーディスクイメージ内に存在します。後者の場合、BIOSはそのイメージを基にしたフロッピードライブをエミュレートし、そこから通常どおり起動します。

CDからLinuxをブートする場合は、 [〜#〜] isolinux [〜#〜] ブートローダーを使用することをお勧めします。ブートローダーのコピーは、syslinuxパッケージにあります。

他のカスタムブートコードを使用する場合は、フロッピーエミュレーションモードを選択する方が簡単です。

4

あなたのアプローチにはいくつかの欠点があります...

まず、CD-ROMに任意のセクターを書き込むことは一般に不可能です。ハードドライブとは異なり、光学式メディアはランダム書き込みをサポートしていません。 CD-Rディスク、オープニング/クロージングセッションなどについて考えてください。

第二に、CDから起動する手順はHDから起動する手順とはまったく異なります-場合によっては、起動可能なcdromがフロッピーのイメージを使用するか、ハードディスクなどをエミュレートします。詳細については El Torito standardを参照してください

したがって、ブート可能なCDを作成するには、 [〜#〜] isolinux [〜#〜] または他のブートローダーを使用してブート可能なISOイメージを準備する必要があると思います。 BraseroやK3bなどの標準プログラムを使用してそのISOをCDROMに書き込むと、起動可能なディスクが作成されます。

2
Sergey