web-dev-qa-db-ja.com

CD / DVDを分割できないのはなぜですか?

ほぼどこでも、それは不可能だと書かれています。しかし、なぜですか?最初のセクターでGPT/MBRパーティションテーブルをダンプできないのはなぜですか?基本的に、セクターサイズ2048のディスクレイアウトをダンプします。

今、私はこのタイプの何かが可能であると確信しています、しかしもちろんOSはそれを認識しません..それで問題は、なぜそうではないのですか?パーティションテーブルの何がそんなに難しいのですか?光ディスクのパーティション分割がゼロサポートされる背後にある技術的な理由は何ですか?

3
Milind R

パーティショニングが光メディアで十分にサポートされていない機能である主な理由は2つあります。

  • 光メディアは当初は小さかった(HDDと比較して)。
  • 光メディアは読み取り専用でした。これは後に、消費者レベルのディスクバーナーへのより簡単なアクセスとRWテクノロジーの出現により進化しました。

今日では、ペンドライブやポータブルHDDなどのはるかに優れたソリューションがあります。誰もがBlu-Rayリーダーを持っているわけではなく、誰もがRWDVDを購入したいと思っているわけではありません。そのため、光メディアに関しては、パーティショニングが発生するのに十分な要求されたことはありませんでした。

私は答えを指摘する必要があります ロッド・スミス 私が今引用している同様の質問に与えました:

ただし、この規則には例外があります。一部のMacディスクは、ISO-9660の代わりに、またはISO-9660に加えて、パーティションテーブルとHFSまたはHFS +で書き込まれます。このようなディスクはAppleパーティションマップ(APM)パーティションテーブルを使用します。一部のLinuxディストリビューションのインストーラディスクはパーティションテーブルと共存するISO-9660を使用しますが、ここでの目的は異なるメディアをサポートすることです。方法-画像をCD-RまたはDVDに書き込むと、パーティションのないISO-9660ディスクのように見えますが、USBフラッシュドライブに書き込むと、パーティションのあるハードディスクのように見えます。このトリックは、次の理由で機能します。さまざまなデータ構造のギャップと、光メディア(2048バイト)とハードディスクおよびUSBフラッシュドライブ(512バイト)で使用されるさまざまなセクターサイズの比較。これらの例(MacディスクとLinuxインストールディスク)はどちらも、標準に対するハックな拡張機能です。 ISO-9660、MBRパーティションなどの.

ご覧のとおり、技術的に不可能ではありませんが、それが行われる場合は、別の方法では実行できなかった追加のサポートを提供することです。 。

5

LinuxシステムでDVDを作成している場合、DVDを「パーティション分割」するのは非常に簡単です。 DVDを「パーティション分割」すると、2つ以上の個別のDVDドライブとしてOSに表示されます。

これを行うには多くの方法があります。たとえば、mkisofsに対して-eltorito-alt-bootオプションを使用できます。これは、EFIシェルとUEFIシェルの両方に加えて32ビットと64ビットのツールセットを含むUEFIレスキューDV​​Dを作成するために使用するものです。

ああ、関連する仕様は富士山v8です。

1
fpmurphy

Iso9660標準はcdrom仕様をカバーしており、パーティションは仕様の一部ではないため、誰もそれらを処理するためのドライバーを作成していません。ファイルシステムへの変更をサポートする既存のドライバーはなく、私が知っているすべてのプログラマーが仕様に違反することはありませんでした。

ドライバーを変更するということは、存在するセクターを追加するだけでなく、パーティションの背後にあるロジックに対応するためにコードベース全体を変更することを意味します。あなたがそのようなドライバーを書いてそのようなISOを作ったとしましょう。他の誰もが仕様に従ったドライバーを持っているので、他の誰もCDのISOを読むことができませんでした。 ISO規格委員会に変更を提出するまでに、承認プロセス全体を確認して実行するようにするには、何年もかかります。ただし、最新のハードウェアはすべて元の仕様に基づいて設計されているため、おそらく承認されないでしょう。

当初の考えは、おそらく誰がそのような小さなスペースを分割したいかということでした。彼らはおそらく、コードの開発、作成、テストにどれだけの作業が必要かを見て、これまでの期限に間に合わせるには作業が多すぎると言いました。

1
cybernard