GPTでBIOSを使用してWindows 7/8を起動する方法はありますか?


21

Windows 7またはWindows 8 Developer Previewを使用して、従来のIBM PC BIOSセットアップでGPTディスクにインストールする方法があるかどうかを知りたいのですが。もちろん、Windows 7はUEFIを持っていないため、GPTパーティションを拒否します。さて、DebianとGrub 2はうまく機能しているようです...それで、Windowsを強制的に動作させる方法があるかどうか知りたいです。

ハイブリッドMBR / GPTは非常に壊れやすく、ハック感がありますが、機能します。主なブロッカーは、MicrosoftがGPTのBIOSブートローダーにサポートを追加していないだけだと思いますが、これは理解できると思います。頼み事はありますか?

私の考えでは、いくつかの潜在的な解決策があります。

  1. Windowsカーネル用の代替ブートローダーがある。チェーンローダーではありません。私の知る限り、何も存在しません。残念です。
  2. 代替のMBRベースのディスクにできる限り格納しない。このアイデアは好きではありませんが、実行可能です。これを回避策と同じくらい問題の解決策と呼ぶかどうかはわかりません。
  3. EFIブートローダーを機能させるのに十分なEFIをエミュレートします... UEFI-on-BIOSエミュレーターについて少し聞いたことを覚えていますが、今は何も見つかりません。これは実行可能だと思いますが、おそらくまだあまり需要がなく、おそらくセットアップするのはまったく面白くないでしょう。GRUB 2は必要なEFIエミュレーションを使用してhackintoshを起動できるようですが、興味がない/ UEFI 2に近づくのは難しいと思います(hackintoshに使用される他のEFIエミュレーターも同じボートに乗っていると思います)。
  4. TainoCoreを使用したCoreboot。Corebootは私のマザーボードでは動作しません(私の知る限り)。GSoC中にこれを行う最後の努力は失敗だったと確信しています。しかし、うまくいったら、このソリューションが絶対に好きです。

何か不足していますか?


1
そうでもない。ハイブリッドMBR / GPTで実行できることは知っていますが、使用することを恐れていません。さらに、私はその解決策に不満であり、別のより良い方法があるかどうかを知りたいです。しかし、私はまだこの問題に取り組んでおり、独自の解決策を見つけるかもしれません。
ジョンチャドウィック

1
2年の格差を考えると、この質問はこの質問の複製であると確信しています。それに加えて、この質問には直接的な回答がありますが、質問に対する回答は実際にはありません。少なくとも直接的な回答はありません。
ジョンチャドウィック14

私の答えを確認しましたか?それは新しいものであり、他の誰もこの方法で行ったことはありません。いくつかのテストをお願いします。非ハッキーを保証。
Milind R 14

しかし、実際にはラップトップでは動作しません。しかし、繰り返しますが、この質問が2年近く前に十分に回答された後で、この質問に重複としてフラグを付けるのは非常に奇妙です。UEFI実装を実行するのはハッキングだとは思いません。ただ奇妙ですが、追加のディスクドライブを必要としないという利点があります。
ジョンチャドウィック14

作業中に単一のディスク実装があり、テストされると更新されます...また、システムに関するウィンドウに横たわっているという意味でハックです:ハイブリッドMBRでは、パーティションタイプについて、DUETでは、ファームウェアについてうそをつきます。
Milind R 14

回答:


8

さて、私が最初にこの質問をして以来、状況は変化しています。たとえば、私のPCは現在UEFIベースであるため、この問題はもうありません。まあ、ちょっと。私はラップトップ(GPTパーティションなど)で同様のセットアップを引っ張ることに興味がありました。ついにTianocore UEFI DUETのセットアップが機能するようになりました。

これは、すべての光沢のある新しいセットアップが必要であることを前提としています。古い設定を実際に変換したい場合は、幸運を祈ります。実際、これはどんな状況でもむらのある操作であるため、いずれにしても幸運を祈ります。

警告:起動時間が短い場合、この決定を再考することをお勧めします。UEFI DUETが遅いというわけではありませんが、起動プロセスに別の段階が追加されるため、BIOS / POSTが高速でない場合、これが気に入らないかもしれません。

難しい話は抜きにして:

  1. Linuxのセットアップが必要になります。私はFedora 16をUSBスティック(UNetBootinを使用)から使用しましたが、実際にはそのままで動作するため、これを強くお勧めします。とにかくUSBドライブが必要なので、USBドライブなしでは続行しないでください。

  2. いくつかのUEFI DUETビルドを入手します。間違いなく、これを入手するのに最適な場所はこちらです。実際のビルドtarballは、ここの最初のリポジトリのmasterブランチの下にあります。古いものを与えtar -xfます。

  3. パーティションをセットアップします。ディスクのどこかに200 MBを予約する必要があります(非常にできれば最初のパーティション、最初のパーティション)。FAT32でフォーマットできますが、後で再フォーマットします。パーティションとして表示されることを確認してください。ここでGPTを使用する必要があります。

  4. 次に、必要な追加ソフトウェアをインストールします。Fedora Liveディストリビューションで、が必要であることがわかりましたyum install gdisk。それがあったと思います。

  5. 次に、展開されたビルドディレクトリに移動します。chmod +x ./duet-installおよび./duet-install -64 -F -m /dev/sda1/dev/sda1目的のEFIシステムパーティションはどこにありますか。)

  6. 指をクロスして再起動します。運がよければ、数秒でTianoCoreのロゴが表示されます。もしそうなら、あなたはおそらく良いです!OSインストールファイルをUSBドライブにセットアップする必要があります-Tianocoreはすぐに使えるCD-ROM / DVD-ROMドライブをサポートしていませ(そのためのドライバーは知りません)。

また、いくつかのUEFIシェルバイナリを使用することもできます。ここで見つけまし。ただし、Tianocoreではまだテストしていません。

とにかく、助けようとしたすべての人に感謝します。


これはWindowsインストールで動作しますか?
モアブ

Windows 8以降はWindows 8以降で正常に使用されていました。過去数年間に作成されたものはすべてUEFIを使用しているため、Windows 8以降ではハードウェアメーカーがサポートする必要があるため、もう必要ありません。おそらく今日でも機能するでしょうが、それを推奨するかどうかはわかりません。
ジョンチャドウィック

2
UEFI DUETリンクはここにあるはずですが、現在は維持されていません。このサイトでは、代わりにClover EFIを使用するように指示されています。
kirbyfan64sos

1
また、CloverをHDDインストールして、別のドライブの必要性をなくすことができます
-phuclv

6

私は、2番目のMBRディスクなしでBIOSセットアップの下でGPTディスクでWindows 8.1を起動することができました。

ストーリーは次のとおりです。私のラップトップはBIOS + GPTセットアップの下にあり、Arch Linuxのみがインストールされていました。最近、Windowsでいくつかのタスクを実行する必要がありますが(仮想マシンではできない)、既存のBIOS + GPTセットアップでWindowsをインストールするのに苦労しています。Milindの回答によると、Windowsブートファイル(Boot、bootmgrなど)を(小さな)MBR USBドライブにインストールできました。そして、USBドライブを接続した状態でラップトップの電源を入れるたびに、Windows 8.1を起動できます。その後、ドライブを安全に接続できます。

欠点は明らかです。Windowsを起動するには、USBドライブを携帯する必要があります。だから私はいつもそれを取り除こうとしていた。

さまざまな方法を試してみたところ、syslinuxプロジェクトのmemdiskモジュールが機能することがわかりました。

  • Windowsブートマネージャーを放棄する必要があります。
  • syslinuxをインストールする必要はありません。のみmemdiskモジュール(26キロバイトファイル)が必要とされています。
  • 多くのブートローダーを使用してこのモジュールをロードできます。私の場合は、お気に入りのブートローダーGRUB(バージョン2)です。

ハウツーの概要は次のとおりです。

  • GRPTのニーズを満たすためにGPTディスクをパーティション化します。つまり、core.imgを埋め込むための小さなパーティションです。詳細リンク
  • その小さなパーティションにGRUBをインストールします。
  • でWindowsをインストールしますimagexそして、使用bootsectしてbcdboot小さなMBRのUSBディスクにWindowsブートファイルをインストールします。
  • ddまたはdd_rescueを使用して、小さなUSBディスクをディスクイメージに複製します。(お使いのUSBディスクはジョブを終了しました。)memdiskを読み込むにはイメージが大きすぎる可能性があります。マウントして、その中のファイルシステム/パーティションを縮小できます。
  • 私のテストによると、Windowsブートファイルをインストールするために物理的なMBRディスクは必要ありません。vhdファイルを作成して、物理ディスクとして扱うことができます。Windowsブートファイルをvhdにインストールした後、VirtualBoxまたはQEUMが提供するツールを使用して、それをraw(ddスタイル)ディスクイメージに変換できます。で作成したtype=fixed場合、vhdファイルは512バイトフッターを持つ通常のrawディスクイメージ(ddスタイル)です。フッターは「パーティション化されていないスペース」として認識され、無視されるため、type=fixedvhdファイルを変換せずにMEMDISKに直接送り、Windowsを起動できます。
  • memdiskを使用してこのディスクイメージをロードするようにGRUBを構成します。
  • Windowsが起動します。

詳細なハウツーは、milindのスレッドに対する私のreboot.proの返信にあります。


1
@wzboy私はArch linuxを使用していますが、Windowsをインストールする時点(wimlib-imagexを使用)を取得できました。今はどうすればいいのかわかりません。Linuxディストリビューション内からvhdファイルを作成する方法について詳しく説明していただけますか?
ミハイビショグ14

@MihaiBişogそのvhdを作成するには、Windows PEが必要です。Windows PEを起動する方法は多数あります。GRUBとsyslinuxは、たとえばisoファイルで起動できます。
卓雲yun 14

これは、Windowsの更新を中断しませんか?つまり、Microsoftが仮想ディスクイメージに配置したこれらのboot / bootmgrファイルを変更する更新プログラムをリリースする場合、更新されず、これに気付くことさえありません。また、これはいくつかのウィンドウの修復操作を壊すかもしれないと思う 他に欠点はありますか?
パワーマン14

実際、BCD / Bootmgrはフロッピー/ディスクイメージ内にあるため、Windowsによって検出されることはありません。したがって、それを自動更新することは間違いありません。自動修復は機能しません。起動に関連するMicrosoftツールに関連するものはすべて動作しない可能性があります。
Milind R 14

1
はい。bootmgrに関連するものは動作しません。Windowsの起動を支援した後、それらは「なくなって」しまうからです。実際、cmd.exeで「bcdedit」を実行すると、ブートファイルが見つからないことが通知されます。:-)
ジュオユンウェイ

5

小さなスペアドライブさえあれば、BIOSでGPTからWindows(32ビットまたは64ビット)を起動できます。フロッピーができます。

Windowsのインストール/修復ディスクを起動します。

小さいディスク/フロッピーにシステムドライブを作成し、小さいディスクbcdbootの新しく作成されたドライブにブートファイルを配置するために使用します。でブートセクタを追加しbootsectます。をに変更{bootmgr} devicebootます。小さなディスクから起動します。

手順については、こちらをご覧ください


2
それを試してみたところ、うまくいきました。これで、BIOSセットアップでGPTディスク上にWindows 8.1が動作するようになりました。USBフラッシュドライブを挿入して起動するだけです。起動プロセスの後、USBドライブを取り外すことができます。ただ、昔のように、I平均MS-DOSフロッピー...
Zhuoyun魏

笑。別のディスクを必要としないソリューションに取り組んでいます。どれだけ遅いか速いか教えてください。
Milind R 14

1
bootmgrを別のディスクに配置しても、Windowsの起動時間が長くなることはないと思います。少なくとも私は感じません。
Zhuoyun魏

2
そうそう。興奮しすぎてすみません。午後を丸ごと過ごし、ついに、2番目の(小さな)MBRディスクなしでBIOSセットアップの下でGPTディスク上でWindows 8.1をブートすることに成功しました-ハードディスクイメージをロードできるsyslinux memdiskモジュールを使用して。
ズオユンウェイ14

1
ここに私の記事は次のとおりです。reboot.pro/topic/...
Zhuoyun魏

3

wzyboyに感謝します。

6Tb RAIDを搭載したDell PowerEdge 2950にWindows 2012をインストールしようとすると、この問題に直面しました。UEFIではありません。

いくつかの実験を行いました。最初に、wzyboyが言ったように32Mbの仮想HDDを作成し、Microsoftの予約済みパーティションからすべてのものをコピーしました。Windowsは正常に起動しました。しかし、このソリューションでは、Hyper-Vサービスを開始できません。

memdisk wikiが言うように、画像サイズ、エミュレートするメディアの種類によって自動的に決定します。そこで、WMware環境で仮想720Kフロッピーを作成し、その中にbootmgr、BCD、およびbootstat.datをコピーしました(念のため、BCDストアからmemtestサブメニューを削除しました)。フロッピーのサイズはできるだけ小さくしたので、大きかったり小さかったりする可能性があるので、試しませんでした。

GPTドライブから起動し、Hyper-Vが正常に動作するようになりました。

PSはサードパーティのソフトウェアに役立つ場合があります。誰かがこのようなものを使用していますか? https://www.terabyteunlimited.com/bootit-bare-metal.htm


最近、画像のトリックに何時間も費やした後、RAIDコントローラーPerc5-iが物理ハードドライブの容量よりも小さいアレイをスライスできることがわかりました。そのため、プロのハードウェアではGPTブートは問題になりません。
ニコライヴァクレンコ14年

この開発スレッドで、シナリオとそれに対する修正をナレーションしてください。私はすべての詳細をまとめようとしています。
本部Milind R

2

BIOSからUEFIへの変換の記事では、TainoCore UEFI DUETの使用方法について詳しく説明しています。

TainoCoreの使用に問題があることは承知していますが、この記事は役に立つかもしれません。

記事は言う:

一部のコンピューターはUEFI DUETで動作しません。最も重要なことは、64ビットx86-64コンピューター、特にバイナリ形式でのみ有効です。実際、一部のx86-64コンピューターでも正しく起動しません。5つのx86-64システムでのテストでは、1つまたは両方のバージョンをわずか3台のコンピューターで動作させることができました。これは非常に悲惨な成功率です。偶然かもしれませんが、私にとって最適に動作する2台のコンピューターはIntel CPUを使用しましたが、最悪の動作をする2台とバージョン2.1で動作し、バージョン2.3ではない1台はすべてAMD CPUを使用しました。

これは、あきらめる前にUEFI DUETのいくつかのバージョンを試す必要があることを暗示しているようです。

コンピューターのモデルを知るのに役立ちます。


この質問を最後に更新してから、実際にUEFI DUETをコンピューターで正常に起動することができました。悲しいことに、Windowsを保存するUSB​​ドライブがなかったため、DVD-ROMドライバーがなかったために私は死にました。プライマリハードドライブがランダムに故障した後、休憩し、予備のBIOSパーティショニングを使用することにしました。ただし、この記事は間違いなく有用であり、私はこれを自分で動作させることにまだ興味があります。フラッシュドライブをすぐにピックアップすることを忘れないでください。
ジョンチャドウィック

@JohnChadwickクローバーを使用してHDDにインストールすると、別のブートドライブが不要になります
-phuclv

@phuclv:ジョンチャドウィックのコメントは2011年からのものであり、彼がこの投稿に対して独自の答えを出していることに気づきましたか?
harrymc

@harrymcもちろん知っています。この情報は将来の読者向けです
-phuclv

0

すべてのBIOSファームウェアがGPTドライブを処理できるわけではないことに注意する必要があります。工場からGPTであったUSB Seagate 4 Tbドライブがあり、2台のコンピューターのどちらも、USBポートにドライブが接続された状態で起動しません。

F2 Enter Setup F10 Bootメニュー画面でマシンがフリーズします。その時点でできることは、電源をオフにしてからオンにすることだけです。

ドライブをMBRに変換すると、約2 TBのドライブスペースが削除され、ドライブが接続された状態で両方のシステムが起動し、OSが通常どおり起動します。

この問題を修正するBIOSパッチを探しています。


BIOSは、GPT、MBR、BSDラベル、APMのいずれであっても、ドライブについては何も知りません ...最初のセクター(MBRなど)をロードして実行するだけです。その時点で、BIOSのジョブは「完了」と見なすことができます。ドライブが起動しない場合は、ドライブに有効なブートセクタがない
-phuclv
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.