EFIマザーボードでDebian Wheezyを使用していて、Windows 7インストーラーのbootmgrをロードするには、GRUB2にntldrモジュールが必要です。 MBRフォーマットのディスク。 GRUBをgrub-installを使用してインストールすると、ntldr.modがGRUB modulesフォルダに追加されず、insmodできません。
私は、Windowsの正しいブートローダーが、インストールイメージに含まれる大きな圧縮ファイルのどこかに隠されていることを理解しました。解凍して正しいブートディレクトリに置き、通常どおりGRUB2チェーンローダーでロードできます。正しいローダーがあるにもかかわらず、Microsoftがそれをどこか深いところに隠し、奇妙なローダーをデフォルトのブートディレクトリに配置する理由がわかりません。それは私にとってはうまくいきました(ただし、解凍するのはかなり苦痛だったので、私が見つけた説明ページにあるファイルをダウンロードしました)。残念ながら、詳細は覚えていません。ウェブ上のどこかにマニュアルを見つけましたが、一般的な考え方は説明されています。
BIOSブートマシン用のgrub-pcパッケージをダウンロードしたため、モジュールはefiバージョンのgrubに読み込まれません。このモジュールはBIOSに依存しているため、EFIバージョンのgrubには存在しません。
USBスティックからWindowsインストーラーを起動する場合は、GRUBを使用してはいけません。ファームウェアに、HDDではなくそのドライブを起動するように指示します。
モード(_Legacy BIOS
_またはUEFI
)は、USBスティックおよびBIOS設定にインストールされているブートローダーによって決定されます。
Windows 7インストールメディアは、(_Legacy BIOS
_とUEFI
)の両方をサポートする必要があります。後者の場合は、設定によって異なります。しかし、UEFI-HDDから起動でき、Win7-USB-Stickが_Legacy BIOS
_モードで起動するため、「両方」に設定する必要があります。つまり、BIOSがUEFI
をサポートし、代替として_Legacy BIOS
_モードで起動します。
この問題を解決するには、UEFIサポートのあるWin7-Imageを使用してインストールすることをお勧めします(ない場合でもわかりません)。また、BIOSを明示的にUEFIモードに設定する必要があります(結合モードなし)。 )。
しかし、これが機能しない場合、そしてあなたの質問に答えるために:これは機能するはずです:
Win7-ImageをHDD
または_USB-Drive
_に配置し、適切なモジュールを選択します(コメントに従ってください)。
_menuentry "Windows 7" --class windows --class os {
# Insert modules needed in order to access the iso-file
# choose the right module for the partition-table-scheme the image lies on
insmod part_gpt
insmod part_msdos
# choose the right module for the filesystem the image lies on
insmod ntfs
insmod fat
insmod ext2
# Insert module needed in order to find partition
insmod search_fs_uuid
# Set UUID of partition with the iso-image
# and let grub2 find the partition
# (save it's identifier to the variable $root)
set uuid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
search --no-floppy --set=root --fs-uuid $uuid
# Mount the iso image by addressing it with (partition)/path
set iso=/images/Win7_English_x64.iso
loopback loop ($root)$iso
# boot (chain-load) the windows7-image using the bootmgfw.efi file located
# on the Win7-ISO-Image
chainloader (loop)/efi/Microsoft/boot/bootmgfw.efi
}
_
画像をusb-stickに直接ダンプする場合は、isoをマウントするために必要な_set iso=
_-とloopback loop ($root)$iso
- partsを除外する必要があります。あなたのチェーンローダーはchainloader ($root)/efi/Microsoft/boot/bootmgfw.efi
です
レガシーモードで起動する必要があります、それだけです。 UEFI設定を入力して正しいブートデバイスを選択します。ubuntu-entryは選択しないでください。EFIモードの場合は、代わりにHDDからブートします。次に、grubが開き、ubuntuを選択してから、sudo update-grubを再度実行します。ドライブにubuntu用の古いブートローダーがあり、efiモードで起動しますが、grubもMBRにあります。
Alexey、この問題はgrub2で頻繁に見られます。 ubuntuフォーラムを閲覧しているときにこの問題に遭遇しました。解決済みのマークが付けられています。そこを見てください: http://ubuntuforums.org/showthread.php?t=1343362 。うまくいけば、これはあなたを助けるでしょう。