私はいつもdd
だけを使って起動可能なLinuxUSBデバイスを作成することができました。しかし、Windows
に関しては、コンピューターはUSBからの起動に失敗します..-なぜそれがそのように機能しないのかわかりませんが、最も重要なのは:なぜMBR
を順番にデバイスに書き込む必要があるのかWindowsを正しく起動するには?
あなたの前提は間違っています。すべてのLinuxディストリビューションが、イメージをフラッシュドライブにdd
するだけで起動できるわけではありません。たとえば、古いUbuntuバージョンでは、ツールを使用してUbuntuインストール/ライブUSBドライブを作成する必要があります。 Ubuntu 5.xまたは6.xでは、ライブセッションとインストールに別々のCDを使用する必要があります。
最近のほとんどのLinuxディストリビューションでは、 ハイブリッドISO を使用しているため、ISO全体をディスクに書き込むだけで機能します。ただし、すべてのLinuxディストリビューションがそれをサポートしているわけではありません。 Knoppixは 最新バージョン(8.1) でハイブリッドISOに変更されました
ハイブリッドイメージとは何ですか?
新しいリリースがリリースされるたびに、UbuntuミラーからISOイメージをダウンロードすることに慣れています。これらのイメージをCD-ROMディスクに直接書き込むことができると同時に、スタートアップインストールUSBを作成するには、「スタートアップディスククリエーター」(付属)などの特定のUSB作成ツールを使用する必要があります。デフォルトではUbuntu)、 'UNetbootin'など。Wi番目のハイブリッドイメージでは、を使用してイメージのデータ(ファイルシステムを含む)をUSBドライブに簡単に書き込むことができます。 'dd'コマンド。 MBRとパーティションテーブル、およびイメージの最後にある追加のセクターをコピーしないため、マウント後にコンテンツをコピーするだけでは機能しないことに注意してください。
通常のISOでは、最初はすべてゼロになります。ハイブリッドISOには最初にMBRが含まれているため、BIOSはそれが有効なブートセクターであると判断してロードします。
CD/DVDおよびUSBスティックからのBIOSおよびEFIのハイブリッドセットアップ
EL Toritoブートカタログは、同じISOファイルシステムでPC-BIOSとEFIの代替ブートイメージを提供できます。
ただし、El Toritoは、CD、DVD、BDなどの光学媒体で提供される場合にのみファームウェアによって解釈されます。 USBスティックまたはその他のハードディスクのようなデバイスからPC-BIOSおよびEFIを起動するには、MBRが必要であり、必要に応じてGPTも必要です。
http://wiki.osdev.org/El-Torito#Hybrid_Setup_for_BIOS_and_EFI_from_CD.2FDVD_and_USB_stick
Linuxブートローダーは、BIOSシステムとUEFIシステムの両方でMBRとGPTのいずれかからの起動をサポートしているため、問題はありません。ただし、USBフラッシュドライブはCDまたはDVDドライブとして認識されるため、Windowsでは書き込みできなくなります。ドライブをクリーンアップし、 this のようなMBRまたはGPTスキームを使用して再作成する必要があります。ドライブを通常のデータストレージと起動に使用する場合、または 永続データを使用したライブ起動 を使用する場合は、起動可能なLinuxペンドライブを作成するためのツールが必要です。
OTOH WindowsはハイブリッドISOを使用しません 通常、USBインストーラーのメーカーは、boot.wim、install.wim、およびその他の必要なファイルをコピーしてから、Windowsブートローダーをドライブにフラッシュします。 WindowsブートローダーはUEFIシステムではGPT、BIOSシステムではMBRを必要とするため、UEFIでMBRフラッシュドライブを起動している場合は機能しません。
詳細については:
MBRは、ブートファームウェアがBIOSまたはBIOS互換モードの場合にのみ必要です。ファームウェアが互換性サポートのない完全なUEFIモードの場合、WindowsはブートディスクがGPTとしてパーティション分割されていることを想定します。
ディスクパーティションのWindowsブートサポートは次の場所にあります 2 TBを超えるハードディスクのWindowsサポート
System BIOS + MBR UEFI + GPT BIOS + GPT UEFI + MBR
Windows 7 Supported Supported; (64-bit only) Boot volume not supported Boot volume not supported
Windows Vist Supported Supported; (64-bit only) Boot volume not supported Boot volume not supported
Windows XP Supported Not supported Boot volume not supported Boot volume not supported
あなたの前提は間違っています。
PCにBIOSがある場合、MBRは常に必要です。dd
を使用して起動可能なディスクまたはフラッシュドライブを作成できた場合は、そのデバイスの既存のMBRを使用するか、dd
コマンドが新しいコピーをに書き込みました。最初のセクター。
最初のセクターにインストールされたMBRは、PCアーキテクチャとBIOSによってハードディスクドライブをエミュレートするすべてのデバイスに必要です。この要件は、どのOSにも関係ありません。
私はいつもddだけを使って起動可能なLinuxUSBデバイスを作成することができました。
dd
を使用してhydridISOイメージをUSBフラッシュドライブにコピーした場合、そのイメージには間違いなくMBRが含まれています。
通常のISOイメージを使用しようとすると、そのUSBフラッシュドライブは起動しませんでした。 sbブートメカニズムと光ディスクブートメカニズムの違いは何ですか? を参照してください。
しかし、Windowsに関しては、コンピューターはUSBからの起動に失敗します。
USBはバスであり、デバイスではありません。
起動用のデバイスが必要です。
確かに、USBHDDまたはSDDからの起動とUSBフラッシュドライブからの起動には違いがあります。
Windowsを正しく起動するために、デバイスにMBRを書き込む必要があるのはなぜですか?
おそらく、デフォルトでは、WindowsはUSBフラッシュドライブをハードドライブと同等に扱わない(またはフォーマットしない)ためです。 USBフラッシュドライブの場合、Windowsは、フロッピードライブと同様に、パーティションテーブルのないデバイスブートセクタを書き込みます。
一方、LinuxはUSBフラッシュドライブをHDDと同じように扱い、常にパーティションテーブルを使用してMBRを書き込みます。
「MBRをデバイスに書き込む」と主張する場合は、WindowsではなくLinuxシステムを使用していることは間違いありません。
[〜#〜]補遺[〜#〜]
WindowsがUSBフラッシュドライブのパーティションテーブルをインストールしないことの証拠として、最初にdd if=/dev/zero of=/dev/sdb count=1
で「クリーンアップ」され、次にWin7システムでフォーマットされたUSBフラッシュドライブの最初のセクターの16進ダンプを次に示します。デフォルトのパラメータを使用します。