web-dev-qa-db-ja.com

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

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

ハイブリッドMBR/GPTは非常に壊れやすく、ハックしているように思われるため、回避することを強くお勧めしますが、doesは機能します。主な障害は、MicrosoftがGPTのBIOSブートローダーにサポートを追加していないことだと思いますが、これは理解できると思います。頼りになることはありますか?

私がそれを見る方法、いくつかの潜在的な解決策があります:

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

何か不足していますか?

20
John Chadwick

さて、私が最初にこの質問をして以来、状況は変わりました。 1つは、私のPCがUEFIベースであるため、この問題はもうありません。まあ、ちょっと。私のラップトップ(GPTパーティションなど)で同様の設定を取得することに興味がありました。ついにTianocore UEFI DUET設定を正常に機能させることができました。

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

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

難しい話は抜きにして:

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

  2. UEFI DUETビルドをいくつか入手します。間違いなく、これを取得するのに最適な場所は here です。実際のビルドtarballは、最初のリポジトリのマスターブランチ here の下にあります。古い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でテストしていません。

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

8
John Chadwick

2番目のMBRディスクなしで、BIOSセットアップでGPTディスクのWindows 8.1を起動できました。

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

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

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

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

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

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

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

6
Zhuoyun Wei

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

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

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

手順の詳細 こちら

5
Milind R

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が正常に動作します。

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

3

記事 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では動作しないコンピューターにはすべてAMD CPUが搭載されていました。

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

それはあなたのコンピュータのモデルを知るのに役立ちます。

2
harrymc

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

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

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

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

0
Scott Tovey