web-dev-qa-db-ja.com

Windows Server 2008がEFIではなくレガシーBIOSブートローダーを使用するように強制する

UEFIサーバーがあり、UEFIではなくレガシBIOS方式でWindows Server 2008を強制的に起動する必要がある状況に遭遇しました。

Windows Server 2008に(インストール中またはインストール後のいずれかで)EFIマシンにインストールしているという事実を無視して、代わりにレガシーBIOSブートローダーをインストールして使用するように指示する方法はありますか?


私は役に立たなかったいくつかの提案を試しました:

  • Windowsをインストールする前に、ディスクをMBRパーティションとしてフォーマットする

    いいえ、Windowsはインストールを拒否します:On EFI systems, Windows can only be installed to GPT disks

  • Windowsのインストール、パーティションのMBRディスクへの移行、システムの修復

    いいえ、システム修復コンソールはロードを拒否します。修復しようとしているWindowsのバージョンが認識されないというメッセージが表示されます。

  • UEFIを無効にする

    UEFIを無効にして、システムをレガシー専用にすることができれば、可能になります。ただし、私が使用している特定のシステム(IBM HS22、x3690X5)は、レガシーサポートを備えたUEFIのみです。それらでUEFIを無効にすることはできません。それには、完全なBIOS実装が必要です。


ソリューション!

JdeBPが指摘するように、EFI/GPTまたはBIOS/MBRブートローダーのどちらを使用するかを決定するためにWindowsが使用する唯一の方法は、インストールCDの起動に使用された方法です。

これをWeaverの提案と組み合わせて、0xEFブートカタログエントリなしで.isoイメージを作成する(ところで、イメージをリマスターするよりも16進編集する方がはるかに簡単です)ニースで簡潔な答えに導きます:

これは、Windowsインストーラーが使用するブートスキームを決定するために使用する唯一の差別化要因であるため、UEFIではなくBIOS経由でインストールメディアを強制的に起動します。

12
MikeyB

マイクロソフトはあなたにあなたのステップを達成させません。代わりにあなたの目標に取り組みます。

Microsoftは、誤ってEFIパーティション化されたハードディスクでEFIファームウェアで拡張しています。もちろん、これは明らかに間違っています。古い非EFIファームウェアが搭載されたマシンにEFIパーティションディスクを作成することは、可能であり、実際、最近ますます望まれています。あなたは実際に-ここにいる人々がステップではなくあなたからゴールを引き出すのに2週間かかったが-逆を望んでいる。 EFIファームウェアが搭載されたマシンに、古いPC/ATスタイルのMBRパーティションディスクが欲しい。 (EFIファームウェア自体は、どちらのパーティションテーブル形式でも問題はなく、EFI仕様では両方を理解するために実際に必要です。このエラーを発生させるのはMicrosoftです。)そして、他の誰かのソフトウェアがEFIパーティションテーブルを理解できないため、これが必要です。

Microsoftのエラーのいくつかの結果の1つは、Windows NT 6.1インストーラーが、Windows NT 6.1をディスクにインストールするという考えを受け入れるために、古いPC98ファームウェアからブートストラップされたインストールメディアから呼び出される必要があることです。古いPC/AT MBRパーティションスキームでパーティション分割されています。残念ながら、Windows NTインストールディスクが新しいEFIの方法でブートストラップされている場合、インストーラーはEFIファームウェアがあると見なし、非EFIパーティションハードディスクにインストールできないことを宣言します。

Weaverが指摘したように、 Microsoftのドキュメントで説明されているように の場合、インストールCD-ROMは実際にはデュアルブートです。 Rod Smithがさらに説明しているように 、したがって、古いPC98の方法でブートストラップするWindows NT 6.1インストールディスクを手動で作成できます。その後、Windows NT 6.1インストーラは、古いPC/AT MBRパーティションハードディスクへのインストールを許可します。

ただし、システムに互換性サポートモジュールがないシステムでは、これは1つの問題を解決するのに役立ちません。お使いのシステムでは、EFIシステムパーティションにインストールされたMicrosoftのブートマネージャーのEFIバージョンが必要になります。これは、ファームウェアがbootstrapオペレーティングシステムを試行する方法であるためです。ただし、Windows NT 6.1インストーラーが起動すると、非EFIファームウェアでは、Microsoftのブートマネージャーの非EFIバージョンをインストールし、EFIシステムパーティションを作成しません。このようなインストールでは、実際にはbootstrapがマシンにインストールされず、インストール手順を完了することさえできません。実際、CSMがないため、インストール手順を開始することさえできません。 bootstrap古いPC98の方法でインストールディスクを作成することもできません。Microsoftは、2倍以上のステップを達成することはできません。

代わりに、目標に焦点を合わせてください。あなたの目標は、顧客がシステムイメージからEFIファームウェアを備えたマシンにWindows Server 2008を展開できるようにすることです。したがって、ソフトウェアベンダーに尋ねる必要がある正しい質問は、EFIパーティションテーブルで問題が発生しないように、古い/壊れたディスクイメージングソフトウェアを修正する方法です。

6
JdeBP

要するに、はい、いいえの理由はいくつかあります。 WindowsがGPTディスクから起動する場合は、UEFIから起動する必要があります。 Windowsブートマネージャーとローダーは、nativeUEFIからMBRディスクから起動できません。ただし、UEFIがレガシーBIOSブートモード用に構成されている場合は、MBRディスクを使用してブートできます。これは、起動された環境に依存するWindowsブートモード(BIOSとMBRまたはUEFIとGPT)に起因します。

少し技術について読んでください-

物理ハードウェア(または仮想ハードウェアですが、それでもハードウェア)ファームウェア(BIOS/UEFI)は、オペレーティングシステムのブートプロセスの後続の段階で利用できる初期動作環境(ブート関連のデータ構造と規則)とファームウェアサービスを提供します。

BIOS/MBR

BIOS/MBRブートの場合、最初のブート可能ディスクの最初のセクター-マスターブートレコード(LBA 0)には、少数のx86(16ビット8088)アセンブリ、次にパーティションテーブル、そして署名が含まれます)。 BIOSはこのセクターをメモリにロードして実行を開始します。MBRが関与するとすぐに、BIOSは独自のプログラムコード制御を放棄します。

http://mbr.adamsatoms.com/

http://www.ata-atapi.com/hiwmbr.html

mBRのx86アセンブリ(ほとんどのMBRではIntel 8088)は、パーティションテーブルを解析し、アクティブなパーティションを検索して、そのパーティションの最初のセクター(ボリュームブートレコードと呼ばれます)にジャンプします。ボリュームブートレコードには、x86アセンブリjmp、BIOSパラメーターブロック(システムBIOSではまったく使用されないため、混乱を招く名前)、およびオペレーティングシステムのブートローダー(Windows環境ではNTLDRまたはBOOTMGR)を最終的にロードする、より多くのx86アセンブリが含まれます。 )ブートボリューム/パーティション自体から。

NTLDRまたはBOOTMGRは、CPUを保護モードに切り替え、ブート時の構成(boot.iniまたはBCD、それぞれブートボリューム/パーティション上)を調べ、残りが履歴であるNTOSKRNLをロードします。

http://technet.Microsoft.com/en-us/library/cc781134%28WS.10%29.aspx

http://en.wikipedia.org/wiki/Windows_NT_startup_process

http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/bios-parameter-block.html

UEFI/GPT

最初に、私はUEFI/GPTのアクティブな経験があまりないことを述べさせてください。ただし、操作に使用して理解したので、(会話に関連する)大きな違いは、実行可能制御がMBRに転送されないことです。

代わりに、UEFIファームウェアには独自のブートマネージャーが含まれています。このブートマネージャーは、ディスクとメディアをスキャンします-GPTフォーマットのディスクの保護MBRを確認し、GPTヘッダーに到着してから、EFIシステムパーティション(ESP)に飛び込み、そこでEFI実行可能プログラムを探します-これらはOSを直接ブートするオペレーティングシステムブートローダーですが、最新のMSで確認したように、 Apple EFI実行可能ファイル、それらは実際にはブートマネージャーであり、プロセスと複雑さに別のレイヤーを追加します。

http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/efi-boot-process.html

http://msdn.Microsoft.com/en-us/windows/hardware/gg463525#X-20110411192244

結論/ TL; DR

これから取り除かなければならない点は、オペレーティングシステムのブートマネージャーとブートローダーが実行されることを期待する期待される環境があることです。利用可能なファームウェアレベルのサービス(BIOS/UEFI割り込み)、データ構造(変数、スタック規則など)、さらにはディスクフォーマット規則も含まれます。実行時に変更することはできません-少なくとも私が理解している方法では変更できません。

あなたのオプションは?

プリインストールでは、MBRを使用するレガシーBIOSブートでBIOS/MBRまたはUEFIを使用するか、GPTを使用してUEFIを使用して、インストールを制御できます。

インストール後-オフラインでディスク形式(MBRからGPTおよびGPTからMBR)を変更し、リカバリーコンソール(適切なUEFIまたはBIOSモード)で起動し、bcdbootおよびbcdeditを使用してWindowsを取得すると、興味深い可能性があります。ブートマネージャーをまっすぐに設定します。

更新2011.09.09

@MikeyB

実際に正式な提案をするのではなく、私が理解しているとおりにオプションをリストします。

それにもかかわらず、UEFIについてもう少し調査した後(私はそれについてあまり積極的な経験がないことを思い出してください)、UEFIブートマネージャーとCD/DVDブートのサポートに関する興味深いヒントをいくつか発見しました。

El Toritoブート仕様は、'95から現在でも使用されており、ブータブルCD/DVDで使用されます。 1つのCD/DVDが複数のアーキテクチャで起動する必要がある場合があります-ISO 9660はプラットフォームに依存していませんが、実行可能コードはそうではありません。そのため、El Toritoブート仕様では、複数のブートエントリ/イメージを使用できます。

これらのエントリ/イメージには、アーキテクチャのBIOS(またはファームウェア)が正しいブートエントリを選択できるように、エントリがPC、PowerPC、およびその他のアーキテクチャ用かどうかを示すプラットフォームIDが含まれています。

BIOSを備えた標準のx86 PCのEl ToritoPlatform IDは0x00です。 UEFI対応プラットフォームIDは0xEFで、クリエイティブです。

標準のx86 PC BIOSは、0x00以外のすべてのエントリを無視します。レガシーBIOSサポート(互換性サポートモジュール(CSM)と呼ばれる)を備えたUEFIファームウェア-0x00を起動することはできますが、カタログからの0xEFネイティブブートエントリが優先されます。

Windows 2008、2008 R2、および7 DVDメディアには、0x00と0xEFの両方を含む複数のイメージEl Toritoカタログが含まれています。 0x00がデフォルトですが、0xEFが存在する場合、UEFIはそれを無視し、0xEFエントリを選択します。これはネイティブであるためです。

可能なこと-onlyがEl Toritoの優先プラットフォームIDを含むメディアを作成することブートカタログ。マルチエントリカタログの代わりに、0x00プラットフォームIDを使用してシングルエントリカタログを作成します。これにより、UEFIファームウェアは、実際にレガシーBIOSブートをサポートしている場合、0x00プラットフォームIDを選択し、WindowsメディアのレガシーBIOSブートエントリーをブートするように強制する必要があります。

どうやってするの?

Oscdimg を使用することは可能です。以下は、AppleのUEFI実装の制限を回避するためにUEFIのみのメディアを作成する人々の例です。これは、私たちがやろうとしていることの逆であることに注意してください。BIOSのみを作成し、カタログからUEFIブートエントリを除外したいとします。

EFIのみ(反対)1

EFIのみ(反対)2

BIOSのみのメディアを作成するプロセスは、-bおよび-p次の引数

-bC:\path\to\Etfsboot.com -p0x00

WindowsインストールメディアでMicrosoftが選択した狂気にいくつかの優れた光を当てる優れたリソースは、 WindowsオペレーティングシステムのUEFIサポートと要件 ドキュメントです。

7
Weaver

簡単な方法の1つは、EFIをサポートしていないマシンにWindowsの基本インストールを実行し、イメージソフトウェアでキャプチャして、実際のハードウェアに復元することです。

VMでベースインストールをビルドすることをお勧めします。以前のバージョン(バージョン<6)のWindowsでは、あるタイプのハードウェアから別のタイプのハードウェアに移動するようにうまく適応していませんでした。最近のバージョンのWindowsでは、イメージでストレージコントローラーがサポートされている限り、Windowsは新しいハードウェアに適応するのにかなり役立ちます。

Windowsインストール(ver> = 6)ディスクには通常、基本的にオペレーティングシステムのイメージである wim ファイルが含まれています。

3
Zoredache