web-dev-qa-db-ja.com

ライブUSB:Windows OSでMBRをインストールする必要があるのはなぜですか?

私はいつもddだけを使って起動可能なLinuxUSBデバイスを作成することができました。しかし、Windowsに関しては、コンピューターはUSBからの起動に失敗します..-なぜそれがそのように機能しないのかわかりませんが、最も重要なのは:なぜMBRを順番にデバイスに書き込む必要があるのかWindowsを正しく起動するには?

1
Kais

あなたの前提は間違っています。すべての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フラッシュドライブを起動している場合は機能しません。

詳細については:

3
phuclv

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
3
Mokubai

あなたの前提は間違っています。
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進ダンプを次に示します。デフォルトのパラメータを使用します。

Hex dump of boot sector of USB flash drive パーティションテーブルがあるはずのテキスト文字列があることに注意してください。

1
sawdust