Palm84 某所の日記

死のうは一定、しのびクマには何しよぞ...

Windows 7 で disk1(第2HD)からのブート

まぁ雑記ですが...正確に言うと「第 1 2 HDの Windows ブートマネージャーからの起動」かな。

7 の仕様なのか BIOS の仕様なのか全然わかってないわけですみませぬ。

  • (DOS)Windows は第2HDのブート・マネジャー(NTLDRなど)から起動できなかった
  • 第1HDのブート・マネジャーから第2HDの Windows(D:\Windows など) の起動は可
  • USBメモリ/USB HDでのブートすると、その時点ではUSBが第1HDとなってるので内蔵HDの Windows ブートマネージャーから起動させるにはスワップ処理(順番入替)が必要、だった

って思ってたんですが、DELL の 7 で確認したらスワップなしで起動しますな。

USBメモリブートの Super Grub2 Disk で確認しました

下記は自動検出時の設定です。どちらも問題なくブート可。(「7 では drivemap 入ってへん、ぜんぜん Super ちゃうやん 」なんて下種なこと考えてたことは内緒ですw)

  • Windows XP の dynabook
set root=hd1,1
chainloader +1
drivemap -s hd0 hd1
  • Windows 7 の DELL
set root=hd1,2
chainloader +1

ヒントはこのへんかな?

4.2.3 DOS/Windows

GRUB cannot boot DOS or Windows directly, so you must chain-load them (see Chain-loading). However, their boot loaders have some critical deficiencies, so it may not work to just chain-load them. To overcome the problems, GRUB provides you with two helper functions.

If you have installed DOS (or Windows) on a non-first hard disk, you have to use the disk swapping technique, because that OS cannot boot from any disks but the first one. The workaround used in GRUB is the command drivemap (see drivemap), like this:

drivemap -s (hd0) (hd1)

This performs a virtual swap between your first and second hard drive. Caution: This is effective only if DOS (or Windows) uses BIOS to access the swapped disks. If that OS uses a special driver for the disks, this probably won't work.

VMware Player 上の 7, USB HDの GRUB for DOS ブートで確認してみた。

こっちも map なしでいけますなぁ。ってことは、7 の仕様ってことかな。

root (hd1,1)
chainloader /bootmgr

map で入替えても問題なし。

title * find and load BOOTMGR of Windows 7/VISTA
find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /bootmgr

どれも Windows 上では内蔵が1台目に戻ります。従来通りスワップ設定でおかしい場合はスワップなしでも試してみるべし、かな。