grub2からWindows 7 isoを起動する


12

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


1
「私のBIOSメニューが表示されません」しかし、BIOSにアクセスしようとしましたか?
ミッチ

HDDをフォーマットするとどうなりますか?Windowsは起動しますか?:)

回答:


7

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
}

いいね。代わりに--set = root --fs-uuid UUIDHERE(変更された順序)を代わりに使用しました(必要かどうかはわかりませんでした)。ありがとう
Jan Kyu Peblik 2016

@JanKyuPeblik ISOから起動できますか?
Anwar、

それが私の思い出です、はい。他のものには興味がなかったでしょう。
Jan Kyu Peblik 2016年

5

ええ、あなたはこのようなものがうまくいくと思います:


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

しかし、Windowsはただそれを恐れています。

少なくとも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
}

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


最初のコードはウィンドウを起動しますが、
ISO

Ubuntuのisoでは機能しないため、2番目のコードは機能しない可能性があります
totti

OPは特にWindows 7を参照しています。テストできましたか?
Warpspace 2014年

あなたはWindowsが好きではないかもしれませんが、ここに「Winblows」と「Windoze」を投稿するのは、あまり専門的ではありません。-1。
0xC0000022L

1
私はプロのブートストラッププログラマではないので、「非専門家」と暮らすことができます。私はあなたが「無礼」を意味したのではないかと思います。ええ、そのコメントは6年前でした。それ以来、私は多くのことを変更しました(Windowsも
同様です

5

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

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


2
知識を共有することをお勧めしますが、技術的な方法で質問に直接回答することもできます。つまり、現在のテキストを免責事項として再利用しますが、「。isoから起動できます」をメニューエントリなどに拡張できます。そうすれば、想定された目的のために機能しないことがわかっていても、要求された結果を達成するためにどの方法を想像したかを正確に示すことができます。これにより、検討したソリューションの数も明確になります。
n611x007 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.