web-dev-qa-db-ja.com

grub2からWindows 7 isoを起動します

Windows 7をインストールしたいが、BIOSメニューが表示されないため、これを実行したい。起動時にgrub2メニューにスキップしますが、それは別の話です... Windows 7インストールisoをgrub2から直接起動する方法はありますか?

9
user208513

Grub4dosを使用したWindows XPの起動

Grub legacyまたはgrub2で実際のISOをブートすることはできませんが、古いWindowsバージョン(XPなど)では、i386フォルダーをISOからUSBスティックに解凍してから grub4dos を使用できます。ブートローダーを呼び出すには:

title windows installer via setupldr.bin
find --set-root /i386/setupldr.bin
chainloader /i386/setupldr.bin

または

title windows installer via /bootsect.bin
find --set-root /i386/setupldr.bin
chainloader /bootsect.bin

これは、新しいWindowsバージョンまたは新しいハードウェアでは機能しません。

Grub2を使用してWindows 7を起動する

Grub2では、明らかにこのようなものがWindows 7で動作します:

menuentry "Windows 7 (bootmgr)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    ### A: either use this line or the next one, but not both
    set root='(hd0,msdos1)' 
    ### B: 
    ### search --no-floppy --fs-uuid --set=root ____INSERT_PARTITION_UUID_HERE___
    ntldr ($root)/bootmgr
}

オプションAは、起動可能なUSBスティック/ HDDが最初のデバイスであり、msdosスタイルのパーティションテーブルがあることを前提としています。構成に合わせて調整します。ブートデバイスにGPTパーティションテーブルがある場合、ほとんどの場合、(hd0,gpt1)を使用する必要があります(GPTは一般に設定が難しい)。

オプションBは、ドライブの一意のUUIDを使用します。これは、LinuxでSudo blkidで、またはOSXで表示できます。 diskutil info disk0s1(または[ディスクユーティリティ]> [情報])。

最後のエントリは、たとえば次のようになります。

menuentry "Windows 7 installer" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    search --no-floppy --fs-uuid --set=root 0E239BC6-F960-3107-89CF-1C97F78BB46B
    ntldr /bootmgr
}
5
ccpizza

ええ、あなたはこのような何かがうまくいくと思うでしょう:


menuentry "Boot Windoze" {
  search -f "--set-root /Winblows.iso"
  drivemap "/Winblows.iso" '(hd32)'
  drivemap '--hook' ''
  set root='(hd32)'
  chainloader +1
}

しかし、Windowsはそれをただalkります。

少なくとも4GBのRAMがある場合は、DVD ISO全体を memdisk にロードして、ブートすることを選択できます。これを行うには、 ダウンロード SysLinuxを実行し、memdiskファイルをbootディレクトリに抽出します。次に、Grub2に次のようなコードを追加する必要があります


menuentry "Boot Windoze" {
  search -f "--set-root /Winblows.iso"
  insmod memdisk
  linux16 /boot/memdisk iso
  initrd16 /Winblows.iso
}

ただし、3 GBを超えるデータをRAMに入れるのはまったく間違っているので、コードをテストするつもりはありません(アイデアの観点から)。いいえ、本当に欲しいものが欲しかったのですが、最後に Windows 7 USB/DVDダウンロードツール を使用してUSB上のパーティションにWindowsインストールを配置し、それにチェーンロードしました。申し訳ありませんが、私が見ることができる他の方法はないようです。

5
Warpspace

技術的にWindowsの.isoファイルからインストールすることはできません。 grubを使用して.isoから起動できますが、その後Windowsはマウントされた場所との接続を失うか、それができなくなります。したがって、grubとWindowsの両方がマウントとブートを認識する必要があります。現在、Windowsはサポートしていません。

そのため、.isoのコンテンツをパーティションのルートに抽出/コピーし、grubを使用してチェーンロードする必要があります。

5
totti