私は次の設定をしています:
Ubuntu11.10からgrub2を使用してWindows7パーティションを起動しようとしています。
私のWindowsの「システム予約済み」は/dev/sda3
です。
GRUBの窓エントリは(標準)です。
menuentry "Windows 7 (loader) (on /dev/sda3)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos3)'
search --no-floppy --fs-uuid --set=root 644C5AC04C5A8CA4
chainloader +1
}
別れた出力:
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 296MB 296MB primary ext2
2 296MB 423GB 423GB extended
5 296MB 20.3GB 20.0GB logical ext4
6 20.3GB 363GB 342GB logical ext4
7 363GB 423GB 60.1GB logical ntfs
3 423GB 423GB 105MB primary ntfs boot
4 423GB 500GB 77.2GB primary ntfs
Disk /dev/sdb: 1500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 20.0MB 20.0MB fat16 boot
2 20.0MB 50.9GB 50.9GB ext4
4 50.9GB 1103GB 1052GB btrfs
5 1103GB 1156GB 52.7GB ext4
6 1156GB 1233GB 77.2GB ntfs
7 1233GB 1233GB 105MB ntfs
3 1496GB 1500GB 4271MB linux-swap(v1)
grub2からWindowsを起動しようとすると、次のメッセージが表示されます。
エラー:無効なEFIファイルパス
オペレーティングシステムのブートローダープログラムなど、ブート前のアプリケーションがマシンのファームウェアに緊密に結合されていることは明白です。通常のアプリケーションプログラムが、サービスを使用するオペレーティングシステムに関連付けられているのと同じです。EFIブートローダープログラムは、そのマシンがEFIファームウェアサービスを提供しない限り、そのマシンで実行することはできません。古いPC / ATスタイルのブートストラップローダープログラムは、そのマシンが古いPC / ATファームウェアサービスを提供しない限り実行できません。
chainloader
GRUBの動詞はこれを具体化しています。文書化されていませんが、GRUBがどのようにホストされているか、つまりGRUBが(実行されると予想される)どのマシンファームウェアで実行されているかによって、動作が異なります。古いPC / ATシステムでホストされているバージョンのGRUBでは、ディスクブロックセットまたはファイルが提供されることを想定しており、古いPC / AT VBRの方法で提供されたもの(の最初のセクター)をロードして実行します。ブートストラッププログラム。EFIでホストされているバージョンのGRUBでは、ファイル名が指定されていることを想定しており、通常のEFIアプリケーションとしてファイルをロードして実行します。
EFIでホストされているバージョンのGRUBがあります。ファイル名としてに渡さ+1
れましたがchainloader
、それは単に起動前のEFIアプリケーションイメージファイルへの有効なパスではありません。構文的に正しくないパスを指定したため、GRUBはイメージファイルのEFIデバイスパスを作成できませんでした。したがって、エラーメッセージ。
chainloader
EFIでホストされるGRUBでの正しい使用は、ファイルに名前を付けます。Microsoft Windows NT 6.1の場合、これはEFIシステムパーティションのBCDストアと一緒に存在するMicrosoftのブートマネージャーのEFIバージョンになります。
チェーンロード(hd1、gpt1)/EFI/Microsoft/Boot/bootmgfw.efi
もちろん、このマシンにWindows NT 6.1をインストールしなかった(ただし、他のマシンにハードディスクを転送した)か、EFIブートストラップ可能なバージョンをインストールしなかったため、これは機能しません。 、どういうわけか、EFIマシンでインストールユーティリティの非EFIバージョンを実行するようにWindows NT6.1を説得します。どうすればわかりますか?そのためMicrosoftはEFIマシン上の非EFIパーティションハードディスクにインストールしてみましょう持っていないあなたが行ったように、そしてあなたが正しいの両方持っているので、EFIシステムパーティション(2番目のハードディスク上のFATパーティションを)し、そのそうでなければ前者だけが必要だったであろうときの貧乏人の同等物。
そのため、Windows NT6.1はMicrosoftのBootManagerのEFIホストバージョンとともにインストールされておらず、BCDストアが間違った場所にあり、他にもいくつかの問題があります。WindowsNTが1つのハードウェア/ファームウェアの組み合わせを想定していることとそのための適切なドライバと設定で構成され、後で別のハードウェア/ファームウェアの組み合わせで突然ブートストラップされました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加