統計数理研究所の丸山です。

昨日はこの Subject でかなり長い記事を書きましたが、要約すると、
TOSHIBA dynabookN51 では以下のような【変則デュアルブート】しかできない、
というのが私の結論です。

【変則デュアルブート】
1. 電源を入れると「Windowsブートマネージャー」と題するラインモードのメ
  ニューが現れ、
    Windows 8.1
    Windows Recovery
  の二つアイテムが現れる。ここで Windows 8.1 を選択すればWindows8.1が
  立ち上がるが、ESCキーを押す(画面のやや下の方、右には「Esc=キャンセル」
  と表示されている)と
2. 画面が一度消えて、その後一瞬同じ「Windowsブートマネージャー」が表示さ
  れるがすぐに消えて
(UTPケーブルが接続されていれば3へ、そうでなければ6へ)
3. 「 >> Start PXE over IPv6. 」と表示されて、十数秒でタイムアウト
4. 「 >> Start PXE over IPv4. 」と表示されて、十数秒でタイムアウト
5. 何故かもう一度「 >> Start PXE over IPv4. 」と表示されて、十数秒でタイ
  ムアウト
6. gnu-grubのメニュー画面が表示され、PC-BSDが起動できる

そして、工場出荷のdynabookN51 をこの【変則デュアルブート】にする手順は

A. Windows を起動してWindows 領域を縮小して、PC-BSDを入れる空きをディス
   ク上に作る
B. 高速スタートアップ無効、システム保護無効に設定する
   (例えば http://d.hatena.ne.jp/msll/20150527/1432708323 参照)
C. Windowsの「コマンドプロンプト(管理者)」の窓で
     bcdedit /set {bootmgr} displaybootmenu yes
     bcdedit /set {bootmgr} timeout 0
  としておく
D. Windows をシャットダウンして、PC-BSD10.3のインストールメディアを使っ
   て起動(USBメモリスティックなら、起動時に F12を数回押して、USB起動を選ぶ)
   し、インストール作業を行う。その際、先月私が書いた
       [FreeBSD-users-jp 95926] Dual boot on dynabookN51(その3 -- scfb driver)
   の要領に従って作業する。

ということになります。(本当は手持ちの dynabookN51 を、リカバリディスクを
使って出荷状態と同等の状態にして確認すれば良いのですが、最早その気力はあ
りません。)

さて、以上の話はPC-BSDではなく、一般の FreeBSDでもできるかというと、勿論
できます。前にも書きましたが、上のステップDでefiパーティションに作られる
\BOOT\BOOTX64.EFI はbios-bootパーティションに書き込まれる gnu-grub を起
動するためのもので、ここを FreeBSD10.3 の /boot/boot1.efi で置き換えると、
gnu-grub を経由せずにfreebsd-zfs あるいは freebsd-ufs のパーティションに
ある FreeBSDを起動できます。実際私の dynabookN51は

[root@surya{59}] ~# gpart show
=>       34  976773101  ada0  GPT  (466G)
         34       2014        - free -  (1.0M)
       2048    2097152     1  bios-boot  (1.0G)
    2099200     204800     2  efi  (100M)
    2304000     262144     3  ms-reserved  (128M)
    2566144  164506897     4  ms-basic-data  (78G)
  167073041          7        - free -  (3.5K)
  167073048   10485760    10  freebsd-ufs  (5.0G)
  177558808   83886080    11  freebsd-ufs  (40G)
  261444888  119537664        - free -  (57G)
  380982552  209577984     8  freebsd-zfs  (100G)
  590560536    4096000     9  freebsd-swap  (2.0G)

という状態に今なっていて、FreeBSD10.3の/boot/boot1.efi(=PC-BSD10.3の
/boot/boot1.efi)をefiパーティションの\BOOT\BOOTX64.EFIにコピーしておくと、
grubを経由せずに partition 8 の freebsd-zfs を直接起動します。

ここで面白いことに気がついたのですが、/boot/boot1.efi は 10.3 と10.2では
若干機能が違っていますね。

10.2: typeが freebsd-ufs のパーティションの中で番号が一番若いものを起動
      する
10.3: typeが freebsd-ufs または freebsd-zfsのパーティションの中で番号が
      一番若いものを起動する

(ここでは「パーティションの番号が一番若い」であって、「領域が先頭に近い」
ではありません。)実際、私の dynabookN51 ではpartition 8にもpartiton
10,11(/ と /usr) にもPC-BSD10.3 を入れてありますが、10.2の
/boot/boot1.efi を使うと partition 10,11 の freebsd-ufsが、 10.3の
/boot/boot1.efi を使うと partition 8 の freebsd-zfs が起動されます。

[maruyama@surya{45}] ~% ls -alg /boot/efi/EFI/BOOT/
total 342
drwxr-xr-x  1 root  wheel    1024 May 26 20:07 .
drwxr-xr-x  1 root  wheel    1024 Aug 22  2015 ..
-rwxr-xr-x  1 root  wheel   33811 Aug 13  2015 BOOT102.EFI
-rwxr-xr-x  1 root  wheel   74833 Mar 31 23:33 BOOT103.EFI
-rwxr-xr-x  1 root  wheel   33811 Aug 13  2015 BOOTX64.EFI
-rwxr-xr-x  1 root  wheel  202752 Aug 17 14:38 GRUB.EFI

もし元祖 FreeBSDを dynabookN51にインストールして【変則デュアルブート】
にしたいのであれば、上記インストールステップのDを

D'. Windows をシャットダウンし、FreeBSD10.3のインストールメディアを使っ
   て起動してインストール作業を行う。終わったら、インストールメディアの
   /boot/boot1.efi をefiパーティションの\BOOT\BOOTX64.EFIにコピーする

とすれば良いでしょう。

なお、【変則デュアルブート】の6は、この場合

6'. FreeBSDが起動する

となります。

次の関心事は、これは dynabookN51だけの話か?という問題です。

昨日書いたように、「Windowsしか起動できない/させない」という方針で作られた
(変形)UEFIファームウェアを搭載したPCは他にもあるようですが、そのようなPCで
1〜6のような【変則デュアルブート】ができるか、という問題です。

UEFIブート構成データの {bootmgr} のところを見ると

identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\Microsoft\Boot\bootmgfw.efi

となっていますが、この path で指定された bootmgfw.efi をWindows の
C:\Windows\Boot\EFI\bootmgfw.efi と diff で比べると完全に一致します。従っ
て \EFI\Microsoft\Boot\bootmgfw.efi はマイクロソフト提供のもので、ハード
ウェアのベンダーには依存しないものでしょう。このことから判断して、【変則
デュアルブート】の最初のステップ1で、画面のやや下の方、右に「Esc=キャン
セル」と表示されるところまでは機種にかかわらず同じではないかと想像してい
ます。ここでESCを押すとbootmgfw.efi が「終了する」ということだろうと思い
ますが、その次に起ることはUEFIファームウェアの実装依存、ということだろう
と思います。

私はUEFIブートのマシンをdynabookN51以外には持っていないので、このように
想像することしかできませんが、これは実験してみる価値があることだろうと思
います。どなたかやってみて結果をお知らせくだされば幸いです。

--------
丸山直昌@統計数理研究所
_______________________________________________
freebsd-users-jp@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"

メールによる返信