Linux/bsdの多くのディストリビューションには、別々のusbイメージとdvdイメージがあり、dvdイメージの書き込みは機能していないようです。これら2つのメカニズムの根本的な違いは何ですか?
まず、USBはユニバーサルシリアルバスを意味します。これは、PCIe、PCI、EISAおよびISAがすべてバスであるように、コントロールとデータbus)の標準です。USBは、CDドライブやDVDドライブのようなデバイスではありません。(光学ドライブは通常、SATAまたはIDE ATAプロトコルを備えたバスを使用します。)USBを使用または参照する場合、おそらく実際に参照している接続デバイス(別名USBガジェット)。
この場合、USBフラッシュドライブを参照していると思われますが、これは基本的に典型的なハードディスクドライブをエミュレートしています。 PCのBIOSがUSBデバイスからの起動をサポートしている場合、BIOSにはUSBプロトコルスタックを含むファームウェアが組み込まれており、フラッシュドライブのようなターゲットデバイスを制御できます。ユニバーサルシリアルバス。 USBハンドシェイクプロトコルがUSBホスト(ブートする必要があるPC)とUSBガジェット(フラッシュドライブ)、USBによって提供される制御およびデータメカニズムを抽象化でき、BIOSブートコードの上位層はフラッシュドライブをHDDのように扱うことができます。つまり、マスターブートレコード(MBR)を取得するには、「ディスクドライブ」の最初のセクターを読み取る必要があります。
光ディスクはPCのハードディスクレイアウトに準拠していません(セクター0にMBRはありません)。実際、光ディスクにはいくつかのフォーマットがありますが、PCで一般的に使用されているデータレイアウトは、CDのISO 9660フォーマットです。 CD/DVDからブートするための要件は ISO 966 規格に記載されています。
BIOSがデバイスをサポートする場合、異なるブートデバイス間のデータ転送速度と物理容量の違いは本質的に無関係になります。サポートされている各ブートデバイスのI/O特性を考慮する必要があり、BIOSの低レベルデバイスドライバーコードで処理されます。ほとんどのPCはイーサネットネットワークインターフェイスカード(NIC)からも起動でき、そのインターフェイスはCD/DVDとHDDの違いがはるかに大きいことに注意してください。しかし、ソフトウェア実装への階層化アプローチは、すべての低レベルI/Oおよびプロトコル処理を下位層に委任し、BIOSは、ブートローダーの次のステージのロードと実行を続行できます。一部のデバイスの違いはパラメーター化されていることに注意してください。つまり、デバイスのシリンダー数、ヘッド数、セクター/トラック数、セクターサイズは、デバイスドライバーでハードコードされていませんが、デバイスから読み取られます。 MBRのBPB。
...(USBフラッシュドライブへの)DVDイメージの書き込みが機能していないようです。
これら2つのメディアレイアウトの違いは、2つをCD/DVDまたはHDD /フラッシュドライブにコピーできるマージされたイメージファイルに結合することで解消できます。 ISOイメージ(CDまたはDVDに書き込んで起動可能なディスクを作成するため)を変更して、HDDまたはUSBフラッシュドライブに直接コピーして ハイブリッドISO/IMGイメージ を作成できます。
ハイブリッドISO/IMG形式は、標準のISO形式を変更したもので、イメージをハードドライブの起動の期待に適合させることができます。
標準ISOイメージには、通常、El Toritoブート標準を使用してBIOSによってロードされるISOLINUXブートローダーが含まれています。ハイブリッドイメージは、ISO形式の最初の512バイト(すべてバイナリゼロ)を、以下を含むPCハードドライブマスターブートレコード(MBR)で置き換えます。GRUBバージョン0.97のステージ1ローダーイメージ、およびハイブリッドイメージの最後で終了する1つのパーティションを持つパーティションテーブル。ISOイメージの残りの部分は変更されません。
ISOイメージの最後に追加のセクターが追加されます。
DVDには独自の機械的特性と2Kブロックサイズがあります。古いジョリエットブートメカニズムでは、CDをインストールするために2.88MBのブートローダーフロッピーを追加する必要がありました(NT4の場合と同様)。新しいCD/DVDブートプロトコル(フロッピーイメージなし)とUSBスティック(およびCFカード、IDE diskなど)。ほとんどのベンダーのイメージはそのように機能しますが、一部のBIOSは1つまたは他のブートメカニズムを優先するようにプログラムされています。